web-dev-qa-db-fra.com

Comment savoir s'il existe un serveur DHCP non autorisé sur mon réseau?

Quelle est la meilleure approche pour déterminer si j'ai un serveur DHCP non autorisé dans mon réseau?

Je me demande comment la plupart des administrateurs abordent ce genre de problèmes. J'ai trouvé sonde DHCP grâce à la recherche et j'ai pensé à l'essayer. Quelqu'un en a-t-il eu l'expérience? (Je voudrais savoir avant de prendre le temps de le compiler et de l'installer).

Connaissez-vous des outils utiles ou des meilleures pratiques pour trouver des serveurs DHCP non autorisés?

92
l0c0b0x

Une méthode simple consiste à exécuter simplement un renifleur comme tcpdump/wireShark sur un ordinateur et à envoyer une demande DHCP. Si vous voyez d'autres offres que votre vrai serveur DHCP, vous savez que vous avez un problème.

54
Zoredache

Pour récapituler et ajouter à certaines des autres réponses:

Désactivez temporairement votre serveur DHCP de production et voyez si les autres serveurs répondent.

Vous pouvez obtenir l'adresse IP du serveur en exécutant ipconfig /all sur une machine Windows, puis vous pouvez obtenir l'adresse MAC en recherchant cette adresse IP à l'aide de arp -a.

Sur un Mac, exécutez ipconfig getpacket en0 (ou en1). Voir http://www.macosxhints.com/article.php?story=20060124152826491 .

Les informations du serveur DHCP se trouvent généralement dans/var/log/messages. Sudo grep -i dhcp /var/log/messages*

Bien entendu, la désactivation de votre serveur DHCP de production n'est peut-être pas une bonne option.

Utilisez un outil qui recherche spécifiquement les serveurs DHCP escrocs

Voir http://en.wikipedia.org/wiki/Rogue_DHCP pour une liste d'outils (dont beaucoup étaient répertoriés dans d'autres réponses).

Configurer les commutateurs pour bloquer les offres DHCP

La plupart des commutateurs gérés peuvent être configurés pour empêcher les serveurs DHCP non autorisés:

22
Jason Luther

dhcpdump , qui prend la forme d'entrée tcpdump et affiche uniquement les paquets liés à DHCP. M'a aidé à trouver Windows rooté, se faisant passer pour un faux DHCP dans notre réseau local.

17
vartec

Les approches Wireshark/DHCP Explorer/DHCP Probe sont bonnes pour une vérification ponctuelle ou périodique. Cependant, je vous recommande de regarder dans DHCP Snooping le support sur votre réseau. Cette fonctionnalité fournira une protection constante contre les serveurs DHCP non autorisés sur le réseau et est prise en charge par de nombreux fournisseurs de matériel différents.

Voici l'ensemble de fonctionnalités comme indiqué dans Cisco docs .

• Valide les messages DHCP reçus de sources non fiables et filtre les messages non valides.

• Débit limite le trafic DHCP provenant de sources fiables et non fiables.

• Construit et gère la base de données de liaisons DHCP snooping, qui contient des informations sur les hôtes non approuvés avec des adresses IP louées.

• Utilise la base de données de liaisons DHCP snooping pour valider les demandes suivantes provenant d'hôtes non approuvés.

15
Dave K

dhcploc.exe est le moyen le plus rapide et le plus pratique sur les systèmes Windows. Il est disponible dans les outils de support XP. Les outils de support sont sur tous les disques OEM/retail XP, mais peuvent ou non être sur des "disques de récupération"). fourni par certains OEM. Vous pouvez également télécharger les à partir de MS.

C'est un simple outil en ligne de commande. Vous exécutez dhcploc {yourIPaddress} , puis appuyez sur la touche 'd' pour faire une fausse découverte. Si vous le laissez fonctionner sans appuyer sur aucune touche, il affichera chaque demande DHCP et répondra qu'il entend. Appuyez sur 'q' pour quitter.

10
quux

Scapy est un outil de création de paquets basé sur python) qui est bon pour ces tâches de tri. Il y a un exemple de comment faire exactement cela ici .

9
Kyle Brandt

Pour développer l0c0b0x commente l'utilisation de bootp.type == 2 comme filtre. Le filtre bootp.type n'est disponible que dans Wireshark/tshark. Il n'est pas disponible dans tcpdump que l'emplacement contextuel de son commentaire m'inclinait à croire.

Tshark fonctionne parfaitement pour cela.

Nous avons notre réseau divisé en de nombreux domaines de diffusion, chacun avec sa propre sonde basée sur Linux avec un point de présence sur le domaine de diffusion "local" et sur un sous-réseau administratif d'une manière ou d'une autre. Tshark combiné avec ClusterSSH me permet de rechercher facilement le trafic DHCP ou (quoi que ce soit d'autre) dans les coins les plus reculés du réseau.

Cela trouvera les réponses DHCP utilisant Linux:

# ifconfig ethX promisc
# tshark -i ethX -n port 68 -R 'bootp.type == 2'
8
user62491

une fois que vous avez établi qu'il existe un serveur DHCP malveillant sur le réseau, j'ai trouvé que le moyen le plus rapide de le résoudre était ...

Envoyez un e-mail à toute l'entreprise en disant:

"lequel d'entre vous a ajouté un routeur sans fil dans le LAN, vous avez tué Internet pour tout le monde"

attendez-vous à une réponse penaude, ou le dispositif en conflit disparaîtra rapidement :)

