
Un outil de forensique de paquets réseau pour SSH

packetStrider pour SSH est un outil de forensic réseau qui vise à fournir des informations précieuses sur la nature du trafic SSH, éclairant les recoins du trafic réseau SSH où des pépites d’or d’informations reposaient auparavant dans l’obscurité.
SSH est évidemment chiffré, mais des informations contextuelles précieuses existent toujours dans le trafic réseau qui peuvent contribuer aux TTP, à l’intention, au succès et à l’ampleur des actions sur les objectifs. Il peut même exister des situations où un contexte précieux n’est pas disponible ou a été supprimé des hôtes, et donc disposer d’une capture réseau passive immuable et inaltérable donne un contexte forensique supplémentaire. "Les paquets ne mentent pas".
Parallèlement au contexte forensique, les prédictions de packet strider pourraient également être utilisées de manière active, par exemple pour shun/RST les connexions forward si une fonctionnalité d’initiation de session SSH inverse tunnelisée est prédite à l’intérieur, avant même que l’authentification inverse ne soit proposée.
Python3 a été utilisé, et vous aurez besoin des modules suivants (YMMV sur python2)
pip3 install pandas matplotlib pyshark
Utilisation :
python3 packetStrider-ssh.py -h
Sortie :
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 is a packet forensics tool for SSH. It creates a rich
feature set from packet metadata such SSH Protocol message content, direction,
size, latency and sequencing. It performs pattern matching on these features,
using statistical analysis, and sliding windows to predict session initiation,
keystrokes, human/script behavior, password length, use of client
certificates, context into the historic nature of client/server contact and
exfil/infil data movement characteristics in both Forward and Reverse sessions
optional arguments:
-h, --help show this help message and exit
-f FILE, --file FILE pcap file to analyze
-n NSTREAM, --nstream NSTREAM
Perform analysis only on stream n
-m, --metaonly Display stream metadata only
-k, --keystrokes Perform keystroke prediction
-p, --predict_plot Plot data movement and keystrokes
-z ZOOM, --zoom ZOOM Narrow down/zoom the analysis and plotting to only
packets "x-y"
-d DIRECTION, --direction DIRECTION
Perform analysis on SSH direction : "forward",
"reverse" OR "both"
-o OUTPUT_DIR, --output_dir OUTPUT_DIR
Directory to output plots
-w WINDOW, --window WINDOW
Sliding window size, # of packets to side of window
center packet, default is 2
-s STRIDE, --stride STRIDE
Stride between sliding windows, default is 1
Le pcap "forward_reverse.pcap" provient d’une TTP courante de shell SSH inverse, un favori des équipes rouges partout. Plus précisément, les commandes suivantes ont été utilisées, pour mettre en évidence les capacités de packet strider de manière simple :
ssh [email protected] -R 31337:localhost:22 qui lie le port local 31337 prêt pour la connexion SSH inverse vers le PC victime. Cette connexion peut être réalisée de nombreuses manières, y compris manuellement, par une RCE, SSRF, ou une forme de persistance. Pour les besoins de cette démo, il s’agit d’une session forward manuelle standard.ls est tapé dans la session forward, dans cette séquence : 'l' 'w' 'w' 'back-space' 'back-space' 's' puis entrée. La taille totale des données transmises sur le réseau (comme sortie de ls) est classée comme infiltration, étant donné qu’elle est entrante.