Ping als IP-Scanner ermöglicht Netzwerk Admins das Auffinden von Geräten und deren IP-Adressen die in einem Netzwerksegment online sind.
Ping hilft Geräte im Netzwerk zu finden und zu erkennen, auch ist es möglich Ping als einfachen IP-Scanner einzusetzen, etwa für das suchen im Netzwerk. Je nach Zweck und Aufgabe eignen sich auch kostenlose Tools die es in reichlicher Auswahl im Internet zu finden gibt. Ist jedoch kein Tool zur Hand, weil man etwa am Arbeitsplatz eines Benutzers ist. Wo es die Richtlinien untersagen, nicht freigegebene Tools auf dem Computer zu installieren. Dann gibt es die Möglichkeit das Netzwerksegment mit Windows Bordmittel zu scannen.
Hier hilft uns die Ausführung von Ping in einem For-Loop. Folgendes Beispiel sendet aus der Eingabeaufforderung in einem Einzeiler einen Ping an alle Adressen eines Subnets, um die Hosts die gerade online sind zu finden.
for /l %i in (1,1,255) do @ping 192.168.20.%i -w 1 -n 1 | find /i "ttl="
Die For-Schleife mit Schrittzähler 1 beginnend bei 1 und endet bei 255, hierdurch Ping für ein Class C Netz mit 255 hosts (CIDR /24) ausgeführt wird. Class C sind die am häufigsten verwendeten Netzwerksegmente. Wird beispielsweise die Netzmaske 255.255.255.128 (25) verwendet, wird anstelle von 255 die Zahl 128 eingesetzt.
Option -w 1 ist das Zeitlimit von 1 Millisekunden für die Antworten. Option -n 1 ist die Anzahl der zu sendenden Echoanforderungen. Option find /i "ttl=" zeigt nur die ICMP-Antworten.
C:\> for /l %i in (1,1,255) do @ping 192.168.20.%i -w 1 -n 1 | find /i "ttl="
Antwort von 192.168.20.1: Bytes=32 Zeit=2ms TTL=255
Antwort von 192.168.20.10: Bytes=32 Zeit=301ms TTL=64
Antwort von 192.168.20.70: Bytes=32 Zeit=295ms TTL=64
Antwort von 192.168.20.80: Bytes=32 Zeit<1ms TTL=128
Antwort von 192.168.20.112: Bytes=32 Zeit=1ms TTL=255
Auf diese Weise lassen sich mit Ping als IP-Scanner aktive IP-Adressen im Netzwerk finden. Es soll hier lediglich aufgezeigt werden, dass sich Ping in einem „For loop“ auf einfache Weise anwenden lässt. Bei höheren Anforderungen sind geeignete Tools hier besser geeignet.
Ping Funktionsweise
Ping sendet ein ICMP(v6)-„Echo-Request“-Paket (ping, ICMP-Pakettyp 8 (0x08), ICMPv6-Pakettyp 128 (0x80)) an die Zieladresse des zu überprüfenden Hosts. Der Empfänger muss, sofern er das Protokoll unterstützt, laut Protokollspezifikation eine Antwort zurücksenden: ICMP „Echo-Reply“ (pong, ICMP-Pakettyp 0 (0x00), ICMPv6-Pakettyp 129 (0x81)). Ist der Zielrechner nicht erreichbar, antwortet der zuständige Router: „Network unreachable“ (Netzwerk nicht erreichbar) oder „Host unreachable“ (Gegenstelle nicht erreichbar).
Aus einer fehlenden Antwort kann nicht geschlossen werden, dass die Gegenstelle nicht erreichbar wäre, da manche Hosts so konfiguriert sind, dass sie ICMP-Pakete ignorieren und verwerfen.
Wird dem Ping-Kommando ein Hostname in FQDN-Schreibweise anstatt einer IP-Adresse übergeben, lässt das Programm diesen durch das Betriebssystem auflösen. Bei fehlerhaften Konfigurationen (hosts-Datei, lmhosts-Datei, WINS, DNS) schlägt diese nach Ablauf einer Wartezeit (Timeout) fehl und resultiert in einer Fehlermeldung. Falls eine IP-Adresse angegeben wurde, tritt in dieser Situation ein ähnliches Problem auf, da zunächst das Scheitern der Rückwärtsauflösung zur Bestimmung des zur IP-Adresse gehörigen FQDN abgewartet werden muss. Je nach Implementation von ping lässt sich das Reverse-Lookup mit einer Option abschalten oder ist standardmäßig deaktiviert.
TcpDump ist ein Tool um Netzwerkprobleme zu beheben, wie tcpdump ist WinDump für Windows. Es ist ein freies Programm für die Befehlszeile, zur Auswertung und Überwachung von Netzwerkverkehr. Es hilft bei der Analyse und als Unterstützung für die Fehlerbehebung sowie als Sicherheitstool.
TcpDump ist ein leistungsstarkes und vielseitiges Werkzeug, das viele Optionen und Filter enthält und in einer Vielzahl von Fällen ihre Anwendung findet. Als Befehlszeilentool eignet sich die Anwendung auf Server oder Geräte die ohne Grafische Benutzeroberfläche (GUI) auskommen. Die Netzwerk Pakete können aufgezeichnet werden, um sie später analysieren zu können.
Netzwerkprobleme mit WinDump in Windows beheben, wie mit tcpdump
TcpDump ist als BSD-Lizenz verfügbar und ist bei den meisten unixoiden Betriebssysteme wie FreeBSD und Linux bereits im Grundsystem vorinstalliert. Für Windows gibt es anstelle von TcpDump die Portierung mit dem Namen WinDump die ebenfalls frei verfügbar ist.
In diesem Tutorial wird die Installation und Anwendung von WinDump unter Windows 11 gezeigt.
INSTALLATION
Als Systemvoraussetzung wird WinPcap benötigt, die als Freeware verfügbare Programmbibliothek besteht aus einem Treiber, der Zugriff auf die Netzwerkkarte ermöglicht. Die WinPcap Programmbibliothek basiert auf der von Unix/Linux her bekannten „libpcap“ Bibliothek, bei dieser die pcap-Schnittstelle implementiert wurde. Die Netzwerk Pakete werden durch die WinPcap-Module unter Umgehung des Protokollstacks abgefangen und weitergeleitet.
WinPcap installieren
Zuerst wird der Treiber WinPcap hier heruntergeladen und installiert.
Der WinPcap Setup Assistent führt mit drei Klicks durch die Installation, dabei kann man die vorgeschlagenen Einstellungen übernehmen. Nach der Installation von WinPcap muss der Rechner nicht neu gestartet werden. Die Netzwerkschnittstelle wird durch WinPcap in den Promiscuous-Modus versetzt, wodurch alle Pakete auf dieser Schnittstelle „mitgehört“ werden, und an den Netzwerkstack weitergeleitet werden, womit die Auswertung mit WinDump ermöglicht wird.
WinDump installieren
Nachdem WinPcap installiert ist, kann WinDump hier heruntergeladen werden. WinDump ist ein Kommandozeilentool dieses nicht installiert werden muss, die Datei WinDump.exe kann beispielsweise einfach unter Programme in ein neu erstellten Ordner WinDump kopiert werden, oder man kopiert WinDump.exe direkt in die SystemRoot (C:\Windows), dabei kann hierbei auf den Suchpfad Eintrag verzichtet werden.
WinDump kann nun ausgeführt werden, dazu öffnet man eine Eingabeaufforderung als Administrator, mit drücken der Taste auf der Tastatur und Klick auf Als Administrator ausführen.
Netzwerk Interface finden
Mit der Option -D zeigt WinDump eine Liste mit den auf dem System verfügbaren Netzwerkschnittstellen, auf diesen WinDump Pakete abhören kann. Windows vergibt jeder dieser Netzwerkschnittstelle eine GUID.
Welche GUID hat nun welche Netzwerkschnittstelle? bei meinem Laptop möchte ich mit WinDump die Pakete vom WLAN-Adapter erfassen.
Hier hilft das Befehlszeilentool netsh dieses die Information liefert.
Um Pakete vom LAN Ethernet Anschluss über Kabel erfassen zu können, muss der DOT3SVC-Dienst ausgeführt werden, ist der Dienst nicht gestartet, kann dieser mit folgendem Befehl gestartet werden.
net start DOT3SVC
Für WLAN muss der WLANSVC-Dienst gestartet sein.
net start WLANSVC
Somit ist die Voraussetzung geschaffen damit netsh uns die gewünschte Information liefert, mit folgendem Befehl für das LAN Ethernet Interface in der Eingabeaufforderung.
netsh lan show interfaces
Hier an meinem Laptop nutze ich die WLAN Netzwerkschnittstelle.
netsh wlan show interfaces
Der Befehl zeigt uns die GUID der WLAN Netzwerkschnittstelle.
Die GUID meines WLAN-Interface ist hier rot eingerahmt. Zur Erinnerung, mit dem Befehl WinDump -D erschient das Interface hier im Beispiel in der Zeile 4.
WinDump soll also bei meinem Laptop auf Interface 4 mithören (WinDump -D). Mit der Option -i gefolgt von \Device\NPF_{GUID}.
So weit so gut, die Pakete werden angezeigt, dann kommt jetzt der Moment wo Flags und Filter zur Anwendung kommen, damit erhöhen sich die Chancen das überhaupt ein Fehler gefunden werden kann.
TCP-Flags werden innerhalb der TCP-Paketübertragung verwendet, um im Kontext des Three-Way-Handshake einen Verbindungsstatus bekanntzugeben oder zusätzliche Informationen bereitzustellen. Sie können zur Fehlerbehebung oder zur Steuerung der Verbindung verwendet werden. Die TCP-Flags die am häufigsten verwendet werden sind SYN, ACK und FIN.
Pakete analysieren und anzeigen die eines der TCP-Flags enthalten, wie hier das TCP Flag ACK.
In folgendem Beispiel sollen nur ausgehende Verbindungen erfasst werden. Um TCP-Pakete zu erfassen, die auf unserem Rechner initiiert werden, weisen wir WinDump an, nur solche Pakete auszugeben, bei denen das SYN-Flag gesetzt ist. Wir müssen dabei aber auch Pakete ausschließen, bei denen das ACK-Flag gesetzt ist, da wir sonst auch die Antworten des externen Hosts erhalten.
Die Option -c 4 begrenzt die Ausgabe auf 4 Pakete (4 Zeilen). Die Option -v für ausführlichen Dump, -vv mehr ausführlicher Dump.
Standardmäßig löst WinDump IP-Adressen in Hostnamen auf und verwendet auch Dienstnamen anstelle von Portnummern. Wenn kein DNS verfügbar ist, oder man einfach die Portnummer haben möchte, kann die Option -n verwenden werden.
WinDump Filterausdrücke
Mit Filter wählen welche Paket-Header ausgegeben werden sollen. Wenn keine Filter angewendet werden, werden alle Paket-Header ausgegeben. Häufig verwendete Filter sind port, host, src, dst, tcp, udp, icmp.
windump -i "\Device\NPF_{B13697A3-3CD0-4D84-BA5D-179F708500D3}" -n "udp port 53 or tcp port 53"
Der Filter wird auf udp Port 53 und tcp Port 53 angewendet, damit werden nur DNS Pakete ausgegeben.
Filterausdrücke können mit den Operatoren AND, OR und NOT kombiniert werden. Auf diese Weise lassen sich Pakete genauer isolieren.
windump -i "\Device\NPF_{B13697A3-3CD0-4D84-BA5D-179F708500D3}" "src 10.10.10.11 and dst port 22"
Im nächsten Beispiel alle Pakete ausser tcp Pakete ausgeben.
Die Ausgabe von WinDump kann sehr schnell über den Bildschirm scrollen, dafür lassen sich die Paket-Header in eine Datei speichern mit der Option -w. Die Dateien werden in das pcap-Format gespeichert und haben die Erweiterung .pcap. Die so gespeicherten pcap-Dateien können zB. in Wireshark geöffnet und so später erneut dekodiert werden.
Der Befehl speichert 20 Ausgabezeilen in die Datei icmp.pcap.
Hilfe und Angaben zur Version gibt es mit ausführen von -help.
C:\>windump -help
windump version 3.9.5, based on tcpdump version 3.9.5
WinPcap version 4.1.3 (packet.dll version 4.1.0.2980), based on libpcap version 1.0 branch 1_0_rel0b (20091008)
Usage: windump [-aAdDeflLnNOpqRStuUvxX] [ -B size ] [-c count] [ -C file_size ]
[ -E algo:secret ] [ -F file ] [ -i interface ] [ -M secret ]
[ -r file ] [ -s snaplen ] [ -T type ] [ -w file ]
[ -W filecount ] [ -y datalinktype ] [ -Z user ]
[ expression ]
Fazit
Mit WinDump kann man Netzwerkprobleme mit Windows beheben, wie mit tcpdump. WinDump ist einfach einzurichten, ist man mit den verschiedenen Flags und Filter nach einigen versuche einmal vertraut, können Netzwerkprobleme schnell gelöst werden, und die Sicherheit im Netzwerk überprüft und optimiert werden.