Wie finde ich heraus, ob in meinem Netzwerk ein nicht autorisierter DHCP-Server vorhanden ist?

92

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?

l0c0b0x
quelle
2
MS Tool und sehr einfach zu bedienen! Rogue DHCP Server Erkennung - RogueChecker.zip blogs.technet.com/b/teamdhcp/archive/2009/07/03/…
aa.malta
Ich habe einen offiziellen Verweis auf Ihren Link aa.malta unter social.technet.microsoft.com/wiki/contents/articles/… gefunden, aber der Link scheint ab 2016 nicht mehr zu funktionieren. Er zeigt mir Blogbeiträge von 2009, aber ich nur Siehe Beiträge für den 6. Juli und den 29. Juni. Es scheint keinen Beitrag für den 3. Juli zu geben, wie in der von Ihnen geposteten Link-URL angegeben. Sieht so aus, als hätte MS es aus welchem ​​Grund entfernt.
Daniel
Dieser direkte Link (den ich auf einer WordPress-Site gefunden habe) funktioniert anscheinend, um die Datei von einem Microsoft-Server herunterzuladen. Der Link funktioniert seit Januar 2016. Da die URL Microsoft ist, kann ich sie als vertrauenswürdig ansehen
Daniel

Antworten:

54

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.

Zoredache
quelle
28
Hilft bei der Verwendung des folgenden Filters: "bootp.type == 2" (um nur DHCP-Angebote anzuzeigen und festzustellen, ob Antworten von verschiedenen / unbekannten Quellen
vorliegen
4
Verwenden Sie ein Programm wie DHCP-Find ( softpedia.com/get/Network-Tools/Network-IP-Scanner/… ) in Verbindung mit TCPDump / Wireshark, um DHCP-Antworten auszulösen.
saluce
1
Können Sie eine spezifischere Lösung anbieten?
Tarabyte
@tarabyte Ich bin mir nicht sicher, welche Lösung oder Verbesserungen ich anbieten soll. Ich denke, diese Frage hat eine ziemlich gute Abdeckung von den Dutzenden anderen guten Antworten. Ich gehe heutzutage dazu über, Ihre Switches so zu konfigurieren, dass DHCP blockiert wird, wie es Jason Luther vorgeschlagen hat. Gab es etwas Bestimmtes, das besser abgedeckt werden musste?
Zoredache
2
Ich war eher eine Folge von Befehlen erwarten , den Gebrauch machen tcpdump, arpusw. mit expliziten Parametern und Erläuterung dieser Parameter.
Tarabyte
22

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 /allauf einem Windows-Computer ausgeführt werden, und Sie können die MAC-Adresse ermitteln, indem Sie nach dieser IP-Adresse suchen arp -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:

Jason Luther
quelle
17

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.

vartec
quelle
15

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 .

• Überprüft DHCP-Nachrichten, die von nicht vertrauenswürdigen Quellen empfangen wurden, und filtert ungültige Nachrichten heraus.

• Rate - Begrenzt den DHCP-Verkehr von vertrauenswürdigen und nicht vertrauenswürdigen Quellen.

• Erstellt und verwaltet die DHCP-Snooping-Bindungsdatenbank, die Informationen zu nicht vertrauenswürdigen Hosts mit geleasten IP-Adressen enthält.

• Verwendet die DHCP-Snooping-Bindungsdatenbank, um nachfolgende Anforderungen von nicht vertrauenswürdigen Hosts zu überprüfen.

Dave K
quelle
2
DHCP-Snooping von Juniper doc: juniper.net/techpubs/en_US/junos9.2/topics/concept/… DHCP-Snooping von ProCurve
sclarson
10

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'.

quux
quelle
Verwenden Sie dies einfach in Kombination mit dem Abschalten einzelner Switch-Ports, um einen hinterhältigen Schurkenserver aufzuspüren, mit dem wir uns befasst haben. Gutes Zeug!
DHayes
1
Sie können DHCPloc.exe weiterhin unter Windows 7 verwenden: 1. Laden Sie "Windows XP Service Pack 2-Supporttools" von [hier] [1] herunter. 2. Klicken Sie mit der rechten Maustaste auf die ausführbare Datei und wählen Sie Eigenschaften-> Kompatibilität. Aktivieren Sie dann den Kompatibilitätsmodus und stellen Sie ihn auf "Windows XP (Service Pack 3)" ein. 3. Installieren Sie wie gewohnt. DHCPLoc.exe funktioniert in meiner Win7 x64-Installation einwandfrei. [1]: microsoft.com/en-us/download/details.aspx?id=18546
parsley72
1
Ich habe gerade bemerkt, dass Sie nur die ausführbare Datei von folgendem Speicherort herunterladen können und sie unter Win 10 x64 einwandfrei
funktioniert
9

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 .

Kyle Brandt
quelle
2
Wow, ich finde Scapy ist so mächtig, nachdem ich mich mehrere Tage damit beschäftigt habe. Es übertrifft die beschissenen Tools wie dhcpfind.exe und dhcploc.exe. Scapy 2.2 kann unter Linux und Windows ausgeführt werden - ich habe beide ausprobiert. Das einzige Hindernis ist, dass Sie die Programmiersprache Python in gewissem Maße kennen MÜSSEN, um ihre Leistungsfähigkeit zu nutzen.
Jimm Chen
Der Link, den Sie gepostet haben, ist defekt
Jason S
@JasonS Hallo Ich habe den Link aktualisiert, aber der Wechsel Peer - Review ansteht ... Während des Wartens Sie es hier finden: bitbucket.org/secdev/scapy/wiki/doc/IdentifyingRogueDHCPServers
Huygens
7

So erweitern Sie den Kommentar von l0c0b0x zur Verwendung bootp.type == 2als 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:

# ifconfig ethX promisc
# tshark -i ethX -n port 68 -R 'bootp.type == 2'
Gemeinschaft
quelle
Sehr hilfreich, ich habe ein bisschen Zeit damit verbracht herauszufinden, warum ich bekommen habe tcpdump: syntax error. Sogar eine Frage dazu gepostet, Ihre Antwort hat mich freigeschaltet, danke! networkengineering.stackexchange.com/questions/39534/…
Elijah Lynn
1
Auch ich denke, etwas hat sich mit dem geändert -R <Read filter>. Ich verstehe tshark: -R without -2 is deprecated. For single-pass filtering use -Y.. -Yfunktioniert gut.
Elijah Lynn
6

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 :)

