You are on page 1of 14

Les Sniffers et anti-Sniffers par Jrmy AMIOT

1 - Introduction 2 - Rappels 3 - Les Sniffers 3.1 - Le mode Promiscous 3.2 - Le remote Sniffing 3.3 - Scnarios d'attaques 4 - Les Anti-Sniffers 4.1 - Le concept du mode promiscuous 4.2 - Les filtres systme 4.3 - Les filtres matriel 4.4 - Les mthodes de dtection des sniffers 4.5 - Les outils de dtection des sniffers 5 - Leurrer les anti-sniffers 6 - Discussion autour de la documentation 7 - Suivi du document

1 - Introduction
Les sniffers figurent parmi les premiers outils qui ont permis aux administrateurs systmes d'analyser leurs rseaux et de localiser un problme avec prcision. Ces mmes outils sont aussi la porte de hackers qui en usent galement pour espionner les rseaux et voler tous genres de donnes. Ce chapitre dfinit ce qu'est un sniffer, explique son utilit, les risques qu'il prsente, les services vulnrables au sniffing et enfin, il expose les sniffers les plus priss. Nous dtaillerons galement dans ce chapitre les sniffers qui fonctionnent dans les rseaux partags (principalement les rseaux utilisant des hubs) o les paquets envoys une destination seront aussi reus par toutes les machines du rseau.

2 - Rappels
Entte d'une trame Ethernet :

Dans un rseau Ethernet partag, toutes les machines sont relies un concentrateur rseau (hub). Un concentrateur amplifie le signal pour pouvoir le renvoyer vers toutes stations connectes. Toutes les trames Ethernet arrivant sur un hub sont donc renvoyes sur toutes les lignes, pour tre reues par toutes les stations. Dans le cas de rseaux importants par le nombre de stations connectes ou par l'importance du flux d'informations transfres, on ne peut utiliser des hubs. En effet, ds qu'une station met quelque chose, tout le monde l'entend et quand tout le monde commence transmettre, les vitesses diminuent directement. Du point de vue scuritaire, vu que toutes les trames passent par toutes les machines du rseau, un utilisateur malveillant situ sur le mme rseau peut espionner un trafic qui ne lui est pas destin. C'est le sniffing passif. Les chapitres suivants dtailleront ce type d'activit dans les rseaux Ethernet partags. Chaque station connecte un rseau Ethernet possde une adresse unique code sur 48 bits (6 octets) appele adresse Ethernet, ou adresse MAC (pour mdia access control). Cette adresse est situe directement sur le coupleur Ethernet (gnralement une carte d'interface rseau {network interface card, NIC) relie au bus interne) et c'est pourquoi on l'appelle galement adresse physique ou matrielle. Les trois premiers octets de l'adresse identifient le constructeur de la carte Ethernet tandis que les trois derniers reprsentent le numro de

srie de cette carte. Donc, en principe, tous les coupleurs ont des adresses physiques diffrentes. Dans un rseau Ethernet partag, les donnes sont transmises dans les trames. Chaque trame contient plusieurs champs spciaux, dont un correspondant l'adresse MAC de l'metteur et un autre l'adresse MAC du destinataire. Lorsqu'une trame est envoye sur le rseau, toutes les cartes rseau la reoivent et la filtrent en comparant leur adresse MAC avec l'adresse du destinataire de la trame. Si les adresses MAC correspondent, la carte rseau transmet la trame pour traitement ; sinon, elle l'ignore. Chaque station traite donc uniquement les trames qui lui sont destines, et cela permet d'viter une surcharge de donnes. Lorsqu'une station envoie un message sur le rseau, elle peut l'envoyer deux ou plusieurs destinataires, voire mme tout le rseau. Dans une trame Ethernet, l'adresse du destinataire doit appartenir l'une des catgories suivantes :

adresse monodestinataire (unicast address) : c'est l'adresse MAC d'une carte rseau. On utilise ce type d'adresse pour envoyer des donnes une seule station sur le rseau ; adresse de diffusion multidestinataire (multicast address) : ce type d'adresse MAC est utilis pour envoyer des donnes un groupe de stations sur le rseau ; adresse de diffusion gnrale (broadcast address) : c'est une adresse rserve pour l'mission de donnes toutes les stations du rseau. Elle est caractrise par le fait que tous les bits sont 1 (FF:FF:FF:FF:FF:FF en hexadcimal) Le terme sniffer est plus populaire que des termes tels que analyseur de protocole et analyseur de rseau . Un sniffer est un programme qui permet de capturer tous les paquets circulant sur un rseau local (LAN) et qui permet d'afficher leurs contenus. Il peut capturer n'importe quelle information envoye travers un rseau local, et donc afficher aussi bien l'identit des utilisateurs que leurs mots de passe transmis par tout service transportant des donnes claires (non cryptes), tels que Telnet, DNS, SMTP, POP3, FTP et HTTP. Si les donnes ne sont pas cryptes et si elles passent par l'interface rseau de la machine o s'excute le sniffer, ce dernier les capture et les propose la lecture directe. Mais c'est une arme double tranchant. En effet, il est utilis par l'administrateur rseau qui tente de rsoudre les problmes techniques de son entreprise, mais aussi par l'intrus qui cherche espionner les donnes circulant dans un rseau local.

3 - Les Sniffers
3.1 - Le mode Promiscous Les cartes rseau fonctionnent en deux modes, savoir le mode normal et le mode promiscuous. Par dfaut, les cartes rseau fonctionnent en mode normal. Ce mode permet une carte de filtrer les paquets reus sur l'adresse destination MAC. Ce type de filtrage est appel filtrage matriel ou filtrage hardware. Par contre, le mode promiscuous consiste accepter tous les paquets circulant dans un rseau, mme ceux qui ne sont pas destins la carte. Dans ce cas, un sniffer collecte tout le trafic passant par cette carte. Dans des machines Unix, le mode promiscuous peut tre activ en console grce la commande # ifconfig promisc Si les machines cible et pirate sont sur le mme rseau, le sniffer doit tre lui aussi sur ce rseau. Si les machines sont sur deux rseaux diffrents, le sniffer doit tre sur l'un des rseaux, et peux excuter un remote sniffer pour lire les donnes distance. Dans un rseau commut (switch), le sniffing semble impossible raliser puisque seul le destinataire reoit les trames qui lui sont envoyes. Nous verrons plus loin que certaines manipulations opres sur le cache ARP permettent de faire du sniffing sur un rseau Ethernet, mme s'il est commut. 3.2 - Le remote Sniffing Le remote sniffing, ou l'utilisation d'un sniffer distance, permet d'obtenir les donnes circulant sur un autre rseau que celui sur lequel nous sommes. Considrons cet exemple : Un pirate est sur un rseau nomm A, mais voudrait sniffer le rseau voisin, appel B. Admettons qu'il a pris possession d'une machine dans ce rseau B. Rappelons que nous sommes dans une configuration d'un rseau partag. Le pirate va donc installer un client sniffer sur la machine du rseau B, qui va passivement rcuprer et enregistrer toutes les donnes allant et venant sur ce rseau. Il enverra le tout la machine du pirate dans le rseau A. Le rseau B qui en principe tait impossible sniffer est devenu donc trs accessible. Le remote sniffing est toujours compos d'un client et d'un serveur, le client tant contrl par le serveur. Pour effectuer une telle attaque, il existe l'outil Rpcapd. Rpcapd est un dmon (programme tournant en tche de fond) qui capture le trafic sur une machine, et est capable d'envoyer les donnes rcupres un sniffer comme ethereal qui facilite ainsi la lecture en diffrenciant les trames et les protocoles. Notons qu'il est utile d'exclure le trafic entre la machine local et la machine distante en utilisant les filtres d'ethereal. Voici un exemple o nous excluons l'hte 192.168.50.25 :

3.3 - Scnarios d'attaques Nous allons montrer comment un utilisateur malveillant muni d'un sniffer peut espionner et collecter des informations confidentielles des utilisateurs d'un rseau. Pour cela, nous allons rapidement constater la facilit d'utilisation des sniffers pour espionner les autres utilisateurs du rseau cible et collecter des informations confidentielles. Des sniffers, tel que Sniffer Pro (Network Associates), ou Cain offrent des fonctionnalits avances qui faciliteront la collecte d'informations confidentielles. Par exemple, il permet d'afficher les en-ttes des paquets capturs des services rseaux, tels que FTP, HTTP, et SMTP. Ainsi, il suffit de lire les en-ttes des paquets du service SMTP pour pouvoir lire le contenu des e-mails envoys par un utilisateur dans le rseau. Tout service rseau envoyant des paquets non crypts est vulnrable aux attaques de sniffing. Nous allons nous servir de deux sniffers bien connus pour leur efficacit : Cain et Ethereal. Les cas d'attaques qui seront dtaills sont les suivants :

Visualisation des connexions rseau ; Lecture des e-mails des utilisateurs ; Rcupration des login et mots de passe des comptes e-mail, FTP, et authentification HTTP; Visualisation des sites web visits par les utilisateurs et lecture des e-mails; Ralisation des attaques de dni de service (DoS); Rcupration d'une communication VoIP. 3.3.1 - Visualisation des connexions rseau Mme sans connaissance en rseau et protocoles TCP/IP, avec un sniffer, un utilisateur peut visualiser le trafic de son rseau notamment les diffrentes connexions. Ce type d'activit peut ennuyer les utilisateurs des rseaux puisqu'il touche leur vie prive. 3.3.2 - Lecture des e-mails des utilisateurs

Un agresseur situ dans un rseau peut lire les e-mails envoys par tous les autres utilisateurs connects au segment du rseau o se trouve l'agresseur. Pour raliser cette attaque, il suffit d'installer un sniffer permettant la capture des paquets selon des critres de filtrage dfinis par l'utilisateur. Dans notre cas, l'agresseur dfinit des filtres de sorte que le sniffer ne capture que les paquets dont le port source ou destination est gale 25. En principe, tout trafic utilisant le port 25 est un trafic correspondant des emails. Puisque les donnes dans les e-mails sont en gnral non cryptes, l'agresseur peut alors facilement lire le contenu des emails transitant par le rseau. 3.3.3 - Rcupration des login et mots de passe L'utilisateur d'un rseau peut frauduleusement visualiser les adresses des sites web visits par les autres utilisateurs du mme rseau. Selon des critres de filtrage pralablement dfinis, la capture de paquets pourra tre cibl sur un port prcis. Dans ce cas de figure, l'agresseur dfinit donc des filtres de telle sorte que le sniffer capture seulement les paquets dont le port source ou destination est gal 80 (21 pour le FTP, etc...). En principe, tout trafic utilisant le port 80 ou 8080 est un trafic correspondant des activits web (service HTTP). Il est clair que ce type d'attaque touche directement la vie prive des utilisateurs rseaux. Il en va de mme avec les services comme FTP, Telnet, ICQ, MSN et HTTP (le sniffer web_sniffest spcialis dans l'coute de requtes HTTP). Il permet de connatre les adresses des pages visites et d'afficher les mots de passe utiliss soit pour sortir sur Internet soit pour accder des informations sur un intranet. Le service POP3 est utilis lorsqu'un utilisateur veut tlcharger ses e-mails partir d'un serveur de messagerie. Ce service envoie ces informations de login en clair. Ds que la victime se connecte du serveur POP3, le pirate rcupre grce au sniffer le login/mot de passe. Il en est de mme avec la connexion un serveur FTP, ou une simple page HTML qui demande une authentification (forums, site personnels etc). Les crans ci-dessous montrent un exemple dmontrant l'obtention du login et du mot de passe d'un utilisateur grce au sniffer Cain :

Nous voyons ici la liste de protocoles que Cain peux sniffer, comme par exemple une connexion FTP avec le login/pass en clair :

Et maintenant le login au forum d'Authsecu :

Et enfin la connexion un serveur POP3 pour rcuprer ses e-mails :

3.3.4 - Les attaques de dni de service (DoS) Plusieurs sniffers tels que CommView intgrent des gnrateurs de paquets. Ces gnrateurs permettent de produire des paquets ARP, ICMP, TCP ou UDP. Il permet de mettre jour les valeurs des champs des diffrents en-ttes des paquets, et ensuite envoyer ces paquets des machines cibles. On peut exploiter ces gnrateurs pour construire des paquets mal forms (par exemple, des paquets avec de faux champs et de fausses valeurs ou des paquets mal fragments) afin de causer des dnis de service au niveau des machines cibles. Par exemple, l'outil frameip.exe permet de gnrer les trames de son choix 3.3.5 - Rcupration d'une communication VoIP La plupart des sniffers assez rcent prenne dsormais en charge le sniffing de communications dites VoIP (ToIP). Un utilisateur tlphonant grce son ordinateur par l'intermdiaire d'un logiciel comme Skype, VOIPBuster, MSN et tout autre protocole d'entreprise bas sur RTP peut tre cout par un tiers. La communication peut-tre aisment captur, comme nous le montrera l'exemple ci aprs avec le sniffer Cain. Les paquets sont rcuprs puis analyss avant d'tre enregistrs en format audible, le WAV. Attention, certains logiciels comme Skype chiffre dsormais les communications, ce qui rend l'analyse et l'enregistrement WAV beaucoup plus difficile, voire impossible pour un obtenir un rsultat acceptable. On remarque que l'on obtient bien un fichier WAV qui, en lanant grce au menu contextuel permet d'couter la conversion en cours.

Le cas ci-aprs montre que la communication n'a pas t enregistr, le codec' n'tant pas reconnu, c'est--dire que le logiciel utilis pour la communication envoie des paquets crypts, ce que ne reconnat pas encore notre sniffer.

3.3.6 - Conclusion Les exemples prsents sont rels et visent une meilleure sensibilisation aux problmes relatifs au sniffing. Les divers scnarios exposs dmontrent la facilit de ralisation des attaques avec des sniffers. Avec peu de connaissance rseau, un pirate peut aisment mener plusieurs de ces attaques. Ces scnarios dmontrent galement les faiblesses et les vulnrabilits lies aux protocoles et services rseaux, notamment le protocole ARP et les services Internet non crypts. Il est donc impratif de disposer de techniques et d'outils efficaces pour dtecter ces activits malveillantes. Le chapitre suivant prsente les techniques et les outils de dtection des sniffers dans les rseaux partags.

4 - Les Anti-Sniffers
La dtection des cartes rseau en mode promiscuous permet de dceler la prsence de toute activit suspecte visant capturer ou analyser le trafic. 4.1 - Le concept du mode promiscuous Les cartes Ethernet rseau sont construites par dfaut avec une adresse MAC unique stocke sur 6 octets. Chaque constructeur dispose de sa propre plage qui permet ainsi d'attribuer un identifiant unique pour chaque interface. Les adresses MAC sont obtenues grce au protocole ARP et chaque rsultat est stock dans un cache local, de faon viter d'initier pour chaque nouveau paquet une nouvelle requte. Une interface rseau en mode normal accepte uniquement les paquets qui lui sont destins ou bien les paquets de diffusion (broadcast) ou de multidestination (multicast). Cependant il est possible d'activer le mode promiscuous dans les interfaces rseaux pour rcuprer de faon transparente l'ensemble des paquets circulant sur le rseau et destins des tiers. La dtection d'une activit de ce genre est alors trs difficile puisqu'il s'agit d'un comportement passif qui n'interagit pas avec le fonctionnement normal du rseau. 4.2 - Les filtres systme Avant d'atteindre le noyau d'un systme d'exploitation pour traitement, un paquet passe en gnral par deux filtres, savoir le filtre matriel (hardware) localis au niveau de la carte rseau et le filtre logiciel au niveau du noyau du systme d'exploitation. Ainsi, la carte rseau assure d'abord le filtrage matriel des paquets ; ensuite, si le paquet est accept par le filtre matriel, il est alors transmis vers le filtre logiciel qui le transmet son tour au noyau du systme pour traitement. Le mode promiscuous permet essentiellement de capturer l'ensemble des paquets circulant sur un rseau. L'activation de ce mode entrane la dsactivation du seul filtre matriel, le filtre logiciel au niveau du noyau du systme demeurant toutefois actif. 4.3 - Les filtres matriel Le filtre matriel est localis au niveau de l'interface rseau. Il a pour but de ne transmettre au noyau que les paquets destins la machine elle-mme en tant qu'hte unique (unicast) ou hte d'un rseau (broadcast et multicast). Le filtre matriel dispose donc de plusieurs modes de fonctionnement dont voici la liste :

unicast : considrant que chaque interface rseau reoit une adresse MAC unique, le filtre matriel ne laisse donc passer que les paquets destins cette mme adresse MAC ; broadcast : les paquets broadcast sont destins l'ensemble des htes du rseau et permettent gnralement de vhiculer des messages de notification. Le protocole ARP qui permet de trouver l'adresse MAC d'un hte partir de son adresse IP est un exemple de protocole qui gnre des requtes ARP broadcast. Les paquets broadcast ARP utilisent l'adresse destination MAC FF:FF:FF:FF:FF:FF. Dans ce cas le filtre matriel autorise les paquets broadcast atteindre le filtre logiciel du noyau du systme ; multicast : un paquet multicast est destin un groupe de htes. L'utilisation d'adresse multicast permet d'adresser n machines partir d'une source unique. Son mode de fonctionnement repose sur l'utilisation de groupe multicast. Ainsi toutes les machines d'un groupe recevront le paquet en question. L'utilisation de ce mode suppose l'attribution d'une adresse MAC multicast pour le groupe en question. Le filtre matriel autorisera donc dans ce cas les paquets multicast valides atteindre le noyau du systme. Une adresse multicast commence par les trois octets suivants: 01:00:5E:X:Y:Z ; tout multicast : ce mode, aussi appel all multicast , est une extension du mode multicast o tous les paquets multicast seront transmis au filtre logiciel du noyau du systme d'exploitation ; promiscuous : une interface rseau en mode promiscuous transmet l'ensemble des paquets vhiculs sur le rseau vers le filtre logiciel du noyau du systme sans mme analyser l'adresse destination MAC. D'une faon gnrale, les interfaces rseau activent par dfaut, au niveau du filtre matriel, les modes suivants : unicast, broadcast et multicast d'adresse 1 (01:00:5E:00:00:01). L'interface rseau d'une machine X et envoyer partir d'une autre machine une requte ARP recherchant l'adresse MAC de la machine d'adresse IP X. L'adresse destination MAC de la requte ARP est gale une adresse quelconque, choisie arbitrairement. En principe, elle doit tre une adresse broadcast. Alors qu'on s'attend ce que l'interface rseau de X rcupre le paquet et le transmette au noyau qui se chargera ensuite d'y rpondre, la machine X ne gnre aucune rponse ARP. C'est le filtre logiciel, localis la suite du filtre matriel, qui empche la requte d'atteindre le noyau du systme. Ce filtre effectue donc un deuxime niveau de filtrage dans la chane d'acheminement du paquet vers le noyau. Le filtre logiciel est diffrent d'un systme un autre. Matriser son fonctionnement exige, dans le cas de Linux, o le code source est libre (open source), une lecture attentive des instructions contenues dans ce code. Dans Windows, ce code est non libre et demande, par consquent, une analyse comportementale approfondie du systme. Par exemple, l'analyse du code source de Linux montre que son filtre logiciel spare les paquets en 4 catgories : broadcast, multicast, TOUS ou OTHERHOST. Les paquets broadcast sont relatifs l'adresse MAC broadcast FF:FF:FF:FF:FF:FF alors les paquets multicast caractrisent l'ensemble des paquets avec le bit de groupe positionn (01 pour l'octet de poids fort : 01:X:Y:Z:V:W) TOUS caractrise l'ensemble des paquets ayant pour destination l'adresse MAC de l'interface rseau tandis que OTHERHOST dfinit l'ensemble des paquets ayant pour destination une adresse MAC diffrente. 4.4 - Les mthodes de dtection des sniffers

Cette section est consacre la prsentation des mthodes les plus connues de dtection des sniffers dans un rseau Ethernet partag. 4.4.1 - La mthode du DNS Les sniffers ne sont pas totalement passifs. En excutant automatiquement des requtes DNS inverses {reverse DNS lookup) pour traduire les adresses IP des paquets capturs, la plupart gnrent du trafic sur le rseau. Le principe de la mthode du DNS consiste exploiter cette fonctionnalit commune des sniffers. Ainsi, pour dtecter un trafic est gnr par un sniffer, il suffit de rechercher des requtes DNS inverses et de les distinguer des vraies requtes DNS inverses. Pour ce faire, un faux trafic est gnr sur le segment du rseau Ethernet avec une fausse adresse destination IP non utilisable (adresse de test). En plus, ce faux trafic est gnr sur le segment du rseau Ethernet avec une fausse adresse destination MAC. Ce faux trafic devrait tre ignor par toutes les machines en mode normal du rseau (filtrage par le filtre matriel). Si une requte DNS inverse correspondant la fausse adresse de test est capture, ceci prouverait que la machine est probablement en train d'excuter un sniffer ; car seules les machines en mode promiscuous peuvent capturer ce genre de faux trafic. Cependant, cette mthode prsente l'inconvnient d'tre devenue trs connue par les pirates, qui dsactivent, dsormais, la gnration des requtes DNS inverses dans de nouveaux sniffers comme Ethereal. Cette fonctionnalit reste quand mme prsente en option. Cette mthode reste tout de mme utile pour dtecter la majorit des intrusions car les pirates tlchargent souvent des sniffers sans mme matriser leur mode de fonctionnement. Voici un exemple : On suppose que les machines d'un rseau Ethernet ont des adresses IP appartenant la plage 172.16.16.1 - 172.16.16.100. Un faux paquet ping ICMP est gnr l'adresse IP 172.16.16.182 non utilisable. Ce faux paquet est gnr par une machine de test d'adresse 172.16.16.2. La machine d'adresse IP 172.16.16.20 est en mode promiscuous et excute un sniffer. Les valeurs des principaux champs du faux paquet ping ICMP sont mentionnes dans le tableau : En-tte Ethernet Adresse source MAC Adresse destination MAC Type Ethernet En-tte IP Adresse source IP Adresse destination IP En-tte ICMP Type Code 8 (echo request) 0 Adresse IP de la machine de test : 172.16.16.2 L'adresse IP non utilisable : 172.16.16.182 Adresse MAC de la machine de test : 00:02:A5:B6:E3:82 Une fausse adresse MAC (par exemple : AA-AA-AA-AAAA-AA) 0x0800 (IP message)

On peut utiliser l'outil frameip.exe pour gnrer et envoyer le faux paquet ICMP avec les valeurs des principaux champs. Les machines en mode normal bloqueront le faux paquet ping ICMP. Cependant, les machines en mode promiscuous dont l'option gnration des requtes DNS inverses est active, gnreront des requtes DNS inverses vers un serveur DNS pour rechercher le nom de la machine avec l'adresse IP 172.16.16.182. La machine de test d'adresse IP 172.16.16.2 excute un sniffer pour visualiser le trafic et capturer particulirement les requtes DNS inverses. La machine d'adresse IP 172.16.16.20 a envoy une requte DNS inverse vers le serveur DNS d'adresse 193.95.66.10 la recherche du nom de la machine d'adresse IP 172.16.16.182. Il est donc clair que la machine mettrice est en mode promiscuous, excutant un sniffer qui gnre des requtes DNS inverses. 4.4.2 - La mthode pots de miel (honey pots) Si la plupart des mthodes de dtection des sniffers fonctionnent uniquement rseau local, la mthode pots de miel, elle, fonctionne partout. Elle exploite le fait que nombreux protocoles transmettent des mots de passe non crypts, et que les intrus cherchent souvent des mots de passe et des logins. Elle consiste simplement installer un client et un serveur transmettant des paquets non crypts (par exemple un serveur FTP ou HTTP) dans le rseau. L'accs au serveur exige de l'utilisateur de

s'authentifier en fournissant un login et un mot de passe (accs non anonyme). Le client ouvre une session au serveur en fournissant un login et un mot de passe valides. Le serveur qui est compltement virtuel, est configur avec des comptes virtuels. Une fois qu'un intrus a obtenu le login et le mot de passe dans le rseau, il veut accder au serveur en utilisant ces informations. Un systme de dtection d'intrusion ou un sniffer peut tre configur pour noter ces occurrences, alertant qu'un intrus a trouv le trafic et a essay d'employer l'information. Cette mthode est toutefois limite puisque l'intrus, pour une raison ou pour une autre, peut retarder sa tentative d'accder au serveur. De plus, il peut ne pas tre intress par ce type de trafic. Il utilise des filtres sur les paquets et ainsi il ne voit pas les paquets relatifs la connexion avec le serveur virtuel. 4.4.3 - La mthode de l'hte local Dtecter localement un processus qui fait fonctionner le sniffer est difficile parce que le nom de ce processus peut tre dguis en quelque chose d'anodin. La seule manire pour dtecter un sniffer dans ce cas, est de contrler si la carte rseau n'est pas en mode promiscuous. Une machine ne devrait jamais tre en mode promiscuous, sauf si son fonctionnement l'exige (cas pour un routeur ou un firewall). Le fait que la carte rseau soit en mode promiscuous est une forte indication qu'un sniffer est en cours excution. Sous la plate-forme Unix, il existe diffrentes applications qui vrifient si la carte rseau locale est en mode promiscuous, comme l'outil CPM (check promiscuous mode). Une autre mthode est d'excuter la commande ifconfig -a qui numrera les interfaces rseaux, et affichera toutes les informations leur sujet. Le mot PROMISC signifie que la carte rseau est en mode promiscuous. Ainsi, la commande ifconfig -a | grep PROMISC permet d'afficher uniquement les cartes rseau en mode promiscuous. Notons que l'utilitaire ifconfig est parfois remplac par des pirates pour viter d'tre dcouverts. Les systmes Irix et Solaris n'ont aucun flag d'indication sur le mode promiscuous. De mme sous Windows, aucune commande ne permet de vrifier le mode promiscuous pour la machine locale. La mthode de l'hte local exige un accs physique la machine cible pour identifier le mode de sa carte rseau. Ceci n'est pas pratique du tout car le but d'un administrateur rseau est de dtecter distance les machines du rseau avec des cartes en mode promiscuous. Exprience sous Linux : Nous allons essayer quatre commandes qui permettent de savoir si la carte rseau local est en mode promiscuous sous Linux. Nous allons galement les comparer en vue de choisir les commandes les plus robustes. Ces commandes sont : ifconfig, CPM (check promiscuous mode), ip link list et ip address show. L'exprience se droule en quatre tapes.

