Vault 7/ BothanSpy e Gyrfalcon, quando SSH diventa vettore di attacco

Vault 7/ BothanSpy e Gyrfalcon, quando SSH diventa vettore di attacco

Wikileaks pubblica la documentazione di due strumenti usati dalla CIA per reperire password e chiavi private dai client SSH su Windows e Linux
Wikileaks pubblica la documentazione di due strumenti usati dalla CIA per reperire password e chiavi private dai client SSH su Windows e Linux

Di recente sono stati pubblicati su WikiLeaks nuovi documenti trapelati nell’ambito dell’operazione Vault 7 relativi a due strumenti usati dalla CIA per attaccare i client SSH sul sistema operativo di casa Microsoft e sulle distribuzioni Linux.

Nel primo caso, lo strumento utilizzato dai servizi segreti americani prende il nome di BothanSpy ed ha come target uno specifico client SSH commerciale per Windows, chiamato Xshell e commercializzato da NetSarang , limitatamente nelle versioni comprese tra il rilascio 3 build 0288 e 5 build 0537 (l’ultima versione rilasciata è la 5 build 1199). Poiché Xshell viene fornito esclusivamente in versione x86, anche BothanSpy è compilato a 32-bit. Affinché esso sia utilizzabile su sistemi a 64-bit è necessario provvedere all’injection su WOW64; la CIA, a tal fine, utilizza lo strumento ShellTerm , non ancora recensito su Wikileaks.

Il manuale, datato Marzo 2015, è di poche pagine e fornisce istruzioni sulle modalità d’uso del software.
BothanSpy, in grado di catturare le credenziali relative alle sessioni attive in Xshell, consiste di due file: BothanSpy.dll e BothanSpy.py (wrapper per ShellTerm).
Esso può funzionare in due modalità: se usato in Fire and Collect Mode , le credenziali recuperate non vengono mai salvate su disco. Ciò consente di eseguire lo strumento senza avere i privilegi di scrittura, a discapito della persistenza; le credenziali vengono mandate direttamente all’attaccante in maniera cifrata.
BothanSpy esegue quindi una scansione dei processi alla ricerca di eventuali istanze di Xshell; dopodiché inietta la propria DLL per estrarre le eventuali password o chiavi private (con relative passphrases).
Se la modalità usata è invece la Fire and Forget mode , le credenziali vengono scritte su disco e criptate in AES in una directory personalizzabile dall’utente; la chiave di cifratura è derivata dalla password “secretpassphrase” mediante una funzione hash.

Per quanto riguarda Linux, il tool usato della CIA si chiama Gyrfalcon e la documentazione pubblicata è relativa a due diverse versioni, datate rispettivamente gennaio e novembre 2013. Questa volta il software target è il comune OpenSSH, noto a chiunque amministri sistemi Unix e/o Unix-like.

Come nel caso di Outlaw Country , un altro progetto Vault7 pubblicato la scorsa settimana per l’esfiltrazione delle comunicazioni tramite regole iptables nascoste, l’installazione di Gyrfalcon richiede che la macchina spiata sia già stata compromessa e che l’operatore possa agire con permessi di root.

In maniera simile a BothanSpy, l’esecuzione di Gyrfalcon 1.0 avviene tramite ispezione del processo di OpenSSH mediante ptrace . Per tale ragione, la presenza di SELinux potrebbe interferire con il funzionamento del rootkit nel caso in cui la variabile deny_ptrace sia settata a 1 (il comando per leggere il valore attuale è getsebool deny_ptrace , il comando per abilitarla è setsebool deny_ptrace 1 . Il valore di default è 0). Le uniche dipendenze sul target sono costituite dalla presenza delle librerie libc.so.6 , libpthread.so.0 e libz.so.1 . Il kernel del target deve essere successivo alla versione 2.6.14 e le librerie glibc devono essere almeno alla versione 2.5.

Oltre ad essere in grado di ottenere le credenziali della connessione, Gyrfalcon può anche effettuare il dump dell’intera sessione SSH. L’eseguibile viene generato tramite un tool di configurazione ( eyre ), che restituisce un archivio contenente Gyrfalcon stesso e il relativo file di configurazione, nel quale sono specificate le informazioni sui target di cui collezionare i dati e la modalità con cui questi vengono raccolti. Nell’esecuzione di tale tool è possibile specificare alcuni parametri globali (directory di lavoro, file da usare per la raccolta delle evidenze, la grandezza massima raggiungibile da tale file, l’architettura del target (x86, x86_64) e il nome del file di configurazione da leggere.
Tale archivio sarà poi caricato sul server vittima dall’operatore (tramite altri meccanismi indipendenti dal tool stesso), estratto, dopodiché l’eseguibile sarà lanciato come root in modalità foreground o background (raccomandata). Nel secondo caso, il demone può essere pilotato inviando segnali con il comando kill. Il segnale SIGHUP scatenerà la rilettura del file di configurazione, SIGTERM ne terminerà l’esecuzione, e SIGUSR1 forzerà il dump dei dati collezionati sul file di output.
Una volta avviato, Gyrfalcon inizierà a collezionare i dati; nella parte finale del documento, vengono date le indicazioni su come interpretare e gestire il file di output con Python.

La versione 2.0 di Gyrfalcon consiste di due script Python entrambi eseguiti sulla postazione locale dell’operatore; le dipendenze da installare su tale host sono Python 2.6 o superiori, il generatore di interfacce SWIG e la libreria M2Crypto .
Per quanto riguarda il target, alle dipendenze specificate sopra, vanno ad aggiungersi libcrypt.so.1 (per l’hashing md5) e libcrypto.so.5 (OpenSSL compilato con supporto ad AES-256-CBC e RSA-2048).
Il funzionamento è analogo alla versione 1.0, tuttavia, differentemente da questa, Gyrfalcon 2.0 non effettua ispezioni tramite ptrace, ma va a sostituirsi alla libreria libgssapi_krb5.so che viene utilizzata in OpenSSH per l’integrazione con Kerberos. Inoltre sono stati forniti dei wrapper specifici per l’interpretazione dei flussi collezionati.

Una soluzione sicuramente valida per evitare rootkit di questo tipo, può consistere nella compilazione statica di OpenSSH (e altri strumenti critici) sui propri sistemi e l’utilizzo di meccanismi di auditing .
Si puntualizza, infine, che tali strumenti non sfruttano di per sé alcuna vulnerabilità sui sistemi Linux , e si ricorda che il prerequisito fondamentale per il loro utilizzo è che il sistema sia già stato precedentemente compromesso .

Patrizio Tufarolo

Link copiato negli appunti

Ti potrebbe interessare

Pubblicato il
11 lug 2017
Link copiato negli appunti