Jugando con Metasploit: Rogue DHCP + Fake DNS + Java!

La entrada de hoy va dedicada a Metasploit y al uso que últimamente le estoy dando. Metasploit es un framework muy flexible y realmente útil, necesario en los test de intrusión debido a todo lo que aporta. En el artículo de hoy se utilizarán módulos de tipo auxiliary que proporcionan funcionalidades especiales para un servidor DHCP y un servidor DNS.

El escenario propuesto en la siguiente prueba de concepto está compuesta por una red, que podría ser una red wireless o una red corporativa cableada, dónde se configurará un rogue DHCP con el que se buscará que los clientes obtengan una dirección IP de un rango concreto, una dirección IP de un servidor DNS controlado por el atacante, una dirección de puerta de enlace, que también podría ser la dirección IP del atacante por lo que se podría monitorizar el tráfico para obtener cookies o credenciales.

Además, en Metasploit se configura un módulo de tipo exploit, el denominado java_signed_applet con intención maliciosa, realmente maliciosa. El módulo java_signed_applet se configura en el puerto 80, simulando ser un recurso web.

La configuración del Rogue DHCP es bastante sencilla, se carga el módulo auxiliary/server/dhcp y se configuran algunos parámetros como se puede visualizar en la siguiente tabla.

Parámetro

Valor

DHCPIPEND

192.168.0.105

DHCPIPSTART

192.168.0.100

DNSSERVER

La dirección IP dónde se encuentra el DNS, por ejemplo, máquina del atacante. 192.168.0.61

NETMASK

255.255.255.0

ROUTER

La dirección IP de la puerta de enlace, podría ser la máquina del atacante para monitorizar tráfico. 192.168.0.61

SRVHOST

La dirección IP dónde se lanza el Rogue DHCP. 192.168.0.61

Llegado este punto, los clientes que se conecten a la red recibirán direcciones IP otorgadas por el servidor DHCP falso, además de lo más interesante, la dirección IP del servidor DNS y de la puerta de enlace que se quiera.

Ahora toca, otra parte divertida, configurar el servidor DNS falso. La funcionalidad de fakedns es sencillo, con la variable DOMAINBYPASS se configura una lista de dominios para los que las resoluciones no serán falseadas. Tras lanzar el módulo, en el ejemplo, cuando la víctima pida resolver cualquier nombre de dominio, excepto los que se encuentren en la lista de DOMAINBYPASS, se resolverá con la dirección IP del atacante.

Una de las víctimas,  la cual obtuvo las direcciones IP por el DHCP falso, realiza una petición a www.apple.com. El servidor DNS falso resuelve esta petición devolviendo la dirección IP de la máquina del atacante, 192.168.0.61. Con el módulo java_signed_applet configurado, con su URIPATH en /, recibirá la petición y lanzará el applet. Si el usuario acepta la ejecución del applet... ¡ouch! sesión inversa para el caballero...

Parámetro

Valor

SRVHOST

192.168.0.61 (IP atacante)

SRVPORT

80

URIPATH

/

PAYLOAD

Windows/meterpreter/reverse_tcp

Bueno, en resumen se ha utilizado un servidor DHCP para asignar las direcciones IP del router y del DNS que se quiera, controlamos a la víctima y además, podemos monitorizar el tráfico de la víctima, en busca de cookies, credenciales, conversaciones... Bien, además, utilizamos un DNS para resolver las peticiones como se quiera... con ello le redirigimos a un recurso web dónde se encuentra un applet con muy... mala leche! Si la víctima permite la ejecución del applet, el payload se ejecutará otorgando el control sobre la máquina remota.

Desde Flu Project, esperemos que os haya gustado la prueba de concepto. Últimamente, he tenido la suerte de utilizar mucho Metasploit, y he de decir, como dijo el gran Selvi, que cada vez me gusta más... Por cierto, quiero dedicar el post a mi amigo Metanosploit... una nueva variante?? ajajaja