Extrait de la Sniffing FAQ de Robert Graham
Translation by eberkut - http://www.chez.com/keep

3.8 Comment puis-je sniffer un réseau commuté ?

En théorie, vous ne pouvez pas sniffer un réseau commuté. Tout ce que le sniffing ferait sera de voir votre propre trafic de toute façon. En pratique, il y a de nombreuses méthodes.

3.8.1 Switch Jamming
 
Quelques switches peuvent être exclut du mode "bridging" vers le mode "repeating" où toutes les trames sont en broadcast sur tous les ports tous le temps. Ceci est fait en overflowant les tables d'adresse avec un bon nombre de fausses adresses MAC. Ceci peut être fait avec une phase simple de génération de trafic, ou en envoyant un flux continuel d'ordures aléatoires à travers le switch. En termes de sécurité, ceci est connu comme un comportement "fail open" par opposition à "fail close", signifiant qu'au moment où le dispositif échoue, les dispositions de sécurité sont supprimées. Naturellement, les switches ne sont pas vraiment conçus dans un esprit de sécurité.

Voyez le projet HUNT à http://www.cri.cz/kra/index.html pour plus d'infos.

3.8.2 Redirection ARP
 
Les paquets ARP contiennent les 2 binding locales aussi bien qu'un binding désirée. Par exemple, disons qu'Alice veut trouver l'adresse MAC Ethernet de Bob. Bob a une adresse IP "192.0.2.1". Alice envoie une requête ARP avec les informations suivante.
 
Opération : Requête
Alice : 192.0.2.173 00-40-05-A4-79-32
Bob : 192.0.2.1 ?? ?? ?? ?? ?? ??

L'échange entier pourrait ressembler au diagramme ci-dessous. Alice a un paquet IP d'une certaine sorte (disons ping ICMP) à envoyer à Bob. Afin de trouver l'adresse MAC de Bob, Alice lui envoie une requête ARP. Bob répond à Alice, lui disant son adresse MAC. Maintenant Alice envoie son paquet IP à cette adresse MAC Ethernet.

Alice ----> ARP broadcast request ----> Bob
Alice <----  ARP unicast response <---- Bob
Alice ----> ICMP ping request     ----> Bob

Alice <----  ICMP ping response   <---- Bob
Alice <----  ICMP ping request    <---- Charles
Maintenant Bob a un paquet IP à envoyer à Alice. En théorie, Bob aurait besoin d'envoyer une requête ARP à Alice afin de trouver son adresse MAC. Mais il ne le fait pas. C'est parce qu'il s'est rappelé son information d'adresse MAC qui a été envoyé dans la requête ARP originale.

En fait, chacun sur l'Ethernet local a vu cette demande puisqu'elle a été diffusé à l'ensemble du réseau. Ainsi si Charles veut à ce moment pinger Alice, il n'a pas besoin de lui envoyer de requête ARP non plus, bien qu'il n'ait pas été impliqué dans l'échange initial.

Des émissions sont envoyées à chacun sur un switch Ethernet. Par conséquent, vous pouvez renverser le switch en envoyant des requêtes ARP en prétendant être quelqu'un d'autre comme adresse source. Vous pouvez annoncer une requête ARP en prétendant être le routeur, dans ce cas chacun essayera de router à travers vous. Ou vous pouvez envoyer une requête ARP juste a l'adresse MAC de la victime, en prétendant être le routeur, auquel cas la victime vous expédiera des paquets. Réciproquement, vous pouvez envoyer une requête ARP à l'adresse MAC du routeur en prétendant être la victime.

Dans toutes ces cas, vous devez être disposés à expédier des paquets dans la vraie direction, autrement vous interrompez la transmission.

Voyez http://www.zweknu.org/src/MiM/ pour des programmes d'exemples.

3.8.3 Redirection ICMP
 
Une redirection ICMP dit à une machine d'envoyer ses paquets dans une direction différente. Un exemple typique est quand il y a 2 subnet logiques sur le même segment physique. Alice est sur un subnet parlant à Bob sur un autre subnet. Ni l'un ni l'autre ne sait qu'ils sont sur le même segment physique, mais le routeur local sait. Quand Alice envoie au routeur un paquet destiné à Bob, le routeur envoie une redirection ICMP à Alice l'informant du fait qu'elle peut envoyer un paquet à Bob directement.

Un hacker (Mark) peut retourner ceci en envoyant une redirection à Alice en prétendant qu'elle peut lui envoyer des paquets à Bob.

3.8.4 ICMP Router Advertisements
 
Les ICMP Router Advertisements informent les gens de qui est le routeur. Un intrus peut envoyer ces paquets en prétendant être un routeur ; les gens le croiront et commenceront à expédier leur trafic par cette personne.

Heureusement, beaucoup de machines ne supportent pas ce dispositif parce qu'il est relativement nouveau. Maintenant que les implications de sécurité sont bien connues, beaucoup de nouveaux systèmes ne le supporteront toujours pas.

Voyez http://www.l0pht.com/advisories/rdp.txt pour plus d'information.

