miércoles, febrero 15, 2017

MITMf: Ataques modernos en redes de datos IPv4

Ya hemos utilizado esta herramienta en alguna ocasión, por ejemplo, en el caso de los ataques a HSTS con SSL Strip2 y Delorean. En este artículo, comentábamos como llevar a cabo ataques a HSTS y eran realizados de forma sencilla a través de la herramienta MITMf. Hoy queremos dedicarle un artículo a MITMf, herramienta que proporciona una gran cantidad de ataques, simplificando, gracias a los plugins, el número de herramientas que se deberían disponer para llevar a cabo los ataques.

Figura 1: MITMf. Ataques modernos en redes de datos IPV4

Los ataques a las redes de datos han evolucionado bastante, aunque es cierto que realizar un ARP Spoofing sigue siendo una piedra angular o base en muchos momentos. Esto es debido a que a partir del uso de la técnica de ARP Spoofing podemos montar una serie de ataques más potentes o a distintas capas. La herramienta de MITMf está disponible a través de su Github.

Instalación de MITMf

La instalación es sencilla, simplemente debemos ejecutar el comando siguiente en tu Kali Linux 2:
git clone https://github.com/byt3bl33d3r/MITMf.git
Después, hay que asegurarse de que se tienen todas las dependencias que MITMf requiere. Para ello se debe ejecutar:
apt-get install python-dev python-setuptools libpcap0.8-dev libnetfilter-queue-dev libssl-dev libjpeg-dev libxml2-dev libxslt1-dev libcapstone3 libcapstone-dev libffi-dev file.
Una vez se tienen las dependencias hay que instalar todas las dependencias de Python que se puedan tener. Para ello, desde dentro de la carpeta de MITMf, hay que ejecutar:
pip install -r requirements.txt.
Antes de comenzar a enseñar las posibilidades que ofrece el framework, vamos a explicar las ventajas de este tipo de herramientas. Hay que recordar que en su momento hablamos de Bettercap, como una herramienta que mejora la usabilidad y agrupa las necesidades de la auditoría de red.

Figura 2: MITMf en GitHub

La idea original de MITMf fue la de comenzar una herramienta de cero para proporcionar un estilo modular y que fácilmente es extensible, para que cualquier pueda ampliar la funcionalidad.

Características y plugins de MITMf

MITMf ofrece la posibilidad de manipular, observar y filtrar paquetes de red, por lo que se podría implementar un plugin para ataques de Network Packet Manipulation. La herramienta también contiene un servidor HTTP, DNS y SMB, el cual puede ser controlado y utilizado por varios de los plugins que la herramienta tiene a día de hoy. Además, dispone de un gran número de plugins.


Figura 3: Ataques de Network Packet Manipulation

A continuación, indicamos los protocolos que MITMf capturará:
• FTP
• IRC
• POP
• IMAP
• Telnet
• SMTP
• SNMP
• NTLMv1/v2
• HTTP, SMB, LDAP (generalmente, strings)
• Kerberos
Esto es capturado al utilizar el plugin Net-Creds, el cual es arrancado al iniciar el framework. Por último, indicar que el plugin Responder permite integrarse con LLMNR, NBT-NS, MDNS spoofing y WPAD Rogue. Como se puede ver, las características de las herramientas son muy completas. A continuación, se enumeran algunos de los diferentes plugins que contiene MITMf:
SSLStrip+: Con este plugin ya jugamos en su día. Permite realizar un bypass parcial de HSTS. 
Responder: Permite hacer spoofing sobre MDNS y WPAD. 
Spoof: Quizá uno de los módulos básicos y más utilizados. Es la base para una gran mayoría de ataques. Permite redirigir el tráfico utilizando los protocolos ARP, ICMP, DHCP o DNS, a través de técnicas como ARP Spoofing y DNS Spoofing. 
Ferret-NG: Un clásico. Permite realizar secuestro de sesiones o hijacking. 
BrowserProfiler: Este plugin intenta enumerar los diferentes plugins que el navegador puede estar utilizando. Es interesante para conocer el entorno y versiones del navegador y sus plugins. 
FilePwn: Utilizando la herramienta Backdoor Factory y BDFProxy permite inyectar una backdoor sobre HTTP. Interesante plugin. 
Inject: Este plugin permite inyectar código arbitrario en el contenido HTML. Otro de los módulos imprescindibles. 
• JSKeylogger: Inyecta código Javascript que permite hacer de keylogger. Un plugin interesante para hacer una JavaScript Botnet.
Replace: El plugin Replace permite modificar el código arbitrario en el contenido HTML. 
SMBTrap: Explota la vulnerabilidad SMB Trap. 
ScreenShotter: Utiliza HTML5 Canvas para realizar una captura de pantalla del navegador. 
• Captive: Crea un portal cautivo y redirige peticiones hacia dónde le indiquemos.
PoC: Inyección de código en el contenido HTML