6
Shh now
3
juFo

Désactivez le serveur DHCP principal et (re) configurez une connexion.

Si vous obtenez une adresse IP, vous avez un voyou.

Si vous avez un Linux à portée de main, le dhcpclient standard vous indique l'adresse IP du serveur DHCP (sinon vous pouvez flairer le trafic pour voir d'où vient la réponse DHCP).

3
Vinko Vrsalovic

Il existe plusieurs façons, si vous exécutez un petit réseau, le moyen le plus simple consiste à éteindre/désactiver/débrancher votre serveur DHCP, puis à exécuter ipconfig/renouvellement ou similaire sur un client et si vous obtenez et IP vous avez quelque chose de rougue sur votre réseau.

Une autre façon serait d'utiliser Wireshark capturer/analyseur de paquets pour regarder votre trafic réseau et trouver des connexions DHCP, il y a une feuille de travail de laboratoire sur la façon dont cela est disponible à partir de ici .

Il existe également un certain nombre d'utilisations disponibles qui, pour ce faire, sont DHCP Explorer une autre est la sonde DHCP que vous avez mentionnée dans votre message d'origine.

3
Jona

Vous pouvez effectuer un balayage ping de vos réseaux, puis le comparer au nombre de baux DHCP accordés par votre serveur DHCP.

Vous devez avoir une idée générale du nombre de périphériques statiques (interfaces de routeur et imprimantes peut-être) qui inclineront légèrement ce nombre, mais cela devrait être un moyen rapide et précis de les identifier sur plusieurs réseaux.

2
Peter

sur debian/ubuntu, on a également les options pour utiliser dhcpdump et/ou tcpdump avec l'aide de par ex. dhclient

Utilisez dhcpdump:

  • 1.a) exécutez dhcpdump -i eth0 dans un Shell/shell (eth0 ou le nom de votre interface)
  • 1.b) démarrer dhclient dans un autre Shell (il n'a pas besoin de s'exécuter correctement)
  • 1.c) examinez la sortie de dhcpdump pour obtenir des informations (ce devrait être une liste informative formatée de Nice du plus de détails)

Option 2 si vous n'aimez pas utiliser dhcpdump:

  • 2.a) exécutez tcpdump -i eth0 -t -n > /tmp/my_file.txt dans un shell/fenêtre
    (optionnel: -t = désactiver l'horodatage // -n = désactiver la résolution de nom, juste l'adresse IP, pas de noms de serveurs (pour RHEL/centos, utilisez -nn))
  • 2.b) démarrer dhclient dans un autre Shell (il n'a pas besoin de s'exécuter correctement)
  • 2.c) arrêter l'exécution de tcpdump ()
  • 2.d) examinez le fichier /tmp/my_file.txt avec votre éditeur préféré et recherchez des choses comme: ".53" (le port DNS par défaut)/"NX"/"CNAME"/"A?"/"AAAA" -

* sidenote: tcpdump et dhcpdump doivent probablement être installés (par exemple: Sudo apt get install tcpdump dhcpdump); dhcpdump dépend de tcpdump

2
eli

Je suggère de démarrer deux terminaux, un pour la surveillance et un autre pour l'envoi d'une demande. Terminal1 affichera les réponses de tous les serveurs DHCP existants, y compris l'adresse MAC. Cet exemple a été exécuté sur Ubuntu:

Terminal1 (pour la surveillance):

Sudo tcpdump -nelt port udp 68 | grep -i "boot. * reply"

tcpdump: sortie verbeuse supprimée, utilisez -v ou -vv pour l'écoute de décodage de protocole complet sur enp2s0, type de lien EN10MB (Ethernet), taille de capture 262144 octets 20: a6: 80: f9: 12: 2f> ff: ff: ff: ff: ff: ff, éthertype IPv4 (0x0800), longueur 332: 192.168.1.1.67> 255.255.255.255.68: BOOTP/DHCP, réponse, longueur 290 00: 23: cd: c3: 83: 8a> ff: ff : ff: ff: ff: ff, éthertype IPv4 (0x0800), longueur 590: 192.168.1.253.67> 255.255.255.255.68: BOOTP/DHCP, réponse, longueur 548

Terminal2 (pour l'envoi d'une demande):

Sudo nmap --script broadcast-dhcp-Discover -e eth0

Démarrage de Nmap 7.01 ( https://nmap.org ) à 2019-10-13 21:21 Résultats du script de pré-analyse EEST: | broadcast-dhcp-discovery : | Réponse 1 sur 1: | IP offerte: 192.168.1.228 | Type de message DHCP: DHCPOFFER | Durée de bail de l'adresse IP: 2h00m00s | Identificateur de serveur: 192.168.1.1 | Masque de sous-réseau: 255.255.255.0 | Routeur: 192.168.1.1 | _ Domaine Serveur de noms: 8.8.8.8, 8.8.4.4 AVERTISSEMENT: aucune cible n'a été spécifiée, donc 0 hôte analysé. Nmap fait: 0 adresses IP (0 hôte en haut) analysées en 0,94 seconde

Ce terminal de surveillance est nécessaire juste pour voir toutes les réponses (nmap est capable d'afficher uniquement la première réponse).

1
ajaaskel