Movimento Laterale via SSH: Secure Shell (T1021.004)
La tecnica T1021.004 descrive l'abuso del protocollo Secure Shell (SSH) da parte di avversari che, dopo aver ottenuto credenziali valide, aprono sessioni remote su sistemi Linux, macOS o appliance ESXi per eseguire comandi con il contesto dell'utente autenticato. Il protocollo è nativamente presente su gran parte delle distribuzioni Unix e viene comunemente attivato su hypervisor VMware tramite comandi come vim-cmd hostsvc/enable_ssh o tramite vCenter, offrendo agli attaccanti un canale cifrato, legittimo e spesso poco monitorato.
L'inquadramento MITRE colloca la tecnica sotto la tattica TA0008 (Lateral Movement): rappresenta uno dei metodi più efficaci per pivotare tra sistemi eterogenei, trasferire tool, esfiltrare dati o installare persistenza sfruttando chiavi pubbliche autorizzate nel file ~/.ssh/authorized_keys. La cifratura del traffico e la natura amministrativa del servizio rendono difficile distinguere una sessione lecita da una malevola senza correlazione comportamentale.
I numeri parlano chiaro: 19 gruppi APT documentati, 4 famiglie di software offensivo, 3 campagne rilevanti e 3 mitigazioni riconosciute. Attori come Lazarus Group, APT39, FIN7, Scattered Spider e UNC3886 hanno impiegato SSH per estendere il controllo su segmenti sensibili, spesso in combinazione con utility come PuTTY, Plink e PSCP nel caso di pivot da endpoint Windows verso host Unix.
In un ingaggio red team, l'abuso di SSH per il movimento laterale inizia sempre dalla raccolta di credenziali valide o chiavi private. Dopo aver compromesso un host Linux, il primo passo è cercare chiavi riutilizzabili con un comando semplice come find / -name "id_rsa" -type f 2>/dev/null* e ispezionare il file ~/.ssh/known_hosts per mappare i target già contattati dall'utente. Sui sistemi moderni known_hosts è spesso in formato hashed: strumenti come ssh-keygen -H o script di parsing dedicati aiutano a estrarre gli host candidati, mentre cat ~/.bash_history | grep ssh rivela pattern di connessione ricorrenti.
Per il pivot vero e proprio, OpenSSH (open source) offre nativamente tutto ciò che serve. Un port forwarding dinamico con ssh -D 1080 -N -f user@pivot.target trasforma l'host compromesso in un proxy SOCKS attraverso cui instradare tool esterni via proxychains (open source). Il forwarding locale ssh -L 8080:internal-service:80 user@pivot espone servizi interni sulla workstation dell'operatore, mentre ssh -R consente il reverse tunneling utile quando il target ha egress restrittivo.
Da endpoint Windows compromessi, le catene classiche impiegano PuTTY e la sua CLI Plink (entrambi open source) per aprire sessioni non interattive: plink.exe -ssh -l user -pw password target.internal "id;uname -a". Il trasferimento di payload avviene con PSCP, come documentato per Lazarus Group e menuPass. Framework come Cobalt Strike (a pagamento) ed Empire (open source, PowerShell Empire mantenuto dalla community BC-Security) integrano moduli SSH nativi che riducono l'attrito operativo.
Su ambienti VMware ESXi, replicando il tradecraft di UNC3886 e Scattered Spider, l'abilitazione remota di SSH avviene tramite vCenter API o direttamente sull'host con vim-cmd hostsvc/enable_ssh, seguita da autenticazione con credenziali root recuperate da vault compromessi. Per il brute force controllato in lab, Hydra (open source) resta lo standard: hydra -L users.txt -P pass.txt ssh://target -t 4, tenendo conto che rate elevati innescano lockout su configurazioni hardened.
Un ultimo trick osservato in campagne reali è la manipolazione del file authorized_keys per persistenza: aggiungere una propria chiave pubblica con echo "ssh-rsa AAAA..." >> ~/.ssh/authorized_keys garantisce riaccesso anche dopo rotazione password. In laboratorio è utile testare anche opzioni come command= e from= nel file authorized_keys per capire come i difensori possano restringere l'uso delle chiavi.
Vuoi diventare un Ethical Hacker ma non sai da dove iniziare?
Accedi alle lezioni gratuite e segui il percorso corretto fin dal primo passo