Alle Beiträge von Don Matteo

lebt in der Schweiz, ist System Engineer MCP bei A-Enterprise GmbH. Mitglied des UNBLOG Network. Author und Blogger zu den Themen, Linux und Open Source. Tutorials für Windows, VMware, Synology, Fortinet.

Netzwerkprobleme beheben mit tcpdump in Windows

TcpDump ist ein freies Befehlszeilendienstprogramm zur Netzwerkverkehr Überwachung und um Auswertungen vorzunehmen. Es dient häufig bei der Analyse von Netzwerkprobleme und als Unterstützung zur 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. Da es sich um ein Befehlszeilentool handelt, ist es ideal, um es auf virtuellen Servern oder Geräten auszuführen, die ohne Grafische Benutzeroberfläche (GUI) betrieben werden, oder auch um Daten zu sammeln, die später analysiert werden können.

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.

WinPcap Installation

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 Windows Taste auf der Tastatur und Klick auf Als Administrator ausführen.

Eingabeaufforderung als Administrator ausfuehren

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.

WinDump -D Netzwerkschnittstellen anzeigen

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.

  Möchte man vom LAN Ethernet Anschluss mit Kabel Pakete erfassen, muss der DOT3SVC-Dienst ausgeführt werden, ist dieser nicht gestartet, kann man folgenden Befehl ausführen.

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 in der Eingabeaufforderung.

  Für den LAN Ethernet Anschluss den Befehl netsh lan verwenden.

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.

netsh wlan show interfaces

Die GUID meines WLAN-Adapters ist hier rot eingerahmt. Zur Erinnerung, mit dem Befehl WinDump -D erschient der Adapter hier zum Beispiel in der Zeile 4.

WinDump -D Netzwerkschnittstellen 4

WinDump soll also bei meinem Laptop auf Interface 4 mithören (WinDump -D). Mit der Option -i gefolgt von \Device\NPF_{GUID}.

WinDump in der Eingabeaufforderung ausführen
WinDump.exe -i "\Device\NPF_{B13697A3-3CD0-4D84-BA5D-179F708500D3}"

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

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.

windump -i "\Device\NPF_{B13697A3-3CD0-4D84-BA5D-179F708500D3}" "tcp[13] & 16 != 0"

Ein TCP-Flag entspricht einer Größe von 1 Bit. Die folgende Liste beschreibt jedes Flag ausführlicher.

SYN = "tcp[13] & 2 != 0"
FIN = "tcp[13] & 1 != 0"
URG = "tcp[13] & 32 != 0"
PSH = "tcp[13] & 8 != 0"
RST = "tcp[13] & 4 != 0"

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.

windump -i "\Device\NPF_{B13697A3-3CD0-4D84-BA5D-179F708500D3}" "tcp[tcpflags] & (tcp-syn) != 0" and "tcp[tcpflags] & (tcp-ack) == 0"

Die Standardausgabe von WinDump verwendet Unix-Zeitstempel. Mit der Option-tttt erscheinen die Pakete mit einem vom Menschen lesbaren Zeitstempel.

windump -i "\Device\NPF_{B13697A3-3CD0-4D84-BA5D-179F708500D3}" -tttt -c 4 -vv

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.

windump -i "\Device\NPF_{B13697A3-3CD0-4D84-BA5D-179F708500D3}" "not tcp"

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.

windump -i "\Device\NPF_{B13697A3-3CD0-4D84-BA5D-179F708500D3}" -n -c 20 -w dump.pcap

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

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.

Registry Jump öffnet Regedit zu einem bestimmten Pfad

Registry-Editor (regedit.exe) ist das bekanntermassen nicht besonders komfortabele Tool an diesem Microsoft kaum Veränderungen vorgenommen hat, der mittlerweile altbacken anmutende Windows Registrierungseditor ist in die Jahre gekommen und scheint nicht mehr wirklich zeitgemäss zu sein.

Neben der Suchfunktion bietet der Registrierungseditor keine direkte Möglichkeit zu einem bestimmten Schlüssel zu springen, was insbesondere dann ärgerlich ist, wenn man sich zu einem besonders langen Registry Key durchhangeln muss.

Jedoch gut ist, dass es auch dafür ein Tool gibt, Microsoft bietet aus der Sysinternals Sammlung ein kostenloses Tool mit dem Namen RegJump, dieses hier heruntergeladen werden kann.

Das kleine Befehlszeilen-Applet nimmt einen Registrierungspfad und öffnet Regedit für diesen Pfad. Es akzeptiert Root Keys in der Standard Form wie zB. HKEY_LOCAL_MACHINE und in Kurzform mit HKLM.

Regjump v1.1
Copyright (C) 2013-2015 Mark Russinovich
Sysinternals - www.sysinternals.com

usage: regjump <<path>|-c>
  -c    Copy path from clipboard.
e.g.: regjump HKLM\Software\Microsoft\Windows

Besonders hilfreich ist dabei die Übergabe eines Schlüsselpfad aus der Zwischenablage mit der Option -c (Copy path from clipboard).

RegJump Schlüsselpfad uebergabe aus der Zwischenlage