Wie kann ich am besten feststellen, ob sich in meinem Netzwerk ein nicht autorisierter DHCP-Server befindet?
Ich frage mich, wie die meisten Administratoren diese Art von Problemen angehen. Ich fand DHCP Probe durch die Suche und dachte darüber nach, es auszuprobieren. Hat jemand Erfahrung damit? (Ich würde gerne wissen, bevor ich mir die Zeit nehme, es zu kompilieren und zu installieren).
Kennen Sie nützliche Tools oder Best Practices für die Suche nach falschen DHCP-Servern?
networking
dhcp
l0c0b0x
quelle
quelle
Antworten:
Eine einfache Methode besteht darin, einen Sniffer wie tcpdump / wireshark auf einem Computer auszuführen und eine DHCP-Anfrage zu senden. Wenn Sie andere Angebote als von Ihrem echten DHCP-Server sehen, wissen Sie, dass Sie ein Problem haben.
quelle
tcpdump
,arp
usw. mit expliziten Parametern und Erläuterung dieser Parameter.Um einige der anderen Antworten zusammenzufassen und zu ergänzen:
Deaktivieren Sie vorübergehend Ihren Produktions-DHCP-Server und prüfen Sie, ob andere Server reagieren.
Sie können die IP-Adresse des Servers ermitteln, indem Sie
ipconfig /all
auf einem Windows-Computer ausgeführt werden, und Sie können die MAC-Adresse ermitteln, indem Sie nach dieser IP-Adresse suchenarp -a
.Führen Sie auf einem Mac
ipconfig getpacket en0
(oder en1) aus. Siehe http://www.macosxhints.com/article.php?story=20060124152826491 .Die DHCP-Serverinformationen befinden sich normalerweise in / var / log / messages.
sudo grep -i dhcp /var/log/messages*
Das Deaktivieren Ihres Produktions-DHCP-Servers ist natürlich möglicherweise keine gute Option.
Verwenden Sie ein Tool, das speziell nach falschen DHCP-Servern sucht
Unter http://en.wikipedia.org/wiki/Rogue_DHCP finden Sie eine Liste der Tools (von denen viele in anderen Antworten aufgeführt wurden).
Konfigurieren Sie Switches, um DHCP-Angebote zu blockieren
Die meisten verwalteten Switches können so konfiguriert werden, dass nicht autorisierte DHCP-Server verhindert werden:
http://www.cisco.com/en/US/docs/switches/lan/catalyst6500/ios/12.2SX/configuration/guide/snoodhcp.html
http://www.juniper.net/techpubs/en_US/junos9.2/topics/concept/port-security-dhcp-snooping.html
http://h40060.www4.hp.com/procurve/uk/en/pdfs/application-notes/AN-S12_ProCurve-DHCP-snooping-final.pdf
quelle
dhcpdump , das die Eingabeform tcpdump annimmt und nur DHCP-bezogene Pakete anzeigt. Hat mir geholfen, rootkited Windows zu finden, das sich in unserem LAN als gefälschtes DHCP ausgibt.
quelle
Die Ansätze Wireshark / DHCP Explorer / DHCP Probe eignen sich für eine einmalige oder regelmäßige Überprüfung. Ich würde jedoch empfehlen, sich mit der DHCP-Snooping- Unterstützung in Ihrem Netzwerk zu befassen . Diese Funktion bietet ständigen Schutz vor nicht autorisierten DHCP-Servern im Netzwerk und wird von vielen verschiedenen Hardwareanbietern unterstützt.
Hier finden Sie die in den Cisco-Dokumenten angegebenen Funktionen .
quelle
dhcploc.exe ist der schnellste und handlichste Weg auf Windows-Systemen. Es ist in den XP Support Tools verfügbar. Die Support-Tools befinden sich auf jeder OEM / Retail XP-Festplatte, können sich aber auch auf "Wiederherstellungsdisketten" befinden, die von einigen OEMs bereitgestellt werden. Sie können sie auch von MS herunterladen .
Es ist ein einfaches Kommandozeilen-Tool. Sie führen dhcploc {yourIPaddress} aus und drücken dann die Taste 'd', um eine gefälschte Erkennung durchzuführen . Wenn Sie es laufen lassen, ohne eine Taste zu drücken, zeigt es jede DHCP-Anfrage an und beantwortet sie. Drücken Sie zum Beenden 'q'.
quelle
Scapy ist ein auf Python basierendes Tool zur Paketerstellung, das für diese Sortieraufgaben geeignet ist. Es gibt hier ein Beispiel, wie genau dies gemacht werden kann .
quelle
So erweitern Sie den Kommentar von l0c0b0x zur Verwendung
bootp.type == 2
als Filter. Der bootp.type Filter ist nur in Wireshark / tshark verfügbar. Es ist nicht in tcpdump verfügbar, was mich aufgrund des kontextuellen Orts seines Kommentars zu glauben veranlasste.Tshark arbeitet perfekt dafür.
Wir haben unser Netzwerk in zahlreiche Broadcast-Domänen unterteilt, von denen jede über einen eigenen Linux-basierten Test verfügt und auf die eine oder andere Weise in der "lokalen" Broadcast-Domäne und in einem administrativen Subnetz präsent ist. Mit Tshark in Kombination mit ClusterSSH kann ich problemlos nach DHCP-Datenverkehr oder (was auch immer) in den weiteren Ecken des Netzwerks suchen.
Dies findet DHCP-Antworten unter Linux:
quelle
tcpdump: syntax error
. Sogar eine Frage dazu gepostet, Ihre Antwort hat mich freigeschaltet, danke! networkengineering.stackexchange.com/questions/39534/…-R <Read filter>
. Ich verstehetshark: -R without -2 is deprecated. For single-pass filtering use -Y.
.-Y
funktioniert gut.Sobald Sie festgestellt haben, dass es einen falschen DHCP-Server im Netzwerk gibt, habe ich den schnellsten Weg gefunden, dies zu beheben.
Senden Sie eine E-Mail an das gesamte Unternehmen mit den Worten:
"Wer von Ihnen hat einen WLAN-Router in das LAN hinzugefügt, Sie haben das Internet für alle anderen getötet"
Erwarten Sie eine verlegene Reaktion, oder das widersprüchliche Gerät verschwindet schnell :)
quelle
Deaktivieren Sie den Haupt-DHCP-Server und konfigurieren Sie eine Verbindung (neu).
Wenn Sie eine IP-Adresse erhalten, haben Sie einen Schurken.
Wenn Sie ein Linux zur Hand haben, teilt Ihnen der Standard-DHCP-Client die IP-Adresse des DHCP-Servers mit (ansonsten können Sie den Datenverkehr abhören, um zu sehen, woher die DHCP-Antwort kam).
quelle
Es gibt verschiedene Möglichkeiten, wenn Sie ein kleines Netzwerk betreiben, ist es am einfachsten, Ihren DHCP-Server auszuschalten / zu deaktivieren / zu entfernen und dann ipconfig / renew oder ähnliches auf einem Client auszuführen Netzwerk.
Eine andere Möglichkeit wäre, Wireshark Packet Capturer / Analyzer zu verwenden, um Ihren Netzwerkverkehr zu untersuchen und DHCP-Verbindungen zu finden. Es gibt ein Laborarbeitsblatt darüber, wie dies von hier aus möglich ist .
Es gibt auch eine Reihe von Anwendungen, für die DHCP Explorer und DHCP Probe verwendet werden, die Sie in Ihrem ursprünglichen Beitrag erwähnt haben.
quelle
Sie können RogueChecker von Microsoft verwenden:
Original-Link: http://blogs.technet.com/b/teamdhcp/archive/2009/07/03/rogue-dhcp-server-detection.aspx
Link mit Download: https://web.archive.org/web/20141022013752/http://blogs.technet.com/b/teamdhcp/archive/2009/07/03/rogue-dhcp-server-detection.aspx
Lesen Sie auch diese Informationen:
https://social.technet.microsoft.com/wiki/contents/articles/25660.how-to-prevent-rogue-dhcp-servers-on-your-network.aspx
quelle
Sie könnten einen Ping-Sweep in Ihren Netzwerken durchführen und diesen dann mit der Anzahl der DHCP-Leases vergleichen, die von Ihrem DHCP-Server ausgegeben wurden.
Sie müssen eine allgemeine Vorstellung von der Anzahl der statischen Geräte (Router-Schnittstellen und Drucker) haben, die diese Anzahl leicht verzerren. Dies sollte jedoch eine schnelle und genaue Möglichkeit sein, sie über mehrere Netzwerke hinweg zu identifizieren.
quelle
auf debian / ubuntu hat man auch die möglichkeiten zu nutzen
dhcpdump
und / odertcpdump
mit hilfe von zbdhclient
Verwenden Sie dhcpdump:
dhcpdump -i eth0
in einer Shell / Shell laufen (eth0 oder der Name Ihrer Schnittstelle)dhclient
in einer anderen Shell starten (muss nicht erfolgreich laufen)dhcpdump
nach Informationen (es sollte eine schön formatierte, informative Liste mit den meisten Details sein)Option 2, wenn Sie kein dhcpdump verwenden möchten:
tcpdump -i eth0 -t -n > /tmp/my_file.txt
in einer Shell / einem Fenster ausführen(optional:
-t
= Zeitstempel deaktivieren //-n
= Namensauflösung deaktivieren, nur IP-Adresse, keine Servernamen (für RHEL / Centos -nn verwenden))dhclient
in einer anderen Shell starten (muss nicht erfolgreich laufen)* sidenote: tcpdump und dhcpdump müssen wahrscheinlich installiert sein (zB:)
sudo apt get install tcpdump dhcpdump
; dhcpdump hängt von tcpdump abquelle
Ich empfehle, zwei Terminals zu starten, eines zum Überwachen und eines zum Senden einer Anfrage. Terminal1 zeigt die Antworten aller vorhandenen DHCP-Server einschließlich der MAC-Adresse an. Dieses Beispiel wurde unter Ubuntu ausgeführt:
Terminal1 (zur Überwachung):
sudo tcpdump -nelt udp port 68 | grep -i "boot. * reply"
tcpdump: Ausführliche Ausgabe unterdrückt. Verwenden Sie -v oder -vv für die vollständige Protokolldecodierungsüberwachung auf enp2s0, EN10MB vom Verbindungstyp (Ethernet), Erfassungsgröße 262144 Byte 20: a6: 80: f9: 12: 2f> ff: ff: ff: ff: ff: ff, Ethertyp IPv4 (0x0800), Länge 332: 192.168.1.1.67> 255.255.255.255.68: BOOTP / DHCP, Antwort, Länge 290 00: 23: cd: c3: 83: 8a> ff: ff : ff: ff: ff: ff, Ethertyp IPv4 (0x0800), Länge 590: 192.168.1.253.67> 255.255.255.255.68: BOOTP / DHCP, Antwort, Länge 548
Terminal2 (zum Senden einer Anfrage):
sudo nmap --script broadcast-dhcp-discover -e eth0
Starten von Nmap 7.01 ( https://nmap.org ) um 2019-10-13 21:21 EEST Skriptergebnisse vor dem Scan: | broadcast-dhcp-discover: | Antwort 1 von 1: | IP angeboten: 192.168.1.228 | DHCP-Nachrichtentyp: DHCPOFFER | Lease-Zeit für IP-Adresse: 2h00m00s | Server-ID: 192.168.1.1 | Subnetzmaske: 255.255.255.0 | Router: 192.168.1.1 | _ Domain Name Server: 8.8.8.8, 8.8.4.4 WARNUNG: Es wurden keine Ziele angegeben, daher wurden 0 Hosts gescannt. Nmap fertig: 0 IP-Adressen (0 Hosts) wurden in 0,94 Sekunden gescannt
Dieses Überwachungsterminal wird nur benötigt, um alle Antworten anzuzeigen (nmap kann nur die erste Antwort anzeigen).
quelle