[h]Crear una entrada en el menú Kali para integrar un script (y más)[/h]
En este tema vamos a ver cómo integrar fácilmente en Kali Linux nuestros propios scripts o una aplicación que no está disponible desde los repositorios.
Lo que sigue también servirá si uno quiere cambiar el icono de una aplicación existente, modificar el directorio y el comando de ejecución, crear un lanzador (icono “ejecutable”) en el escritorio o en un dock etc…
El método empleado es muy simple y se puede resumir en…
[h]Crear y situar un fichero con extensión *.desktop[/h]
Vamos a echar un ojo en nuestra carpeta /usr/share/applications
Encontramos ahí varios ficheros con el logotipo de Kali linux que se usa de forma genérica para las aplicaciones disponibles desde los repositorios kali linux.
Y vemos nuestras aplicaciones favoritas :
Reaver, aircrack-ng, wireshark, bully etc…
Observamos que estos ficheros tienen una extensión de tipo *.desktop
Abrimos con el editor de texto Gedit ( click derecho + abrir con… ) uno de estos ficheros para examinar su contenido…
https://www.wifi-libre.com/img/members/3/ficherodesktop.jpg
Este fichero sirve para definir varías variables. Con derechos de administrador podemos editar el fichero, y por lo tanto adaptar las variables a nuestras necesidades o gustos.
Y podemos crear un fichero original para nuestra propia aplicación y así integrarla en nuestro menú kali linux.
Veamos esto…
-
Cada fichero desktop tiene que empezar con la cabecera : [Desktop Entry]
-
Luego tenemos la variable ** Name** que define el nombre de la aplicación
Se pueden añadir traducciones que se activarán según la configuración local del usuario. Para ello debemos crear otra variable “Name” a la cual añadimos entre ganchillos el acrónimo del idioma. Por ejemplo :
Name=Bully
Name[es]=Acosador
Si ha elegido español como idioma por defecto le saldrá “Acosador” en lugar de “Bully”
- En el fichero bully.desktop no hay comentarios. Pero nada nos impide añadir una frase descriptiva con la variable Comment
Al igual que con la variable $Name podemos añadir traducciones en los idiomas que queremos
Comment= reaver based program for brute force over WPS
Comment[es]= Programa para brute force WPS, basado en Reaver
- La variable Encoding que dejamos tal cual ( linux )
Encoding=UTF-8
- La variable Exec es fundamental. Son las ordenes para ejecutar la aplicación. Si se trata de un script en bash debéis invocar bash, si se trata de un script en python debéis invocar python
bash Name.sh
python Name.py
etc…
Nos damos cuenta que la sintaxis es un poco más compleja en el fichero bully desktop.
Exec=sh -c "bully;${SHELL:-bash}"
Es para que no se cierre la consola cuando se sale de bully. Es algo importante ya que si no se pone se cierra de inmediato la consola cuando encontramos la llave.
- Unas palabras sobre la variable Icon:
Por defecto los iconos se encuentran en el fichero que corresponde al tema elegido para nuestro Kali linux.
No es muy practico y es preferible poner una ruta distinta. En debian por convención la ruta sería /usr/share/pixmaps/. Si queremos poner un icono propio colocamos la imagen (miicono.png ) en la carpeta “pixmaps” y editamos nuestro fichero desktop
Icon=/usr/share/pixmaps/miicono.png
- StartupNotify y Terminal se dejarían tal cual para los programas que se ejecuten en consola.
StartupNotify=false
Terminal=true
-
La variable Type es indicativa
-
Muy importante para la integración en nuestro menú kali : la variable Categories
La de Bully es así
Categories=05-01-wireless-tools;
Dónde :
- 01 : el menú kali
- 05 : la quinta entrada en el menú Kali
- “wireless tool” : el nombre de la entrada **que debemos dejar en inglés **
Podemos crear varias entradas. Por ejemplo si queremos tener también Bully en el menú “TOP 10”
Categories=05-01-wireless-tools;top10;
-
La variable X-Kali-Package no nos interesa a no ser que nuestro script forme parte de los repositorios Kali…
-
“Last but not least” : la variable ** $PATH **.
Debe apuntar a la carpeta que contiene el script y define así el directorio de ejecución por defecto de la aplicación.
Podemos elegir el $PATH que queremos. Por convención podría ser en user/share ya que es una ruta frecuentemente utilizada.
Bully tiene como $PATH la carpeta root. Es un caso particular porque el programa requiere privilegios de administrador, si usamos un script para tareas cotidianas desde una cuenta de usuario sería una mala idea.
Una vez redactado el fichero ha de guardarse en user/share/applications (llamar lo así : nombre.desktop)
Si la entrada con su icono personalizado no aparece enseguida en el menú Kali solo tenéis que salir de vuestra sesión para volver a entrar y podréis admirar vuestra creación.
En ejemplo un fichero desktop para WPSPIN
[Desktop Entry]
Version=1.0
Name=WPSPIN
GenericName=WPSPIN
Comment=Default WPSPIN Genrator with WPS attack interface
Comment[es]=Generador de PIN por defecto con interfaz de ataque WPS
Comment[fr]=Générateur de PIN par défaut avec interface d'attaque WPS
Type=Application
Exec=bash -c "bash WPSPIN.sh -h;${SHELL:-bash}"
Icon=/usr/share/WPSPIN/WPSPIN.png
Path=/usr/share/WPSPIN/
Terminal=true
StartupNotify=false
Categories=05-01-wireless-tools;top10
https://www.wifi-libre.com/img/members/3/aplicacionintegrada.jpg
Si copiamos y pegamos este fichero en nuestro escritorio creamos un lanzador : Con un doble clic en el icono que aparece en escritorio lanzaremos la aplicación.
Si no atribuimos privilegios de ejecución al fichero ( se hace con “chmod +x”) aparecerá una ventana pidiendo confirmación para la atribución de permisos de ejecución. Una vez que lo hemos confirmado no volverá a salir las próximas veces que lanzamos así nuestra aplicación.
Kali con GNOME no tiene dock por defecto pero Kali con XFCE lleva el famoso “panel” que es de cierto modo “la marca de la casa” de este entorno gráfico.
Para añadir nuestra aplicación al dock simplemente arrastramos y soltamos el fichero desktop en el panel.
https://www.wifi-libre.com/img/members/3/Seleccion_051.png
GIMP y GEDIT : Es todo lo que necesitéis para crear vuestros lanzadores, modificar vuestros menús y su aspecto, añadir una aplicación a vuestro dock…