1re tape, Tout d'abord, toutes les cartes rseau sont en mode normal. On excute les deux commandes ifconfig et CPM. Les cartes rseau eth0 et lo sont en mode normal. Ensuite, on excute les deux commandes ip link list et ip address show. Les cartes rseau eth0 et lo sont encore en mode normal. 2nde tape, On met la carte eth0 en mode promiscuous en utilisant la commande ifconfig eth0 promise . Ensuite, on excute les commandes ifconfig, ip link list ,ip address show et CPM. Ces commandes ont permis de dtecter le mode promiscuous de la carte rseau eth0. 3me tape, Maintenant, on dsactive le mode promiscuous de la carte rseau eth0 en utilisant la commande ifconfig eth0 promise . 4e tape, Maintenant que toutes les cartes rseau sont en mode normal, on excute le sniffer Ethereal et on choisit comme interface rseau eth0. La diffrence avec la 1re tape, c'est qu'on va mettre l'interface rseau eth0 en mode promiscuous par un sniffer et non pas par une commande shell de configuration, telle que la commande ifconfig eth0 promise . Ensuite, on excute les deux commandes ifconfig et CPM. Ces deux commandes n'ont pas pu dtecter le mode promiscuous de l'interface rseau eth0. On passe ensuite aux commandes ip link list et ip address show. Le mode promiscuous de l'interface rseau ethO a pu tre dtect. Si le mode promiscuous a pu tre dtect grce aux commandes ip link list et ip address show et que les commandes ifconfig et CPM ont echou, c'est que chaque commande possde un fonctionnement particulier. Par exemple, pour la commande ifconfig, il y a deux interprtations. La premire invoque le,flag systme, appel IFF Promise, qui est spcifique l'interface rseau. Et c'est au niveau de ce flag que l'information sur le mode (promiscuous ou normal) de l'interface rseau existe. La commande ifconfig inspecte ce flag lors de son excution. Donc, ifconfig ne reporte pas le mode promiscuous parce que le sniffer Ethereal ne touche pas au flag IFF_Promisc lors de son fonctionnement. En outre, Ethereal pourrait crer un flag interne jouant le mme rle que IFF Promise. Le flag IFF Promise se trouve donc intact et la commande ifconfig ne pourra pas s'apercevoir du mode promiscuous. Une autre approche incrimine la commande ifconfig et prconise par consquent la mfiance quant aux rsultats qu'elle affiche car elle ne reporte pas toujours l'tat rel de l'interface rseau (http://linux-ip.net/html/tools-ifconfig.html). Nous sommes en mesure d'affirmer que les commandes les plus efficaces pour la dtection locale du mode promiscuous sous Linux sont ip link list et ip address show. Dtection du mode promiscuous l'aide des fichiers logs : Sous Linux, on peut voir la date et l'heure exacte du dbut et de la fin de la mise en mode promiscuous d'une carte rseau. Pour cela, il suffit de lire le contenu du fichier /var/log/messages . Mme si un administrateur n'arrive pas dtecter le mode promiscuous de la carte rseau locale en temps rel, la consultation du contenu de ce fichier lui permet de voir l'historique de la mise en mode promiscuous de la carte rseau et d'en tirer les conclusions adquates.

4.4.4 - La mthode de latence Dans un rseau, une machine qui coute le trafic entrant provoque sur la machine un ralentissement. Si la machine distante est en mode promiscuous, les temps de rponse sont sensiblement plus longs. Une machine coutant l'ensemble du trafic rseau, sera occupe, et mettra plus de temps rpondre. La mthode de latence est un test qui fonctionne sur toutes les machines et tous les systmes d'exploitation. Elle se droule en deux temps. Dans une premire phase, on mesure le temps de rponse moyen (round trip Unie - RTT) d'une machine cible. Dans une seconde phase, on inonde le rseau avec du trafic fictif et on mesure de nouveau le temps de rponse moyen de la machine cible. Le trafic fictif n'a aucun effet sur les machines en mode normal, mais a un effet consquent sur les machines en mode promiscuous, particulirement celles analysant les protocoles de la couche application pour capturer des logins et des mots de passe. Pour plus de prcision, ce test doit tre effectu plusieurs fois, en utilisant diffrentes mthodes de mesures. Aprs la collecte des RTT avant et aprs l'envoi du trafic fictif, on utilise gnralement un modle statistique (tels que le z-Statistic et le Student-test) pour montrer que les deux chantillons des valeurs RTT collects appartiennent deux populations diffrentes et par consquent que c'est le faux trafic qui en est la cause. La mthode de latence est une mthode probabiliste et n'est donc pas sre 100 %, puisqu'elle peut gnrer des faux ngatifs ou positifs. Cependant, combine avec d'autres mthodes de dtection, elle peut confirmer la prsence d'un sniffer dans une machine. Compare d'autres mthodes de dtection, elle est plus dlicate implmenter. D'un autre ct, elle peut dgrader de manire significative le bon droulement du rseau et peut provoquer une congestion dans les machines excutant des sniffers. Pour certains systmes d'exploitation, un ventuel problme est reprsent par la possibilit que leurs noyaux traiteront les paquets ping ICMP en priorit. Ainsi, les temps de rponse (RTT) des paquets ping resteront indpendants des charges des CPU causs par la rception de tout le trafic transitant sur le segment Ethernet, entranant ainsi des faux positifs. Le choix du type de paquet ARP, ICMP, UDP ou TCP est donc dcisif et dpend du systme d'exploitation. Gnralement, un paquet UDP ou TCP fonctionne sur tous les systmes d'exploitation. 4.4.5 - La mthode physique Un administrateur du rseau peut vrifier manuellement le hub ou le switch de son rseau pour voir s'il y a des raccordements inattendus. Par exemple, quelques commutateurs (switchers) ont un port spcial permettant la rception de tout le trafic circulant dans le rseau. Ce port a une multitude de noms, notamment port mirroring , monitoring port , spanning port , SPAN port ou link mode port . Dans le cas des routeurs Cisco, ce port est appel SPANport Ainsi, si l'intrus arrive connecter sa machine ce port, il pourrait alors avec un sniffer espionner tout le trafic du rseau. 4.4.6 - La mthode du ping ICMP Dans les noyaux des versions anciennes de quelques systmes d'exploitation (Linux notamment), il y a une condition spcifique qui permet un utilisateur de dterminer si une machine est en mode promiscuous ou non. Quand la carte rseau est place en mode promiscuous, chaque paquet est pass directement au noyau du systme d'exploitation. Quelques noyaux de systmes d'exploitation vrifient seulement l'adresse destination IP dans le paquet pour dterminer si le paquet doit tre trait ou non. Le systme FreeBSD 4.11 en est un exemple. Pour dtecter le mode promiscuous dans les cartes rseau, les programmes de dtection des sniffers (les anti-sniffers) exploitent cette spcificit. Un anti-sniffer transmet une machine suspecte un paquet avec une fausse adresse destination MAC, mais avec une adresse destination IP valide. Le systme avec une carte en mode promiscuous vrifie uniquement si l'adresse destination IP est valide. Un tel systme va gnrer une rponse ce type de paquet : la carte rseau est donc en mode promiscuous. Le principe du ping ICMP est d'envoyer une fausse demande ping (ICMP Echo request) une adresse IP valide d'une machine cible, mais avec une fausse adresse destination MAC. Si la machine est en mode normal (le filtre matriel activ), on s'attend ce qu'elle ne rponde pas cette demande. De mme, si la machine est en mode promiscuous et que le filtre logiciel du noyau de son systme d'exploitation filtre les paquets ICMP, elle ne va pas non plus rpondre cette demande. Les filtres matriel et logiciel de la machine n'acceptent en effet que les paquets dont l'adresse destination MAC est de type unicast, broadcast ou multicast. Par contre, si le mode est promiscuous et que le noyau du systme d'exploitation ne filtre pas les paquets ICMP, la machine va gnrer un paquet de rponse ping, ICMP echo reply . Ceci peut tre illustr par l'exemple suivant :

La machine suspecte d'excuter le sniffer a, par exemple, une adresse IP de X, et une adresse MAC de 00-40-05-A4-79-32. On change lgrement l'adresse MAC de la cible en 00-40-05-A4-79-33. Bien videmment, on aura vrifi au pralable qu'aucune machine du rseau n'a cette adresse MAC. A partir d'une machine de test, on envoie la commande ping ICMP (ICMP echo requesi) avec l'adresse destination IP de X et la fausse adresse destination MAC de 00-40-05-A4-79-33. Puis, si l'on reoit une rponse, on dduit que la machine suspecte n'excute pas le filtrage matriel et le noyau de son systme d'exploitation ne fait pas de filtrage logiciel, et par consquent sa carte rseau est en mode promiscuous. On rpte ce processus pour toutes les machines du rseau.. Il est important de noter que si une machine ne gnre pas de rponse, ceci n'implique pas systmatiquement que sa carte rseau est en mode normal. Une machine ne rpond pas parce que le noyau de son systme d'explosion excute du filtrage logiciel, en dpit du mode promiscuous. Notons que les noyaux des nouvelles versions de la plupart des systmes d'exploitation excutent des

filtres logiciels. Au lieu d'utiliser les paquets ping ICMP, on peut utiliser :

tout protocole qui peut gnrer des paquets de rponse, par exemple, le protocole TCP (une demande de connexion TCP), ou le protocole UDP (un echo request sur le port 7) ; tout protocole qui peut gnrer des paquets d'erreur destins la machine source, par exemple un paquet comportant un en-tte IP avec de fausses valeurs. De nos jours, cette technique est largement connue, et les agresseurs parviennent dvelopper du filtrage virtuel dans les codes de leurs sniffers. Ainsi, en plus de sa fonction principale de capture des paquets circulant dans un rseau, le sniffer bloquera les paquets ping ICMP portant des adresses destination MAC qui ne sont pas de type unicast, broadcast ou multicast. De cette manire, la machine excutant le sniffer ne peut pas gnrer de rponses ces paquets. De plus, les noyaux des nouvelles versions de la plupart des systmes d'exploitation incluent des filtres logiciels. Par consquent, la mthode du ping ICMP et mme toutes les autres mthodes utilisant d'autres protocoles, ne permettront plus la dtection des machines dont les cartes rseau sont en mode promiscuous. 4.4.7 - La mthode de l'ARP La mthode ARP est semblable la mthode du ping ICMP, mais un faux paquet ARP (ARP request) est employ la place d'un faux paquet ping ICMP. Le principe gnral de cette mthode est de tester le rseau machine par machine en envoyant une requte ARP avec une fausse adresse destination MAC mais avec une adresse destination IP valide. Comme nous nous intressons aux rseaux Ethernet partags, ce paquet devrait passer devant toutes les machines lies au mme segment Ethernet.

Si la machine est en mode normal (le filtre matriel activ), nous attendons ce qu'elle ne va pas rpondre cette demande. Egalement, si la machine est en mode promiscuous et le filtre logiciel du noyau de son systme d'exploitation filtre les paquets ARP, nous attendons ce qu'elle ne va pas rpondre cette demande. Ceci parce que les filtres matriel et logiciel de la machine acceptent seulement les paquets dont l'adresse destination MAC est de type unicast, broadcast ou multicast. Par contre, si la machine est en mode promiscuous et le filtre logiciel du noyau de son systme d'exploitation ne filtre pas les paquets ARP, nous attendons ce qu'elle va rpondre avec un paquet de type rponse ARP (ARP reply) pour fournir son adresse MAC suppose recherche. A l'instar de la mthode du ping ICMP, actuellement la plupart des systmes d'exploitation intgrent au niveau de leurs noyaux des filtres logiciels pour filtrer les paquets ARP de tel sorte la mthode de l'ARP ne peut plus dtecter les cartes rseau en mode promiscuous. Egalement, cette technique est maintenant largement connue. Les intrus peuvent dvelopper du filtrage virtuel dans les codes de leurs sniffers. Ainsi, en plus de sa fonction principale de capture des paquets circulant dans un rseau, le sniffer filtre les paquets ARP portant des adresses MAC de destination qui ne sont pas de type unicast, broadcast et multicast. De la sorte, la machine excutant le sniffer ne peut pas gnrer des rponses ARP des fausses requtes ARP. 4.4.8 - La mthode de l'attaque du cache ARP Principe de l'attaque de corruption du cache ARP : Ce paragraphe prsente l'attaque de corruption du cache ARP (ARP cache poisoning), qui exploite les vulnrabilits du protocole ARP. Cette attaque est applicable uniquement sur un rseau Ethernet excutant IP. L'ARP fonctionne en envoyant des demandes ARP (ARP request). Une demande ARP pose la question Votre adresse IP est-elle x.x.x.x ? Si oui, envoyez votre adresse MAC . Ces demandes sont mises tous les ordinateurs sur le rseau LAN (paquets de diffusion), mme s'il s'agit d'un rseau commut. Chaque ordinateur examine la demande ARP, vrifie s'il est, ce moment-l, assign l'adresse IP indique: Si oui, il envoie une rponse ARP (ARP reply) contenant son adresse MAC. Pour rduire au minimum le nombre de demandes (ou rponses) ARP mises, les systmes d'exploitation gardent un cache des rponses ARP (le cache ARP). La mise jour du cache ARP peut se faire de deux manires. Dans le premier cas de figure, quand un ordinateur reoit une rponse ARP, il va mettre jour son cache ARP avec la nouvelle association d'IP/MAC correspondant l'metteur de la rponse ARP. Des systmes d'exploitation tels que Windows 2000 et FreeBSD 4.11 mettront jour leurs caches ARP la rception de rponses ARP, mme si aucune requte ARP n'a pas t envoye. Par contre, des systmes tels que Windows XP, Linux 2.4 et 2.6 ne mettront pas jour leurs caches ARP suite la rception de rponses ARP, s'ils n'ont pas dj envoy des requtes ARP. Dans le second cas, quand un ordinateur reoit une requte ARP, il va mettre jour son cache ARP avec l'association d'IP/MAC correspondant l'metteur de la requte ARP. Tous les systmes d'exploitation tests mettront jour leurs caches ARP la rception d'une requte ARP mme si l'entre n'existe pas dans le cache. Le tableau 5.6 montre le rsultat des tests de mise jour des caches ARP de quelques systmes, sous les conditions suivantes :

une entre existe dans le cache ARP et une entre existe dans le cache ARP et l'entre n'existe pas dans le cache ARP l'entre n'existe pas dans le cache ARP

le systme reoit une requte ARP visant la mettre jour ; le systme reoit une rponse ARP visant la mettre jour ; et le systme reoit une requte ARP visant la crer ; et le systme reoit une rponse ARP visant la crer.

Les rsultats des tests amnent les conclusions suivantes :

si l'entre n'existe pas dans le cache ARP, tous les OS l'exception de Windows 2000 et de FreeBSD 4.11, n'autorisent pas la

cration de l'entre par une rponse ARP ; si l'entre n'existe pas dans le cache ARP, tous les systmes autorisent la cration d'une entre par une requte ARP ; par contre, si l'entre existe dj dans le cache ARP, tous les systmes autorisent sa mise jour par une rponse ARP (mme en absence auparavant d'une requte ARP) ou par une requte ARP. L'attaque de corruption du cache ARP consiste mettre jour les caches ARP des machines cibles avec de fausses entres IP/MAC, en utilisant des paquets ARP. Si une entre n'existe pas dans le cache ARP, pour la plupart des systmes, une rponse ARP ne permet pas de la crer. Par contre, pour tous les autres systmes, une requte ARP permet de crer une entre inexistante dans le cache ARP. Par consquent, pour mettre jour les caches ARP des machines cibles avec de fausses entres IP/MAC, seules des requtes ARP falsifies peuvent tre utilises. En envoyant de fausses requtes ARP, contenant des fausses adresses sources IP (IP_X) et MAC (MAC_X), un ordinateur cible B mettra jour son cache ARP avec ces adresses. Le processus de mise jour du cache ARP d'une machine cible avec une entre IP/MAC falsifie est dsign sous le nom de corruption ARP (ARP poisoning). L'outil Winarp_sk, tlchargeable partir de l'adresse www.arp-sk.org, ou un gnrateur de paquet tel que celui du sniffer CommView, ou FRAMEIP (lien vers EXE) permettent d'envoyer des paquets de requtes ARP falsifies. Dtection des cartes en mode promiscuous : La mthode propose pour la dtection des cartes rseau en mode promiscuous se base essentiellement sur l'attaque de corruption du cache ARP et utilise trois phases :