Schh jetzt
quelle
3

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).

Vinko Vrsalovic
quelle
2
Während dies natürlich funktionieren würde, ist das Stoppen eines Produktions-DHCP-Servers wahrscheinlich nicht der beste Ansatz, wenn Sie tatsächlich Bedenken haben , den Dienst
Massimo
2
Hängt von der Anzahl der Personen ab, die Sie bedienen. Sie können den Dienst in den meisten Fällen für ein paar Minuten unterbrechen, und niemand wird es bemerken, besonders mitten am Tag, an dem die meisten Leute bereits ihren Mietvertrag haben.
Vinko Vrsalovic
3

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.

Jona
quelle
2

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.

Peter
quelle
0

auf debian / ubuntu hat man auch die möglichkeiten zu nutzen dhcpdumpund / oder tcpdumpmit hilfe von zbdhclient

Verwenden Sie dhcpdump:

  • 1.a) dhcpdump -i eth0in einer Shell / Shell laufen (eth0 oder der Name Ihrer Schnittstelle)
  • 1.b) dhclientin einer anderen Shell starten (muss nicht erfolgreich laufen)
  • 1.c) Schauen Sie in die Ausgabe von dhcpdumpnach Informationen (es sollte eine schön formatierte, informative Liste mit den meisten Details sein)

Option 2, wenn Sie kein dhcpdump verwenden möchten:

  • 2.a) tcpdump -i eth0 -t -n > /tmp/my_file.txtin 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))
  • 2.b) dhclientin einer anderen Shell starten (muss nicht erfolgreich laufen)
  • 2.c) stoppe den laufenden tcpdump ()
  • 2.d) Untersuchen Sie die Datei /tmp/my_file.txt mit Ihrem bevorzugten Editor und suchen Sie nach Dingen wie: ".53" (der Standard-DNS-Port) / "NX" / "CNAME" / "A?" / "AAAA" -

* sidenote: tcpdump und dhcpdump müssen wahrscheinlich installiert sein (zB:) sudo apt get install tcpdump dhcpdump; dhcpdump hängt von tcpdump ab

eli
quelle
0

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).

ajaaskel
quelle