
metamorworks - stock.adobe.com
Netzwerkstruktur kartieren mit arp-scan, lldpd und yersini
Mit den Open-Source Tools arp-scan, lldpd und yersinia können Netzwerktopologien analysiert, Hosts erkannt, Nachbarn angezeigt und Layer-2-Protokolle gezielt getestet werden.
Die Abbildung einer Netzwerkstruktur beginnt oft an Stellen, die oberhalb von Layer 2 nicht sichtbar sind. Viele Systeme reagieren nicht auf ICMP, segmentierte VLANs verbergen ihre Topologie und klassische IP-Scans erfassen nur einen Teil des Bildes.
Eine Kombination aus den Open-Source-Tools arp-scan, lldpd und yersinia ermöglicht eine präzise Erfassung und Analyse des Geflechts aus Hosts, Switches und Protokollen. Dabei bietet jedes Werkzeug eine eigene Sicht: Arp-scan arbeitet auf Layer 2, listet Hosts mit MAC-Adressen und Herstellernamen. Lldpd implementiert LLDP und liefert echte Informationen zur Topologie. Yersinia ermöglicht es, Layer-2-Protokolle aktiv zu testen oder zu manipulieren, um versteckte Strukturen sichtbar zu machen.
Host-Erkennung mit arp-scan
Das Address Resolution Protocol (ARP) erlaubt die schnelle Identifizierung von Geräten im lokalen Netz. Mit sudo apt install arp-scan steht das Tool sofort bereit, in Kali Linux ist es bereits enthalten. Ein kompletter Scan des Subnetzes 10.0.0.0/16 erfolgt mit:
sudo arp-scan 10.0.0.0/16
Die Ausgabe zeigt IP-Adresse, MAC-Adresse und den Hersteller. Damit entsteht in Sekunden ein Inventar aller aktiven Systeme.

Ergänzend erlaubt arp-fingerprint -l -v die Abfrage zusätzlicher Details wie Flags oder Betriebssystemhinweise, ebenfalls auf Layer 2. In Netzen mit blockiertem ICMP kann arping genutzt werden, etwa mit:
arping 10.0.1.245
Dieser Befehl prüft, ob das Zielgerät aktiv ist, auch wenn ein klassisches Ping keine Antwort gibt. Für parallele Analysen eignet sich netdiscover:
sudo netdiscover -r 10.0.0.0/16
Damit werden Geräte ebenfalls anhand von ARP sichtbar, ergänzt um tabellarische Übersichten mit Hersteller-IDs. Das funktioniert auch per SSH über das Netzwerk. So lassen sich auch Verbindungen über das Netzwerk von Windows aus zu Kali-Linux-Installationen mit dem Windows-Terminal aufbauen und die Befehle mit SSH nutzen.

