Mapping réseau via ARP avec netdiscover

Il existe quantité d’outils de mapping réseau, ces outils permettent d’effectuer une découverte passive ou active du réseau afin d’y trouver des hôtes via leur IP. C’est souvent l’une des premières phases d’une attaque informatique ou d’un audit.

Bien que l’outil le plus avancé et connu soit nmap, il en existe d’autres comme netdiscover qui sont intéressants à connaître et à utiliser. netdiscover se différencie d’nmap de par la méthode qu’il utilise pour effectuer la découverte du réseau.

Comment fonctionne netdiscover

Netdiscover est donc un outil de mapping réseau qui fonctionne via des requêtes ARP et non via l’IP comme la plupart des outils. Il n’est sûrement pas le seul à utiliser cette méthode mais il est plutôt simple d’utilisation et de fonctionnement. Pour ceux qui souhaiteraient avoir plus d’informations sur le fonctionnement et le rôle d’ARP, je vous oriente vers ce tutoriel : Qu’est ce que l’ARP ?

L’outil, nativement présent sur les distributions Kalilinux et Backtrack, il peut s’installer via ses sources sur d’autres distributions : NixGenerations – netdiscover.

On peut également l’installer via les dépôts. On commence par installer la librairie libpcap qui permet d’analyser les flux réseaux :

apt-get install libpcap-dev

Puis on pourra installer netdiscover :

apt-get netdiscover

Netdiscover fonctionne donc via l’envoi d’un grand nombre de paquet ARP sur le réseau, ceux-ci ont l’avantage d’être légers et envoyés en broadcast et non pas à un hôte unique (qui peut ne pas exister). Ainsi, pour savoir par exemple si l’IP 192.168.1.1 existe sur le réseau, il va envoyer un “Who has 92.168.1.1 ? Tell…” en ARP sur le réseau en broadcast puis va simplement attendre une réponse en analysant le trafic reçu sur son interface réseau via la librairie libpcap. Un exemple de ce que l’on peut observer en faisant une analyse de trame en lançant netdiscover via la commande suivante :

netdiscover -i eth0 -r 192.168.1.0/24

Ici, je décide donc de scanner le réseau 192.168.1.0/24 depuis mon interface “eth0” . Voici ce que l’on peut observer dans une capture du trafic via Wireshark, il s’agit ici du trafic émis en tant que “scanneur” :

arp-net-discover-02

Nous voyons bien ici lors d’une tentative de mapping du réseau 192.168.1.0/24 l’ensemble des trames ARP request passées en Broadcast. On parle ici d’un broadcast MAC. Sachant que les commutateurs (switch) transmettent les trames de broadcast MAC sur tout leurs ports, la requête arrivera sur toutes les machines du réseau local et celle ayant l’IP recherchée par la trame répondra. Netdiscover pourra alors l’inscrire dans sa page de résultat :

arp-net-discover-01

Netdiscover ne fait que de la découverte réseau et ne va pas beaucoup plus loin à l’inverse d’autres outils comme nmap, mais c’est un tâche qu’il remplit très bien et avec une très grande rapidité en comparaison à Nmap. Depuis netdiscover, on peut donc récupérer l’IP, l’adresse MAC ainsi que le constructeur de la carte réseau (qui dépend des trois premiers octets son adresse MAC). L’action de netdiscover revient en fin de compte à se former une table ARP rapidement en demandant, sur le réseau visé, toutes les IP qui peuvent s’y trouver.

Quelques commandes

Plusieurs options sont disponibles sur netdiscover, on peut les voir via la commande suivante :

netdiscover -h

On trouvera par exemple le fait de spécifier une interface de sortie avec “-i” :

netdiscover -i eth1

Par défaut, netdiscover va scanner tous les réseaux privés possibles c’est à dire :

  • de 192.168.0.1 à 192.168.255.254
  • de 172.16.0.1 à 172.31.255.254
  • de 10.0.0.1 à 10.255.255.254

Cela peut prendre beaucoup de temps inutilement, surtout si l’on connaît déjà le réseau à scanner. Pour cela, on peut spécifier un réseau au format CIDR via l’option “-r” :

netdiscover -i eth0 -r 192.168.10.0/24

On peut également rendre encore plus rapide la découverte du réseau par netdiscover avec l’option “-f” qui permet de ne pas attendre la réponse d’une requête ARP avant d’en envoyer une autre sur l’IP suivante. Un “hardcore mode” peut également être utilisé via l’option “-S” :

netdiscover -i eth0 -r 192.168.10.0/24 -S -f

Cette option a pour effet de supprimer les temps d’attente entre les requêtes.

Dans certains cas, plusieurs réseaux connus peuvent être à scanner, on peut alors utiliser un fichier contenant cette liste de réseau. Voici le contenu d’un fichier d’exemple :

192.168.10.0/24
192.168.54.0/24
192.168.1.0/24

Nous allons alors spécifier la localisation de ce fichier lors du lancement de la commande netdiscover :

netdiscover -i eth0 -f plage_ip.txt

Pour se faire discret et n’éveiller aucun soupçon, il est également possible d’utiliser une méthode de découverte passive, par simple écoute du réseau avec l’option “-p” . Cela est généralement plus long et moins complet mais beaucoup plus discret.

Vous aimerez aussi...

1 réponse

  1. south dit :

    Bonjour,

    Votre article est très intéressant, comme l’ensemble du contenu de votre site que je viens de découvrir récement. Sauf erreur de ma part, vous avez oublié l’instruction “install” dans la ligne : apt-get netdiscover

    ++

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *