
Uno strumento di analisi forense dei pacchetti di rete per SSH

packetStrider per SSH è uno strumento di analisi forense di pacchetti che mira a fornire preziose informazioni sulla natura del traffico SSH, illuminando gli angoli del traffico di rete SSH dove prima giacevano pepite d'oro di informazione nell'oscurità.
SSH è ovviamente crittografato, ma informazioni contestuali preziose esistono ancora nel traffico di rete che possono contribuire a TTP, intenzione, successo e entità delle azioni sugli obiettivi. Potrebbero anche esistere situazioni in cui il contesto prezioso non è disponibile o viene eliminato dagli host, e quindi avere una cattura di rete passiva immutabile e non alterabile fornisce un contesto forense aggiuntivo. "I pacchetti non mentono".
Separatamente dal contesto forense, le previsioni di packet strider potrebbero anche essere utilizzate in modo attivo, ad esempio per shun/RST connessioni in avanti se viene prevista una caratteristica di avvio di sessione SSH inversa tunnelata, anche prima che venga offerta l'autenticazione inversa.
È stato utilizzato Python3, e avrai bisogno dei seguenti moduli (YMMV su python2)
pip3 install pandas matplotlib pyshark
Utilizzo:
python3 packetStrider-ssh.py -h
Output:
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
Il pcap "forward_reverse.pcap" proviene da un comune TTP di una shell SSH inversa, un favorito di tutti i red team. Nello specifico, sono stati utilizzati i seguenti comandi per evidenziare le capacità di packet strider in modo semplice:
ssh [email protected] -R 31337:localhost:22 che lega la porta locale 31337 pronta per la connessione SSH inversa di ritorno al PC vittima. Questa connessione può essere effettuata in molti modi, incluso manualmente, tramite RCE, SSRF, o qualche forma di persistenza. Ai fini di questa demo, è una sessione forward standard manuale.ls viene digitato nella sessione forward, in questa sequenza: 'l' 'w' 'w' 'back-space' 'back-space' 's' e poi invio. La dimensione totale dei dati trasmessi sulla rete (come output di ls) è classificata come infiltrazione, dato che è in entrata.