dans la premire phase, nous utilisons l'attaque de corruption du cache ARP pour corrompre seulement les caches ARP des machines du rseau dont les cartes sont en mode promiscuous. L'attaque utilise une fausse entre IP/MAC appele IP-Test/MACTest ; dans la deuxime phase, nous essayons d'tablir une connexion TCP avec chacune des machines du rseau sur un port quelconque, ouvert ou ferm ; dans la dernire phase, nous utilisons un sniffer afin de capturer tout paquet contenant l fausse entre IP-Test/MAC-Test. Nous dmontrerons que les machines qui gnreront des paquets TCP contenant cette fausse entre IP-Test/MAC-Test sont en mode promiscuous. Cependant, les machines qui gnrent des requtes ARP dans le but de chercher l'adresse MAC de la machine d'adresse IP IP-Test ne sont pas en mode promiscuous. Nous allons dcrire en dtail les trois phases prcdentes en utilisant une machine nomme machine de test. Phase 1 : l'attaque de corruption du cache ARP. Le but de cette phase est de corrompre seulement les caches ARP des machines dont les cartes sont en mode promiscuous. Pour ce faire, nous envoyons pour chaque machine du rseau une fausse requte ARP pige avec dans les en-ttes Ethernet et ARP les champs suivants : En-tte Ethernet Adresse source MAC Adresse destination MAC Type Ethernet En-tte ARP Type ARP Adresse source MAC adresse source IP adresse destination MAC adresse destination IP 0x01 (requte ARP) fausse adresse MAC (MAC-Test) fausse adresse IP (IP-Test) 00:00:00:00:00:00 n'importe quelle adresse

