it-swarm.com.de

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

Was ist der beste Ansatz, um festzustellen, 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 Suchen 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, um unerwünschte DHCP-Server zu finden?

92
l0c0b0x

Eine einfache Methode besteht darin, einfach 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.

54
Zoredache

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

Sie können die IP-Adresse des Servers abrufen, indem Sie ipconfig /all Auf einem Windows-Computer ausführen. Anschließend können Sie die MAC-Adresse abrufen, indem Sie mit arp -a Nach dieser IP-Adresse suchen.

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 unerwünschten 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 unerwünschte DHCP-Server verhindert werden:

22
Jason Luther

dhcpdump , der die Eingabeform tcpdump annimmt und nur DHCP-bezogene Pakete anzeigt. Hat mir geholfen, Rootkited Windows zu finden, das sich als gefälschtes DHCP in unserem LAN ausgibt.

17
vartec

Die Ansätze von Wireshark/DHCP Explorer/DHCP Probe eignen sich für eine einmalige oder regelmäßige Überprüfung. Ich würde jedoch empfehlen, die Unterstützung von DHCP Snooping in Ihrem Netzwerk zu prüfen. Diese Funktion bietet ständigen Schutz vor unerwünschten DHCP-Servern im Netzwerk und wird von vielen verschiedenen Hardwareanbietern unterstützt.

Hier ist der Funktionsumfang, wie in Cisco docs angegeben.

• Ü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.

15
Dave K

dhcploc.exe ist der schnellste und handlichste Weg auf Windows-Systemen. Es ist in den Support-Tools XP) verfügbar. Die Support-Tools befinden sich auf jedem OEM/Einzelhandel XP-Datenträger, können sich jedoch auf "Wiederherstellungsdatenträgern" befinden oder nicht). von einigen OEMs bereitgestellt. Sie können sie auch herunterladen von MS.

Es ist ein einfaches Kommandozeilen-Tool. Sie führen dhcploc {yourIPaddress} aus und drücken dann die Taste 'd', um eine gefälschte Entdeckung durchzuführen. Wenn Sie es ohne Drücken einer Taste laufen lassen, wird jede DHCP-Anfrage angezeigt und beantwortet, die es hört. Drücken Sie zum Beenden 'q'.

10
quux

Scapy ist ein python-basiertes Paketbearbeitungswerkzeug, das für diese Sortieraufgaben geeignet ist. Es gibt ein Beispiel, wie genau dies getan werden kann hier .

9
Kyle Brandt

Um den Kommentar von l0c0b0x zur Verwendung von bootp.type == 2 als Filter. Der Filter bootp.type ist nur in Wireshark/tshark verfügbar. Es ist in tcpdump nicht verfügbar, was mich aufgrund der kontextbezogenen Position seines Kommentars zu der Annahme veranlasst hat.

Tshark funktioniert perfekt dafür.

Wir haben unser Netzwerk in zahlreiche Broadcast-Domänen unterteilt, von denen jede über eine eigene Linux-basierte Sonde 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-Verkehr oder (was auch immer) in den weiter entfernten Ecken des Netzwerks suchen.

Hier finden Sie DHCP-Antworten unter Linux:

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

sobald Sie festgestellt haben, dass es im Netzwerk einen betrügerischen DHCP-Server gibt, habe ich festgestellt, dass der schnellste Weg, dies zu beheben, ...

Senden Sie eine E-Mail an das gesamte Unternehmen und sagen Sie:

"Wer von Ihnen einen WLAN-Router in das LAN aufgenommen hat, hat das Internet für alle anderen zerstört."

erwarten Sie eine verlegene Reaktion, oder das widersprüchliche Gerät verschwindet schnell :)

6
Shh now
3
juFo

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-dhcpclient die IP-Adresse des DHCP-Servers mit (andernfalls können Sie den Datenverkehr abhören, um zu sehen, woher die DHCP-Antwort stammt).

3
Vinko Vrsalovic

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/erneuern oder ähnliches auf einem Client auszuführen. Wenn Sie eine IP-Adresse erhalten, haben Sie etwas Rougue auf Ihrem Netzwerk.

Eine andere Möglichkeit wäre, Wireshark Packet Capturer/Analyzer zu verwenden, um Ihren Netzwerkverkehr zu überprüfen und DHCP-Verbindungen zu finden. Es gibt ein Laborarbeitsblatt darüber, wie dies von hier verfügbar ist.

Es gibt auch eine Reihe von Dienstprogrammen, deren Proportion DHCP Explorer ist. Eine andere ist die DHCP-Sonde, die Sie in Ihrem ursprünglichen Beitrag erwähnt haben.

3
Jona

Sie können einen Ping-Sweep Ihrer Netzwerke durchführen und diesen dann mit der Anzahl der von Ihrem DHCP-Server ausgegebenen DHCP-Leases vergleichen.

Sie müssen eine allgemeine Vorstellung von der Anzahl der statischen Geräte (möglicherweise Router-Schnittstellen und Drucker) haben, die diese Anzahl geringfügig verzerren. Dies sollte jedoch eine schnelle und genaue Methode sein, um sie über mehrere Netzwerke hinweg zu identifizieren.

2
Peter

auf debian/ubuntu hat man auch die möglichkeiten dhcpdump und/oder tcpdump mit hilfe von z. dhclient

Verwenden Sie dhcpdump:

  • 1.a) starte dhcpdump -i eth0 in einer Shell/Shell (eth0 oder der Name Ihrer Schnittstelle)
  • 1.b) starte dhclient in einer anderen Shell (sie muss nicht erfolgreich ausgeführt werden)
  • 1.c) Schauen Sie in die Ausgabe von dhcpdump, um Informationen zu erhalten (es sollte eine schön formatierte, informative Liste mit den meisten Details sein).

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

  • 2.a) starte tcpdump -i eth0 -t -n > /tmp/my_file.txt in einer Shell/einem Fenster
    (Optional: -t = Zeitstempel deaktivieren // -n = Namensauflösung deaktivieren, nur IP-Adresse, keine Servernamen (für RHEL/Centos -nn verwenden))
  • 2.b) starte dhclient in einer anderen Shell (sie muss nicht erfolgreich ausgeführt werden)
  • 2.c) Stoppen Sie 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" -

* Nebenbemerkung: tcpdump und dhcpdump müssen wahrscheinlich installiert sein (z. B.: Sudo apt get install tcpdump dhcpdump); dhcpdump hängt von tcpdump ab

2
eli

Ich schlage vor, zwei Terminals zu starten, eines zur Überwachung und eines zum Senden einer Anfrage. Terminal1 zeigt Antworten von allen vorhandenen DHCP-Servern 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, -v oder -vv für die vollständige Protokolldecodierung verwenden, die auf enp2s0 abhört, Verbindungstyp EN10MB (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 Ergebnisse des Skripts vor dem Scan: | Broadcast-DHCP-Discover : | Antwort 1 von 1: | IP angeboten: 192.168.1.228 | DHCP-Nachrichtentyp: DHCPOFFER | Lease-Zeit für IP-Adressen: 2h00m00s | Server-ID: 192.168.1.1 | Subnetzmaske: 255.255.255.0 | Router: 192.168.1.1 | _ Domain Nameserver: 8.8.8.8, 8.8.4.4 WARNUNG: Es wurden keine Ziele angegeben, daher wurden 0 Hosts gescannt. Nmap erledigt: 0 IP-Adressen (0 Hosts aktiv) in 0,94 Sekunden gescannt

Dieses Überwachungsterminal wird nur benötigt, um alle Antworten anzuzeigen (nmap kann nur die erste Antwort anzeigen).

1
ajaaskel