Topologieinformationen mit lldpd
Während arp-scan Hosts und deren MAC-Adressen liefert, zeigt lldpd die Verbindungen zwischen den Geräten. Es implementiert LLDP (IEEE 802.1AB) und ist unter Linux mit sudo apt install lldpd schnell verfügbar.
Den Daemon starten:
sudo systemctl start lldpd
Optional dafür sorgen, dass er beim Booten geladen wird:
sudo systemctl enable lldpd
Der Daemon wird als Hintergrunddienst gestartet und sammelt Informationen über Nachbarn. Mit lldpcli show neighbors lässt sich die direkte Topologie pro Interface auslesen.
Die Ausgabe enthält Port-Beschreibungen, VLAN-IDs, Systemnamen und Management-IP-Adressen. Um die Informationen maschinenlesbar weiterzuverarbeiten, kann XML genutzt werden:
lldpcli -f xml show neighbors
Damit lassen sich Skripte erstellen, die automatisch eine Netzwerkübersicht erzeugen. Auch Protokolle wie CDP (Cisco Discovery Protocol) oder EDP (Extreme Discovery Protocol), die Nachbargeräte senden, werden integriert. Geräte, die etwa CDP-Frames senden, erscheinen ebenfalls in der Nachbarschaftsliste. So lässt sich schnell nachvollziehen, welche Endgeräte an welchen Switch-Ports angeschlossen sind und wie die Ports miteinander verbunden sind.
Layer-2-Protokolltests mit yersinia
Die reine Topologiekartierung erfasst noch nicht, wie robust ein Netz gegen Manipulationen auf Layer 2 ist. Hier setzt yersinia an. Nach der Installation mit sudo apt install yersinia stehen verschiedene Modi zur Verfügung.
Mit yersinia -G wird das Programm in einer grafischen Oberfläche gestartet, die auf GTK basiert. Hier erscheinen die unterstützten Protokolle wie DHCP, STP oder CDP in einem Menü, und man kann über Klicks einzelne Funktionen oder Angriffe auswählen. Diese Oberfläche eignet sich vor allem in Testumgebungen, wenn man einen schnellen Überblick über verfügbare Aktionen haben möchte.
Der Aufruf yersinia -I öffnet hingegen eine textbasierte Oberfläche im Terminal, die auf ncurses basiert.
Diese Variante läuft komplett ohne grafische Umgebung, ist also auch auf Servern oder in SSH-Sitzungen nutzbar. Man bewegt sich mit den Pfeiltasten durch Menüs, wählt Protokolle aus und startet Angriffe oder Tests. Funktional bietet der Nncurses-Modus dasselbe wie die GTK-Oberfläche, ist aber ressourcenschonender und flexibler, wenn keine Desktop-Umgebung zur Verfügung steht.
Ein praxisnahes Beispiel ist ein DHCP-Starvation-Test. In der GUI wählt man das Protokoll DHCP und startet den Test. Alternativ lässt sich dies direkt auf der Kommandozeile durchführen:
yersinia dhcp -attack 1
Dadurch sendet yersinia massenhaft DHCP-Anfragen, bis der Server keine freien IP-Adressen mehr hat. In einer Testumgebung zeigt sich sofort, wie schnell ein DHCP-Dienst erschöpft ist. Ähnlich lässt sich STP beeinflussen, indem mit
yersinia stp -attack 2
eigene Bridge-IDs in den Verkehr eingespeist werden, was zu einer Neuverhandlung der Spanning-Tree-Topologie führen kann. Solche Tests zeigen, wie anfällig die Netzwerkstruktur für Angriffe ist, die über Standard-Tools wie arp-scan oder lldpd nicht sichtbar würden.
Hinweis: Yersinia darf ausschließlich in kontrollierten Testnetzen eingesetzt werden und erfordert die ausdrückliche Zustimmung der Verantwortlichen. Scans und Protokolltests können Dienste stören und sind in Produktivumgebungen zu vermeiden.
Zusammenspiel der Tools in der Praxis
Ein vollständiger Workflow beginnt mit einem Scan des Subnetzes durch arp-scan. Dabei wird die Ausgabe so gefiltert, dass nur die IP-Adressen in einer Textdatei landen. Der Ablauf lässt sich wie folgt darstellen:
sudo arp-scan 10.0.0.0/16 | awk '{print $1}' | grep -Eo '([0-9]{1,3}\.){3}[0-9]{1,3}' > hosts.txt
Der Befehl ruft arp-scan für das gesamte Subnetz 10.0.0.0/16 auf, extrahiert aus der Ausgabe die erste Spalte mit den IP-Adressen und filtert gültige Adressen heraus. Diese werden in hosts.txt gespeichert, wobei jede Adresse in einer eigenen Zeile steht. Mit einem anschließenden Aufruf von
sudo nmap -sS -iL hosts.txt
kann die erzeugte Liste direkt weiterverarbeitet werden. Auf diese Weise entsteht aus der Kombination von arp-scan und Nmap eine Abfolge von Arbeitsschritten, die zunächst alle aktiven Geräte sichtbar macht und anschließend deren Dienste ermittelt.
Mit arp-scan werden zunächst alle aktiven Geräte im Subnetz ermittelt und deren IP-Adressen in einer Datei wie hosts.txt ablegt. Danach setzt Nmap genau hier an. Mit der Option -sS wird ein SYN-Scan durchgeführt, bei dem nur der erste Teil eines TCP-Handshakes versendet wird. Auf diese Weise lässt sich schnell und ressourcenschonend feststellen, welche Ports auf den zuvor identifizierten Hosts erreichbar sind, ohne dass vollständige Verbindungen aufgebaut werden. Die Option -iL hosts.txt gibt an, dass Nmap die zu prüfenden Zielsysteme aus dieser Datei bezieht. Damit entsteht ein praxisnaher Workflow: Zunächst werden mit arp-scan alle Geräte sichtbar gemacht, anschließend liest Nmap diese Liste ein und liefert eine Portübersicht, die sich wiederum mit den Topologieinformationen aus lldpd und den Protokolltests mit yersinia abgleichen lässt.
Parallel läuft lldpd und liefert mit lldpcli show neighbors die Topologieinformationen, aus denen sich ablesen lässt, welcher Host an welchem Switch-Port hängt. Um mögliche Schwachstellen auf Protokollebene zu prüfen, werden mit yersinia gezielt Tests gefahren, beispielsweise gegen DHCP oder STP, um zu sehen, wie sich die Netzwerkstruktur unter Stress verändert.

