
Ein Netzwerkpaket-Forensik-Tool für SSH

packetStrider für SSH ist ein Paketforensik-Tool, das wertvolle Einblicke in die Natur von SSH-Verkehr bieten soll. Es beleuchtet die Ecken des SSH-Netzwerkverkehrs, in denen zuvor goldene Informationsnuggets im Dunkeln lagen.
SSH ist selbstverständlich verschlüsselt, dennoch existieren wertvolle kontextuelle Informationen im Netzwerkverkehr, die zu TTPs, Absicht, Erfolg und Ausmaß von Aktionen auf Zielsystemen beitragen können. Es kann sogar Situationen geben, in denen wertvoller Kontext auf Hosts nicht verfügbar oder gelöscht ist, sodass ein unveränderlicher und nicht veränderbarer passiver Netzwerkmitschnitt zusätzlichen forensischen Kontext liefert. „Pakete lügen nicht."
Unabhängig vom forensischen Kontext könnten Packet-Strider-Vorhersagen auch aktiv genutzt werden, z. B. um eingehende Verbindungen zu unterbinden/RST zu senden, wenn eine getunnelte Reverse-SSH-Sitzungseinleitung vorhergesagt wird – bereits bevor die Reverse-Authentifizierung angeboten wird.
Python3 wurde verwendet, und Sie benötigen die folgenden Module (YMMV bei Python2):
pip3 install pandas matplotlib pyshark
Verwendung:
python3 packetStrider-ssh.py -h
Ausgabe:
usage: packetStrider-ssh.py [-h] [-f FILE] [-n NSTREAM] [-m] [-k] [-p]
[-z ZOOM] [-d DIRECTION] [-o OUTPUT_DIR]
[-w WINDOW] [-s STRIDE]
packetStrider-ssh ist ein Paketforensik-Tool für SSH. Es erstellt einen
umfangreichen Merkmalssatz aus Paketmetadaten wie SSH-Protokollnachrichteninhalt,
Richtung, Größe, Latenz und Sequenzierung. Es führt Mustervergleiche auf
diesen Merkmalen durch, unter Verwendung statistischer Analyse und gleitender
Fenster, um Sitzungseinleitung, Tastenanschläge, menschliches/Skript-Verhalten,
Passwortlänge, Verwendung von Client-Zertifikaten, Kontext zur historischen
Natur des Client/Server-Kontakts und Exfiltrations-/Infiltration-
Datenbewegungscharakteristiken in sowohl Weiterleitungs- als auch Reverse-
Sitzungen vorherzusagen.
optionale Argumente:
-h, --help zeigt diese Hilfemeldung an und beendet das Programm
-f FILE, --file FILE Zu analysierende PCAP-Datei
-n NSTREAM, --nstream NSTREAM
Nur Analyse auf Stream n durchführen
-m, --metaonly Nur Stream-Metadaten anzeigen
-k, --keystrokes Tastenanschlag-Vorhersage durchführen
-p, --predict_plot Datenbewegung und Tastenanschläge plotten
-z ZOOM, --zoom ZOOM Analyse und Plotten auf Pakete "x-y" eingrenzen/zoomen
-d DIRECTION, --direction DIRECTION
Analyse auf SSH-Richtung durchführen: "forward",
"reverse" ODER "both"
-o OUTPUT_DIR, --output_dir OUTPUT_DIR
Verzeichnis zum Ausgeben der Plots
-w WINDOW, --window WINDOW
Größe des gleitenden Fensters, # Pakete auf jeder Seite des Fenster-Mittenpakets, Standard ist 2
-s STRIDE, --stride STRIDE
Schrittweite zwischen gleitenden Fenstern, Standard ist 1
Das PCAP "forward_reverse.pcap" stammt von einer gängigen TTP einer Reverse-SSH-Shell, einem Liebling aller Red Teams. Insbesondere wurden die folgenden Befehle verwendet, um die Fähigkeiten von Packet Strider auf einfache Weise hervorzuheben:
ssh [email protected] -R 31337:localhost:22, der den lokalen Port 31337 für die spätere Reverse-SSH-Verbindung zurück zum Opfer-PC bindet. Diese Verbindung kann auf viele Arten hergestellt werden, einschließlich manuell, durch einen RCE, SSRF oder eine Form von Persistenz. Für die Zwecke dieser Demo handelt es sich um eine manuelle Standard-Weiterleitungssitzung.ls wird in der Weiterleitungssitzung eingegeben, und zwar in dieser Reihenfolge: 'l' 'w' 'w' 'Rücktaste' 'Rücktaste' 's' und dann Eingabe. Die Gesamtgröße der über das Kabel übertragenen Daten (als Ausgabe von ls) wird als Infiltration klassifiziert, da sie eingehend ist.