En esta prueba de concepto se realiza una inyección de código arbitrario sobre el contenido HTML que circula a través de nuestro ataque Man in the Middle. Esto puede ser interesante, ya que a través de, por ejemplo, un ataque ARP Spoofing, el tráfico de la víctima circula por nuestra máquina. En ese instante, cualquier contenido HTML puede ser atacado y modificar el contenido.

En este ejemplo se introduce un iframe oculto que realizará una petición hacia dónde nosotros queramos. Esto se puede alinear o sumar a otro tipo de ataques más complejos. Por ejemplo, en el momento que podemos lograr que un navegador haga una petición a una dirección controlada por nosotros, podríamos devolverle un exploit para lograr el control total de la máquina, explotando algún tipo de vulnerabilidad en el navegador o en algún plugin o componente de éste.

Figura 4: MITM arp spoofing + injet de HTML

Para ejemplificar esto, haremos lo siguiente:
1. Lanzamos el ataque Man in the Middle y configuramos el plugin de inyección. 
2. Cuando la víctima esté infectada, el tráfico circulará a través nuestra. 
3. Inyectaremos el iframe oculto. 
4. Cuando el navegador de la víctima ejecute el HTML, ejecutará el iframe inyectado y realizará, sin saberlo, una petición hacia nuestro servidor. 
5. Tendremos configurado Metasploit para devolver un exploit, en este caso de Java. 
6. Si la máquina es vulnerable, se logrará tener el control de la máquina. En este caso se suma el ataque de red a las posibles vulnerabilidades del software de la máquina, logrando un resultado más potente.
Una vez la máquina víctima descarga el contenido HTML, ya modificado, se realiza una petición a un servidor externo, dónde espera Metasploit. El módulo, para esta PoC, que se ha configurado es una vieja vulnerabilidad en Java, pero que permite ver el potencial y facilidad de uso que ofrece el framework.

Figura 5: Metasploit esperando la ejecución del exploit para obtener sesión

Además, tenemos que tener en cuenta que existen algunos parámetros dentro del plugin Inject que nos permite ver el número de inyecciones de código por dominio, o incluso utilizar una lista blanca de dominios sobre los que se debe modificar el HTML o no. Ciertamente, el plugin es bastante completo. El resultado, para el atacante, es el siguiente:

Figura 6: Sesión Meterpreter obtenida

Como se puede ver, un ataque que podría costarnos antiguamente, hoy en día lo tenemos al alcance de una línea con varios plugins cargados. Potencia, flexbilidad y extensibilidad. Este framework ofrece diferentes soluciones y ataques de red modernos. Próximamente más ataques con este gran framework de auditoría de red.

Autor: Pablo González Pérez (@pablogonzalezpe)
Escritor de los libros "Metasploit para Pentesters", "Ethical Hacking", "Got Root" y “Pentesting con Powershell

Data Speaks

Entrada destacada

Descarga Latch ARW y protégete contra el ransomware

Desde hace mucho tiempo nuestro compañero en ElevenPaths Sergio de los Santos ( @ssantosv ), escritor del libro Máxima Seguridad en Windo...

Entradas populares