Le protocole DNS utilise principalement le port UDP 53 (le port TCP 53 n'est utilisé
que pour les transferts de zone). Ainsi via un mécanisme requête/réponse, il gère
la correspondance entre un nom de machine et une adresse IP.Quand une machine a besoin
de l'adresse IP associée à un nom, une requête DNS est envoyée au serveur DNS qui
répondra avec un paquet DNS contenant la réponse. Dans l'entête DNS, un numéro
d'identification lie la réponse à la requête émise. Une attaque de type DNS Spoofing
consiste à intercepter la requête, à forger une fausse réponse, en utilisant entre
autres le bon numéro d'identification, et à l'envoyer en lieu et place de la véritable
réponse. WinDNSSpoof automatise cette attaque.
Cet outil n'est utilisable que dans le contexte d'un réseau local. En effet, il est
obligatoire de pouvoir sniffer les requêtes DNS. L'idéal est de rediriger le trafic
de la machine cible au préalable. Pour cela, une attaque de type ARP Cache Poisoning
est le plus efficace (des outils sont disponibles sur www.arp-sk.org).
Il est alors possible de sniffer le trafic même dans le cas d'un réseau switché.
Lors d'un DNS Spoofing, un problème lié à la rapidité de la réponse est probable.
Si le serveur DNS répond plus vite que la machine du pirate, l'attaque échoue.
Pour remédier à cela, les paquets DNS sortant de la machine de l'attaquant doivent
être bloqués (grâce à un simple filtrage de paquets IP local). En outre, seuls
les paquets non visés par l'attaque seront transmis (WinDNSSpoof se charge de cette tache).
Comme cela a été dit auparavant, le trafic entre la cible et le serveur DNS
(ou la passerelle dans le cas où celui-ci n'est pas sur le même réseau) est redirigé
afin de passer par la machine pirate. Sous Windows un outil comme winarp_mim est
parfaitement adapté. La machine du pirate doit faire du routage pour que le trafic
puisse normalement circuler, Winroute Pro remplie très bien cette fonction. A noter
que dans le cas de Windows 2000 il est possible d'utiliser le routage natif du système.
Pour Windows 9x, il est préférable d'utiliser un routage logiciel tiers au vu de la
faiblesse de son implémentation. De plus Winroute est configuré pour bloquer les paquets
DNS sortant (avec un port destination UDP 53). Là encore, un firewall personnel à part
comme Tiny Firewall est plus efficace et plus simple d'utilisation. Le schéma suivant
illustre ce scénario d'attaque :
Il reste à exécuter WinDNSSpoof avec les options adéquates.