FF:FF:FF:FF:FF:FF (B47) 0x806 (Protocole ARP)

adresse IP de la machine cible

Si une machine dans le rseau cible est en mode normal, la fausse requte ARP pige sera bloque par le filtre matriel, puisque l'adresse destination MAC dans l'en-tte Ethernet est la fausse adresse de broadcast. Par consquent, la mise jour du cache ARP de cette machine ne peut tre ralise. Par contre, si la machine est en mode promiscuous, le filtre matriel est dsactiv, mais le filtre logiciel est encore activ. Par consquent, la fausse requte ARP pige est envoye directement au filtre logiciel qui va l'accepter puisqu'elle a la fausse adresse

MAC de broadcast comme adresse destination MAC. Ainsi, le cache ARP de cette machine sera mis jour par une nouvelle fausse entre, savoir : IP-Test/MAC-Test. Notons que si nous choisissons une adresse MAC de broadcast gnrale (FF:FF:FF:FF:FF:FF) comme adresse destination MAC au niveau de l'en-tte Ethernet de la fausse requte ARP pige, alors tous les caches ARP des machines du rseau cible seraient corrompus par l'attaque de corruption du cache ARP. Ainsi, une telle adresse devrait tre carte parce qu'elle ne permet pas de dtecter le mode promiscuous des cartes rseau. En conclusion, cette premire phase nous a permis de corrompre uniquement les caches ARP des machines dont leurs cartes sont en mode promiscuous. Phase 2 : demande d'tablissement d'une connexion TCP pige. Une fois la fausse entre IP-Test/MAC-Test cre dans les caches ARP des machines en mode promiscuous, nous essayerons d'tablir une connexion TCP pige avec chaque machine du rseau cible, sur un port quelconque. Il est important de noter que le port choisi peut tre un port ouvert ou ferm. En gnral, pour tablir une connexion TCP avec une machine cible, il est ncessaire d'envoyer la machine un paquet TCP SYN avec le SYN=1. En outre, la valeur du champ de l'adresse source IP dans l'en-tte IP du paquet TCP SYN est gale l'adresse IP de la machine qui demande l'tablissement de la connexion. Nous allons toutefois envoyer un paquet TCP SYN pige contenant une fausse adresse source IP dans l'en-tte IP chaque machine du rseau pour demander l'tablissement d'une connexion TCP. Ce paquet TCP SYN pige prsente la particularit suivante : l'adresse source IP dans l'en-tte IP du paquet TCP SYN est gale la fausse adresse IP-Test. En principe, elle doit tre gale l'adresse IP de la machine de test, puisque c'est cette dernire qui demande l'tablissement de la connexion TCP. Lesvaleurs des champs du paquet TCP SYN pige utilis pour tablir la connexion TCP avec chaque machine cible dans le rseau sont : En-tte Ethernet Adresse source MAC Adresse destination MAC Type Ethernet En-tte IP Adresse source IP Adresse destination IP En-tte TCP Port source Port destination Flag n'importe quelle valeur entre 1 et 65 535 n'importe quelle valeur entre 1 et 65 535 0x02 (SYN) la fausse adresse IP (IP-Test) l'adresse IP de la machine cible adresse physique de la machine de test

adresse physique de la machine cible 0x800 (le protocole IP)

Phase 3 : Dtection des machines avec des cartes rseau en mode promiscuous - Analyse des rsultats. Une fois les fausses requtes ARP piges (phase 1) et les paquets TCP SYN piges (phase 2) envoys aux diffrentes machines du rseau, nous attendons les rponses possibles suivantes :

