04 marzo 2013

¿Tu EXE? ¡¡ MI EXE !! (Mitm de ejecutables)

Los ataques 'Man-in-The-Middle' son de las cosas mas divertidas que nos ha regalado TCP/IP, hay muchos usos creativos de estas técnicas y hoy, vamos a darle otra pequeña vuelta de tuerca.

Lo que vamos a hacer es una aproximación 'a la Evilgrade' de sustitución de binarios al vuelo.

La idea es muy sencilla: Montamos un proxy y por cada .exe que se nos pida, vamos a servir un exe malicioso. Luego, usando un ataque clásico MitM haremos que todo el tráfico web de la víctima pase por ese proxy.

Hay escenarios donde solo se tiene acceso a la red, pero el objetivo a atacar resulta inexpugnable porque emplea cortafuegos o simplemente no es atacable vía exploits. En estos escenarios, un ataque como el que vamos a explicar aquí puede ser efectivo

En origen pensé en usar el protocolo ICAP y Squid para implementar este ataque, el problema es que hay pocas implementaciones de ICAP Servers y las que hay, o están desactualizadas, o directamente son complejas de adaptar.

En estas estaba cuando vi un sensacional artículo sobre como alterar al vuelo paquetes para pip (el instalador automático de paquetes para Python) empleando mitmproxy.

La aproximación, por sencilla y limpia de implementar, me pareció genial así que me hice mi propio script para mitmproxy orientado a sustituir binarios .exe.

Lo que hacemos es lo siguiente:

Cada vez que alguien pide a través de mitmproxy una URL que apunte hacia un .exe, alteramos la respuesta y le enviamos un .exe malicioso.

Apuntamos el par IP-->URL en un array, y la próxima vez que se nos pida, esta vez si, serviremos el .exe correcto. Esto lo hacemos para evitar levantar sospechas, si alguien se descarga un .exe y 'falla' pero a la segunda intentona si funciona, es probable que lo achaque a 'fallos en la red'.

El código del script es este:




Para usarlo, tan solo se debe definir el fichero que vamos a servir desde el script, editando la variable 'trojan' y apuntando al fichero que queremos meter.

trojan = 'malware.exe'

Aquí ya al gusto de cada uno, vale un meterpreter o vale algo más elaborado.

Cabe señalar que a la víctima le llegará el nombre del exe que supuestamente se está bajando, no el nombre de TU exe


Y finalmente ejecutamos mitmproxy así:

 mitmproxy -s binchange.py

Luego de eso, solo falta 'arponear' la red y configurar el firewall para mover el tráfico, aquí también influyen tus fobias y filias, los hay amantes de ettercap o como yo, los hay mas clásicos que les gusta arpspoof del mítico Dug Song.

Una vez vaya habiendo actividad, se genera un fichero de log llamado logpwned que tiene este aspecto:

[Primera descarga] 

Sun Mar  3 17:54:33 2013 Tenemos un cliente
IP de la victima 127.0.0.1
URL solicitada http://sbdtools.googlecode.com/files/CertMonSetup.exe

[Segundo intento]

Sun Mar  3 17:54:43 2013 Tenemos un cliente
la URL solicitada http://sbdtools.googlecode.com/files/CertMonSetup.exe ya ha sido envenenada

Cosas para el TODO:

-Analizar previamente el tamaño del fichero solicitado, no es lo mismo winamp.exe (2 M) que OfficeSetup.exe (1 Giga)

-Tomando como inspiración el script para pip, añadir una rutina que procese ficheros zip, los baje, los abra, intercambie exes y vuelva a generar el zip para servirlo

Me pregunto que hubiera pasado si hubiese dado de alta mi proxy en un sitio como este

9 comments :

kanwudfsmom dijo...

Sugiero que la tienda en línea! Este es el más barato i9300 teléfono inteligente! Ultimo Precio € 99.99! Ofrecen Servicios fiables y los bajos MÁS Precios en la web, con ENVIO GRATIS en Todo El Mundo Sobre los Temas Seleccionados.si usted está interesado, puede echar un vistazo a: http://zurf.no/3k

@jnahuelperez dijo...

Excelente Yago! Si lo hubieras publicado en ese sitio tendríamos una versión 2 del artículo "Owning bad guys and mafia". Jejeje

Madrikeka dijo...

La verdad, no dejáis de enseñarme cosillas!
Gracias por el post, ha estado muy chulo!

Antonio Sánchez dijo...

Hay un ataque "parecido", muy chulo y mas efectivo si cabe aun que consiste en acceder al servidor encargado de gestionar y distribuir imagenes/aplicaciones cuando la red esta configurada para usar PXE. Dave Kennedy dio una charla explicandolo y haciendo una demo.
Charla altamente recomendable!: http://www.youtube.com/watch?v=asLJmLSleYg

(Perdon por la falta de tildes pero estoy en un teclado americano)

Yago Jesus dijo...

Gracias ! La verdad es que como parte II de lo que hizo Chema habría podido dar mucho juego

Yago Jesus dijo...

Gracias a ti por los ánimos !

Yago Jesus dijo...

Muchas gracias por el aporte !

Angel dijo...

Genial Yago, me has dado una idea, explicar el Mitm a mi "ciberchicos" pero... ¿como lo haré?, tendré que traducir algunas de vuestras enseñanzas. El duro trabajo del traductor de GRANDES.

jon dijo...

y ahora si me descargo el mitmproxy ,no me habras dado el palo con el enlace no?.fuera bromas,muy buen articulo