Abbildung 3 zeigt die Ausgabe des Befehls lldpcli show neighbors, mit dem die vom LLDP-Daemon erkannten Nachbargeräte dargestellt werden. Aufgeführt ist hier zunächst ein Switch vom Typ HPE OfficeConnect 1920S, der über die Schnittstelle eth0 erreicht wird. Neben der eindeutigen Chassis-ID in Form einer MAC-Adresse werden auch die Gerätebeschreibung mit Modell- und Firmware-Informationen sowie die Management-IP-Adresse 10.0.6.253 angezeigt. Die Einträge Capability: Bridge, on und Capability: Router, off geben an, dass es sich um ein Switch-System handelt, das keine Routingfunktionen aktiviert hat. Unterhalb der Chassis-Informationen stehen die Portdaten, darunter die Port-ID mit MAC-Adresse und die Portbeschreibung, hier als Port 1 gekennzeichnet.
Als zweiter Nachbar wird eine AVM FRITZ!Box aufgeführt, ebenfalls über die Schnittstelle eth0. Auch hier sind Chassis-ID, Systemname und Systembeschreibung sichtbar, ergänzt durch die Management-IP-Adresse 192.168.178.11. Im Unterschied zum Switch weist dieses Gerät mehrere aktive Fähigkeiten aus, nämlich Bridge, Router und WLAN. Die Portbeschreibung gibt an, dass die Verbindung über den Anschluss LAN:2 erfolgt. Damit vermittelt die Abbildung ein anschauliches Bild der direkten Netzwerkumgebung: Ein Switch und ein Router sind als Nachbarn sichtbar, mit eindeutigen MAC-Adressen, Portzuordnungen und Managementinformationen, die für die Kartierung einer Netzwerkstruktur genutzt werden können.
Ein mögliches Anwendungsszenario besteht darin, zunächst mit arp-scan alle aktiven Systeme im Subnetz 10.0.0.0/16 zu erfassen und daraus eine Übersicht der erreichbaren Hosts zu gewinnen. Anschließend liefert lldpd über den Befehl lldpcli show neighbors eine Topologieabbildung, aus der erkennbar wird, welche Endgeräte über denselben Access-Switch verbunden sind und welche Rollen die einzelnen Nachbarn im Netz einnehmen.
Ergänzend kann yersinia eingesetzt werden, um einen gezielten STP-Angriff zu simulieren und währenddessen mit lldpcli erneut die Nachbarlisten auszuwerten. Auf diese Weise lässt sich beobachten, ob die Spanning-Tree-Topologie unverändert stabil bleibt oder ob sich infolge der Manipulation Anpassungen zeigen. Die so gewonnenen Informationen ermöglichen nicht nur eine detailreiche Kartierung der vorhandenen Netzwerkstruktur, sondern geben auch Aufschluss über die Belastbarkeit des Netzes gegenüber Angriffen auf Ebene der Layer-2-Protokolle.
Fazit
Mit arp-scan, lldpd und yersinia steht ein Werkzeugset zur Verfügung, das eine Netzwerkstruktur nicht nur sichtbar, sondern auch testbar macht. Die Erkennung von Hosts über ARP, die Topologieinformationen aus LLDP sowie die Möglichkeit, Protokolle aktiv zu prüfen, ermöglichen eine umfassende Analyse des Aufbaus und der Stabilität eines Netzwerks.