Menu Close

Windows Paketmitschnitt – PktMon.exe

Heute standen wir vor der Herausforderung, einen Paketmitschnitt für die Kommunikation eines Windows Domain Controllers durchzuführen. Leider hatten wir keine Berechtigung, Änderungen auf Netzwerkebene an der Firewall oder dem Switch für einen Mitschnitt vorzunehmen, und auch die Installation von Wireshark war uns nicht möglich. Daher haben wir auf PktMon zurückgegriffen.

Packet Monitor (Pktmon) ist ein komponentenübergreifendes Netzwerkdiagnosetool für Windows. Es kann zum Erfassen von Paketen, zur Erkennung von Paketausfällen, zum Filtern und Zählen von Paketen verwendet werden. Das Tool ist vor allem in Virtualisierungsszenarien wie Container-Netzwerken und SDN hilfreich, da es einen Einblick in den Netzwerkstapel bietet. Es ist über den Befehl pktmon.exe und über Windows Admin Center-Erweiterungen verfügbar.

In unserem Fall trat ein Problem mit dem RADIUS-Protokoll auf, weshalb wir die gesamte Nutzlast der IP-Pakete benötigten. Daher haben wir das Größenlimit von 128 Byte auf 0 gesetzt. Exemplarisch werden wir hier den Paketmitschnitt für einen der Google-DNS-Server mit der IP-Adresse 8.8.8.8 und DNS als Protokoll auf UDP-Port 53 durchführen.

Befehle

Wir öffnen die Eingabeaufforderung mit Administratorrechten und führen anschließend die erforderlichen Befehle aus.

Filter anzeigen

Der folgende filter list-Befehl listet alle aktivierten Filter auf. Beispiele hierzu finden sich weiter unten. Beim ersten Start sollten keine Filter aktiviert sein.

pktmon filter list

Paketfilter:
    Keine

Filter löschen

Um alle aktivierten Filter zu löschen, führen wir den filter remove-Befehl aus.

pktmon filter remove

Filter hinzufügen

Im nächsten Schritt setzen wir wieder die für unseren Paketmitschnitt notwendigen Filter über den filter add-Befehl.

pktmon filter add -I 8.8.8.8/32 -p 53

Es macht hierbei einen Unterschied, ob wir alle Parameter in einem Befehl absetzen oder diese nacheinander hinzufügen. Dies kann je nach Fall unterschiedliche Resultate haben und falsch angewendet die Mitschnitte zu weit beschränken oder zu weit vergrößern.

pktmon filter add -I 8.8.8.8/32
pktmon filter add -p 53

Der erste Befehl liefert diesen Filter. IP-Adresse und Port gelten als gemeinsames Kriterium. Nur Anfragen mit der Quelle-IP 8.8.8.8 und DNS als Service oder der Ziel-IP 8.8.8.8 und DNS als Service werden protokolliert.

C:\Windows\System32>pktmon filter list
Paketfilter:
# Name IP-Adresse Port
- ---- ---------- ----
1      8.8.8.8/32 53

Der zweite Befehl liefert diese Filter. IP-Adresse und Port stehen in keinem Zusammenhang. Alle Anfragen an 8.8.8.8/32 sowie alle DNS-Anfragen werden im Mitschnitt inkludiert.

C:\Windows\System32>pktmon filter list
Paketfilter:
# Name IP-Adresse Port
- ---- ---------- ----
1      8.8.8.8/32
2                 53

Paketmitschnitt starten

Nachdem nun alle Filter wie gewünscht gesetzt sind, starten wir den Paketmitschnitt. Die Hilfe-Funktion für weitere Parameter lässt sich übrigens mit start help aufrufen.

Wir ergänzen hier eine Paketgröße von 0, also unbeschränkt, damit nicht nur die Header sondern auch die Nutzlast der Anwendungsebene mitgeschnitten wird. Am Ende erhalten wir auch nochmal eine Auflistung der Parameter, wie auch den Pfad für die Log-Datei PktMon.etl.

pktmon start -c --pkt-size 0

Logger-Parameter:
    Logger-Name:                 PktMon
    Protokollierungsmodus:       Circular
    Protokolldatei:              C:\Windows\System32\PktMon.etl
    Max. Dateigröße:             512 MB
    Verwendeter Arbeitsspeicher: 384 MB

Erfasste Daten:
    Paketzähler, Paketerfassung

Aufzeichnungstyp:
    Alle Pakete

Überwachte Komponenten:
    Alle

Paketmitschnitt stoppen

pktmon stop

Ausgabe in Wireshark-Format konvertieren

Damit wir das Protokoll in Wireshark importieren können, müssen wir es in das PCAP-Format konvertieren.

pktmon etl2pcap C:\WINDOWS\system32\PktMon.etl -o C:\log.pcapng

Resultat

Für den Test habe ich ein nslookup auf google.de gegen die Google-DNS-Server 8.8.8.8 durchgeführt. In Wireshark importiert sehen wir die Pakete wie erwartet.

Wireshark-Darstellung der Protokolldatei
Wireshark-Darstellung der Protokolldatei

Quellen

Schreiben Sie einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahren Sie mehr darüber, wie Ihre Kommentardaten verarbeitet werden .

Index