3.8.5 Fausser l'adresse MAC de la victime
 
L'idée est de faire commencer le switch à forwarder les trames destinées à la victime. Vous pouvez faire ceci simplement en envoyant des trames avec l'adresse source de la victime. Le dispositif "auto-learning" du switch croira maintenant que vous êtes la victime, et vous enverra les trames.

Le problème évident est que la victime elle-même enverra toujours des trames avec son adresse MAC (causant le retournement du switch). Un autre problème est que si la victime ne reçoit pas la trame, alors il y a rupture de transmission, et il n'y aura plus rien à sniffer.

Il y a quelques solutions à ce problème, dépendant de ce que vous voulez faire. Vous pouvez vouloir renverser une connexion authentifiée, dans ce cas vous faites un DoS sur la victime (la rendant offline), réorientez le switch, et poursuivre la connexion comme si rien ne s'est produit. Par exemple, disons qu'Alice a une connexion telnet au serveur BOB. Vous faites un DoS sur la machine d'Alice, la mettant offline. Vous envoyez alors des paquets avec l'adresse MAC d'Alice, faisant vous envoyer tous les paquets destinés à elle par le switch. Afin de prendre sa connexion, vous vous faites envoyer par le serveur un paquet TCP (i.e. employez le service d'entretien pour inciter une connexion). A ce moment, vous commencez simplement à renverser les numéros de séquence et d'acknowledgment pour poursuivre la connexion telnet.

Une autre solution à ce problème est d'échantillonner le trafic. Envoyez les paquets avec la MAC de la victime à des intervalles occasionnels. Vous obtiendrez probablement les paquets à venir destinée à la victime, mais elle fera un timeout et récupérera la connexion. L'utilisateur victime notera des délais réseau occasionnels.

Une solution similaire est que quand vous recevez un paquet entrant, renvoyez le en broadcast. De cette façon la victime reçoit toujours le paquet. Un flux régulier du trafic d'outgong et des émissions du trafic entrant vous permettra de récupérer un bon pourcentage du trafic initial.

3.8.6 Reconfigurer un port span/moniteur sur le switch
 
La plupart des switches permettent à des ports d'être configurés en tant que ports "moniteur" ou "span" qui copieront une partie ou tout le trafic passant à travers le switch. En fait, ces ports sont conçus pour des sniffers de paquet lorsque l'administrateur réseau doit résoudre un problème.

Dans beaucoup de cas, un intrus peut faire un telnet sur le switch ou le reconfigurer avec SNMP. Beaucoup de switches sont installés par défaut ou des backdoors passwords.

Le SNMP est en particulier amusant parce que l'intrus peut 'morceler' tous les mots de passe jusqu'à ce que il/elle trouve le correct (cependant la plupart viennent par défaut avec "public" ou "privé"). Dans certains cas, l'admin réseau configure le switch pour permettre seulement le SNMP depuis l'adresse IP de la console de gestion réseau. Cependant, cette même console de gestion réseau enverra probablement d'autres paquets SNMP : le sniffing d'émission ou juste le SNMP entrant dirigé à l'hôte indiqueront probablement qui est la console de gestion SNMP, pour laquelle l'IP Spoofing ne peut être employé pour contrôler le switch. De même les transferts de zone DNS pourraient indiquer des noms suggestifs tels que "hpov.example.com" (hpov = HPOpenView, une console populaire de SNMP).

3.8.7 Cable-taps
 
Vous pouvez vous brancher sur le câble Ethernet full-duplex. Quelques constructeurs font des produits qui font ceci pour vous. Quelques dispositifs de ces produits sont :
  • Votre sniffer de paquet a besoin de 2 adaptateurs Ethernet pour recevoir les canaux émetteurs-récepteurs. La plupart des produits supportent le sniffing seulement depuis un adaptateur simple à la fois, ce qui signifie que vous ne pouvez sniffer qu'un canal à la fois.
  • Tous les produits que je connais ont une tolérance de faute, ce qui signifie que si la puissance échoue sur la box, ils n'interrompront pas le flux du trafic.
Naturellement, vous pouvez toujours vous brancher sur des câbles entre les switches ou entre un hôte et un switch. Les constructeurs de cable-taps sont :
www.Shomiti.com
La famille "Century Tap" est utilisée à cette fin. Les travaux de branchement de base sont décrit ci-dessus. Ils ont également un tap fibre optique. En conclusion, ils ont un tap 12 ports qui permet l'analyse sur 12 lignes full-duplex.
www.NetOptics.com
Ils ont non seulement le tap de base, mais également un qui supportent la fibre optique aussi bien. Puisqu'ils ne font pas leur propre analyseur de protocole, ils revendent leurs produits pour d'autres compagnies de sniffer de paquet.
www.Sniffer.com
Plutôt qu'un tap passif décrit ci-dessus, ils ont un plein "pod" qui fait la capture de paquet et le filtrage sur l'unité elle-même. Elle contient plusieurs puces Ethernet, des CPU, et de la mémoire.