une requte ARP : si une machine est en mode normal, lorsqu'elle reoit le paquet TCP Syn pige dont le champ adresse destination IP au niveau de l'en-tte IP correspond sa propre adresse IP, elle va croire que la machine dont l'adresse IP IP-Test veut converser avec elle. Comme aucune entre correspondante l'adresse IP-Test n'existe dans son cache ARP (phase 1), la machine cible enverra une requte ARP qui s'interroge sur l'adresse MAC qui correspond IP-Test. Cette machine ne peut donc avoir une carte en mode promiscuous ; un paquet TCP Syn/Ack : si une machine cible est en mode promiscuous et si le port de destination dans l'en-tte TCP du paquet TCP Syn pige est gal un port ouvert dans la machine, lorsqu'elle reoit le paquet TCP Syn pige, elle gnrera un paquet TCP Syn/Ack dont l'adresse destination MAC est gal MAC-Test et l'adresse destination IP est gal IP-Test. Or, une question se pose : comment cette machine a-t-elle pu avoir l'adresse MAC MAC-Test ? La seule explication est que son cache ARP contient la fausse entre IP-Test/MAC-Test. Donc, son cache ARP a t corrompu lors de l'attaque de corruption du cache ARP durant la Phase 1. Par consquent, cette machine a une carte rseau en mode promiscuous ; un paquet TCP Reset : si une machine cible est en mode promiscuous et si le port de destination dans l'en-tte TCP du paquet TCP Syn pige est gal un port ferm dans la machine, lorsque elle reoit le paquet TCP Syn pige, elle gnrera un paquet TCP Rst (indiquant que la connexion TCP ne peut pas tre tablie car le port de destination n'est pas accessible). Ce paquet TCP Rst a un

en-tte Ethernet dont l'adresse destination MAC est gal MAC-Test et a un en-tte IP dont l'adresse destination IP est gale IPTest. Or, une question simple, comment cette machine a pu avoir l'adresse MAC MAC-Test ? La seule explication est que son cache ARP contient la fausse entre IP-Test/MAC-Test. Donc son cache ARP a t corrompu lors de l'attaque de l'empoisonnement du cache ARP durant la phase 1. Par consquent, cette machine a une carte rseau en mode promiscuous. En conclusion, une machine qui gnre un paquet de rponse TCP avec les fausses adresses MAC-Test et IP-Test respectivement comme adresse destination MAC et adresse destination IP, a srement la carte en mode promiscuous. Son cache ARP contient la fausse entre IP-Test/MAC-Test. Cette fausse entre a t cre suite l'attaque de corruption du cache ARP durant la phase 1. Cependant, une machine dont le cache ARP n'est pas corrompu gnrera une requte ARP dans le but de rechercher l'adresse MAC qui correspond la fausse adresse IP IP-Test. Si un tel paquet est reu, la carte rseau de la machine mettrice n'est pas en mode promiscuous. Il est important de noter que si la machine cible autorise la gnration des rponses ARP la suite de la rception de requtes ARP. 4.5 - Les outils de dtection des sniffers Les outils de dtection des sniffers, appels anti-sniffers, utilisent pratiquement la plupart des techniques de dtection dcrites avant. Les anti-sniffers les plus connus sont lists dans le tableau ci-dessous : 4.5.1 - LOpht AntiSniff http://packetstormsecurity.nl/sniffers/antisniff/ C'est un ancien outil qui est capable de dtecter les sniffers excuts sous d'anciennes versions des systmes d'exploitation (tels que Windows 98 et Windows 95) en utilisant principalement les mthodes DNS, ARP et ping ICMP. LOpht AntiSniff utilise deux modes de dtection, savoir les techniques lies aux systmes d'exploitation et les techniques du calcul de latence. AntiSniff a t conu pour tre excut de deux faons. Premirement, pour une "analyse du rseau" pour identifier rapidement quelles machines sur le rseau local sont les plus susceptibles d'tre tudies dans la seconde tape. En second lieu, AntiSniff peut tre excut de base pour la dtection de sniffer, balayant le rseau intervalles programmes et rgulires, comparant les tests de rponses des machines sur une bases de temps et en positionnant des alarmes bases sur des vnements dfinis pour l'utilisateur et en vrifiant ces rponses (test sur arp, dns, echo icmp...) 4.5.2 - The sentinel The Sentinel fonctionne sur les Les mthodes de dtection sont l'ARP,le DNS et l'echo ICMP 4.5.3 - Anasil Network Analyser Anasil est un utilitaire d'analyse de rseau Ethernet. Il est destin au contrle des liens rseaux, la cration et la maintenance d'une liste d'ordinateurs actifs en rseau, aux tests du lien rseau et de la connexion entre les postes. Il possde en plus des mthodes de dtection de sniffers. 4.5.4 - PromiScan PROMISCan est un logiciel qui permet de dtecter distance, au sein d'un rseau local, quelles sont les machines dont l'interface rseau est en mode promiscuous. noyaux *BSD et Linux.

5 - Leurrer les anti-sniffers


Les anti-sniffers fonctionnent comme la plupart des outils de dtection, et ils sont loin d'tre parfaits. Il existe plusieurs mthodes pour leurrer les anti-sniffers en rendant les sniffers indtectables. Il est important de savoir paramtrer correctement un sniffer pour couter le trafic entrant et tre totalement passif (viter les requtes DNS inverses par exemple). En outre, le filtrage du trafic entrant et/ou sortant permet de rendre inoprantes plusieurs techniques de dtection. Dans ce qui suit, nous citerons quelques dmarches raliser pour rendre les sniffers indtectables par les anti-sniffers :

ne pas gnrer de requtes DNS. Pour ce faire, il faut dsactiver l'option DNS resolving dans les options du sniffer. ne pas gnrer de rponses ARP. Dans ce cas, il faudrait choisir l'une des mthodes suivantes : - modifier le noyau du systme d'exploitation pour ne plus gnrer des rponses ARP. Ceci n'est possible qu'avec les systmes d'exploitation libres (open source), par exemple Linux. Le fichier /usr/src/linux/ /net/ipv4/arp.c dans Linux contient le code du protocole ARP, - dsactiver le protocole ARP. Par exemple sous Linux, excuter la commande ifconfig eth0 -arp permet de dsactiver compltement le protocole ARP de la pile TCP/IP et par consquent empcher la carte rseau de rpondre aux requtes ARP. Le cache ARP de la machine n'a aucune entre et donc la machine ne peut plus dialoguer avec le rseau mais elle peut toujours excuter un sniffer. Par contre, ceci peut mettre cette machine en position suspecte puisqu'elle est prsente sur le rseau alors

qu'elle ne rpond pas aux requtes ARP. Sous Windows, il n'existe pas de commande en ligne permettant de dsactiver le protocole ARP.

utiliser un firewall pour filtrer les paquets ARP entrants et sortants, par exemple le. firewall Kerio Personal Firewall. utiliser un noyau mis jour ou modifi pour corriger le problme mentionn pour la plupart des systmes d'exploitation concernant le filtrage logiciel des fausses adresses de broadcast et de multicast. Ainsi le filtre logiciel du noyau du systme bloquera tout paquet avec de telles fausses adresses ; bloquer tout le trafic entrant et sortant de telle sorte la machine excutant le sniffer soit dconnecte compltement du rseau. Donc, pratiquement toutes les mthodes de dtection, notamment la mthode du ARP, la mthode du DNS, la mthode de latence, la mthode de l'attaque du cache ARP, ne permettent plus la dtection des sniffers. Ceci peut se faire simplement grce un firewall install sur la machine qui excute le sniffer. Cesser le sniffer quand le trafic rseau excde un certain taux. Ceci peut tre une indication qu'un anti-sniffer est en train d'injecter du trafic dans le rseau lorsqu'il utilise la mthode de latence. Un sniffer appel Anti AntiSniffer a t ralis juste aprs la sortie d'Antisniff. Ce nouveau sniffer utilise quelques-unes des techniques rcites pour viter d'tre dcouvert par AntiSniff ou un outil similaire. Un autre Anti-AntiSniffer Enigma , de www.netninja.com, propose aussi de rendre l'coute d'un rseau sre et indtectable. Dans l'attente d'un anti-anti-anti-sniffer , la bataille n'est pas finie !

6 - Discussion autour de la documentation


Vous pouvez poser toutes vos questions, vos remarques et vos expriences propos des Sniffers et anti-Sniffers. Pour cela, rendez-vous sur le Forum Scurit.

You might also like