TP 2 ASSR
DNS ID Spoofing
L’en-tête du protocole DNS comporte un champ identification qui permet de faire correspondre les
réponses aux demandes. L’objectif du DNS ID Spoofing est de renvoyer une fausse réponse à une
requête DNS avant le serveur DNS. Pour cela il faut prédire l’ID de la demande. En local, il est simple
de le prédire en sniffant le réseau. Néanmoins, cela s’avère plus compliqué à distance. Cependant il
existe plusieurs méthodes :
essayer toutes les possibilités du champ ID. Cette méthode n’est pas très réaliste puisqu’il y a
65535 possibilités pour le champ ID (car ce champ est codé sur 16 bits);
envoyer quelques centaines de requêtes DNS dans l’ordre. Cette méthode est bien évidemment
peu fiable;
trouver un serveur qui génère des ID prévisibles (incrémentation de 1 de l’ID par exemple), ce
genre de faille existe sur certaines version de Bind ou des machines Windows 9x.
Dans tous les cas, il est nécessaire de répondre avant le serveur DNS, en le faisant tomber via un déni
de service par exemple.
Pour parvenir à ses fins, l’attaquant doit contrôler un serveur DNS ([Link] ) ayant autorité
sur le domaine [Link]. Le serveur DNS cible ([Link]) est supposé avoir des numéros
de séquence prévisibles (s’incrémentant de 1 à chaque nouvelle requête).
L’attaque se décompose en quatre étapes :
1. l’attaquant envoie une requête DNS pour le nom [Link] au serveur DNS du
domaine [Link]
2. le serveur DNS cible a donc relayé la demande au DNS du domaine [Link];
3. l’attaquant est capable de sniffer la requête pour récupérer son ID (dans notre exemple l’ID a
une valeur de 100);
4. l’attaque falsifie l’adresse IP associée à un nom de machine, ici la machine victime est
[Link] qui a normalement l’adresse IP [Link]. Le pirate émet une requête
DNS de résolution du nom [Link] vers [Link]. Immédiatement après, il
envoie une multitude de réponses DNS falsifiées (donnant comme adresse IP celle du site de
l’attaquant [Link]) à cette même requête en ayant spoofé l’adresse IP source avec celle du
serveur DNS du domaine [Link]. L’ID de chaque réponse sera incrémenté de 1 à partir
de celui récupéré lors de la deuxième étape (ID = 100) pour augmenter la chance de tomber sur
le bon numéro d’ID réponse, dans le cas où [Link] aurait du répondre à d’autres
requêtes et donc incrémenté son ID DNS.
100