La terza stagione di Mr. Robot, lo show che ci accompagna dal 2015 e che non ha mai smesso di stupirci, si è conclusa poco tempo fa. Da considerarsi sicuramente come la più emotivamente forte tra le tre, neanche quest’ultima stagione si è tirata indietro in quanto ad attacchi informatici, e a noi già manca. La lotta tra il bene e il male continua a disputarsi sul terreno informatico, e le conseguenze sono decisamente reali.

In quest’ultimo articolo presentiamo ed analizziamo le tecniche e gli attacchi più particolari visti nella terza stagione. Se vi siete persi gli articoli precedenti, vi consigliamo di recuperarli qui (prima stagione) e qui (seconda stagione).

Ribadiamo inoltre che abbiamo volutamente evitato di spiegare situazioni o nominare altri personaggi che non fossero il protagonista, sia perché ciò esula dall’obiettivo dell’articolo, sia per evitare qualsiasi tipo di spoiler.

Firmware hacking e batterie esplosive

Prima di iniziare con il primo episodio, vogliamo riprendere un attacco che era stato raccontato da uno dei protagonisti nel finale della stagione precedente. Abbiamo deciso di non parlarne prima principalmente per due motivi. Il primo è che nel season finale viene solo descritto a parole a grandi linee e viene ripreso nella terza stagione. Il secondo è che questo attacco è la spina dorsale di circa metà di questa stagione, quindi abbiamo ritenuto più giusto approfondirlo ora.

Iniziamo col dire che l’attacco consiste nel far saltare in aria un edificio contenente delle informazioni cartacee fondamentali. Come? L’intera idea si basa sull’utilizzo dei gruppi di continuità, utilizzati come batterie di backup per i computer, evitando che si spengano in caso di interruzioni di corrente. Essi forniscono energia tramite batterie, super condensatori o flywheel. Nella serie tv, queste batterie sono pressapoco dello stesso tipo di quelle delle auto, le cosiddette lead-acid, fatte ovvero di piombo e acido. Queste batterie hanno delle proprietà chimiche che possono rivelarsi molto pericolose, ed è proprio su questo che fa leva l’attacco.

Sistema di gruppi di continuità
Parte del sistema di gruppi di continuità da far saltare in aria. Credits: geekwire.com

L’obiettivo è quello di effettuare un overwrite del firmware di queste macchine, sostituendolo con una versione malicious per disabilitare i meccanismi di controllo per gli eventuali fallimenti. Dopodiché si causa un sovraccarico di queste batterie portandole a scatenare una reazione chimica che produce idrogeno, gas altamente infiammabile, che causerà l’esplosione. Ciò è possibile grazie alla backdoor inserita nel network delle macchine nella stagione precedente.

I tool che ci vengono mostrati nello show sono binwalk, che serve per analizzare le proprietà di un file binario (come ad esempio un firmware) e Radare2, un framework per effettuare reverse engineering di file binari.

Rimuovere una backdoor nel bel mezzo di una DEF CON

Il primo episodio della stagione ci catapulta in una DEF CON, ovvero una hacking convention. In realtà non ci troviamo di fronte a quella principale ma solo in un piccolo sottogruppo di partecipanti.

Elliot partecipa ad una delle sfide per poter avere accesso al computer dal quale agirà per eliminare la backdoor precedentemente inserita. Molte backdoor utilizzano un canale chiamato “command and control”, C2, che termina in uno specifico indirizzo di rete di proprietà dell’attaccante e che gli permette di controllare la backdoor stessa. Ciò che deve fare Elliot è fare in modo che il canale termini al suo computer, in modo da prendere il controllo della backdoor. Per far ciò deve effettuare un hacking del DNS Registrar, ovvero l’organizzazione che gestisce i nomi di dominio, per modificare le informazioni del network address correntemente legato agli altri attaccanti.

L'hacking di un DNS registrar cinese
Elliot hackera un DNS registrar cinese per ottenere il controllo della backdoor. Credits: USA Network

Dopo aver ottenuto il controllo del C2 Elliot utilizza un tool chiamato rwwwshell che, seppur obsoleto, permette di utilizzare quella che è chiamata reverse-shell. La differenza rispetto alla shell normale (detta anche bind) sta nel fatto che non è l’attaccante a connettersi al servizio installato sulla macchina target, ma il contrario: l’attaccante crea un listener sulla propria macchina, mentre il computer target agisce da client connettendosi al listener, fornendo quindi la shell all’attaccante.

Il tool per ottenere la reverse shell
Il comando che utilizza Elliot per ottenere la reverse shell. A seguire, il comando per la cancellazione della backdoor. Credits: hackers-arise.com

Utilizzare una reverse-shell invece di una normale shell permette di bypassare gli eventuali problemi di firewall che bloccano le connessioni in ingresso verso il target. Ottenuto l’accesso completo alla backdoor Elliot la cancella tramite il comando shred.

L’hacking contro Elliot e l’HSM

Nel secondo episodio vediamo Elliot impossessarsi di alcune password con metodi già visti, che non staremo quindi qui a rispiegare. Oltre a questo però, ed è ciò su cui poniamo l’accento, vediamo il protagonista diventare questa volta vittima di un hacking.

Dalle immagini si vede l’attaccante armeggiare con qualcosa dietro lo schermo del computer di Elliot. Nella serie non viene spiegato esattamente cosa succede, ma dal momento che Elliot, eseguendo il tool rkhunter per la ricerca di rootkits nel proprio sistema operativo, non trova nulla di sospetto, si tratta probabilmente di un hack al firmware del monitor, perpetrato tramite una chiavetta USB.

Il tool rkhunter usato da Elliot
rkhunter, il tool utilizzato da Elliot per ricercare eventuali rootkit nel proprio computer. Credits: geekwire.com

Questo permette agli attaccanti di ricevere gli screenshot del desktop di Elliot ogni tot secondi. Ciò lo si capisce guardando l’immagine che ci fornisce la serie tv, in cui vediamo una cartella piena di immagini in formato PNG. Inoltre, nel terminale si nota uno script chiamato cnc_receiver.py che è il già menzionato canale C2, che rimane in ascolto per ricevere gli screenshot.

Gli screenshot del computer di Elliot ottenuti dagli attaccanti
La vista degli attaccanti del computer di Elliot, con gli screenshot salvati in una specifica cartella. Credits: geekwire.com

Nel quinto episodio vediamo un hacking contro un HSM. L’HSM – Hardware security module, è un dispositivo fisico che serve per produrre e gestire chiavi per la strong authentication e per proteggere informazioni altamente sensibili. Grazie alla sua alta velocità nelle operazioni di criptografia viene utilizzato per la gestione dell’apposizione di firme digitali in remoto (ovvero quelle che non usano la Smart Card). Visto il tipo di dati che contiene, l’HSM ha una sicurezza molto elevata.

Poichè l’HSM non ha vulnerabilità insite è forse improprio parlare di hacking, ma è interessante soffermarsi su alcuni particolari. Innanzitutto, lo scopo di questo attacco è ottenere chiavi e certificati contenuti nell’HSM. Esso fa utilizzo di particolari chiavette chiamate iKeys o PED keys. Ne esistono diversi tipi, che differiscono gli uni dagli altri in quanto gestiscono ciascuno un’operazione diversa. In questo caso il tipo utilizzato dagli attaccanti è quello che permette di clonare una particolare partizione. Il contenuto viene clonato su un HSM di backup portato dagli attaccanti (chiamato Luna HSM), collegato a quello originale. Per effettuare questa operazione gli attaccanti utilizzano un PIN Entry Device, o PIN pad, che collegano all’HSM. Utilizzando il PIN necessario per ottenere l’accesso riescono infine a accedere alla partizione desiderata e ottenere le chiavi volute.

Il PED utilizzato per inserire il PIN
Il PED collegato all’HSM dal quale inserire il PIN per l’accesso. Credits: geekwire.com

Ci teniamo a sottolineare che i passi per realizzare questo hack sono nella realtà molto più complessi, e una descrizione accurata avrebbe necessitato di un articolo a sé. Abbiamo quindi preferito limitarci ad una schematizzazione molto semplificata di ciò che è accaduto.

Il contrattacco

Gli episodi che seguono il quinto non contengono attacchi particolari in quanto dedicati principalmente allo sviluppo dei personaggi e della storia. In uno di questi episodi, ad esempio, rivediamo l’hacking di una RFID, già spiegato nel primo articolo di questa serie. Per il resto vengono mostrati alcuni comandi interessanti per la gestione di file, upload, check di validità, e così via, nonché altri attacchi di ingegneria sociale.

Arriviamo quindi al nono e penultimo episodio, dove Elliot è nuovamente vittima di un malware. Questa volta però, avendo previsto ciò che stava per accadere, egli riesce a orchestrare un contrattacco. Il protagonista usa uno script python chiamato vol.py, che è un componente del framework Volatility, uno strumento per analizzare la memoria del computer ed individuare eventuali malware. Tramite questo tool è possibile eseguire delle query di diverso tipo. Elliot scopre che effettivamente il suo computer è stato infettato, così decide di passare all’attacco.

Volatility, il tool per la ricerca di malware
Il tool Volatility utilizzato da Elliot per la ricerca di malware nel proprio laptop. Credits: motherboard.vice.com

Il malware che trova nel proprio laptop serve agli attaccanti per ottenere qualsiasi dato dal computer della vittima. Compreso ciò, Elliot crea un file PDF malicious, sapendo che gli attaccanti lo avrebbero scaricato e aperto per controllarne il contenuto. In particolare Elliot sfrutta una vulnerabilità presente in Evince, il principale reader di PDF per sistemi Linux, e crea il PDF in modo tale che, non appena aperto, egli sia in grado di ottenere il controllo del terminale dell’attaccante.

Il pdf con codice malicious per sfruttare la vulnerabilità di Evince
Il PDF contenente shellcode creato appositamente da Elliot, sfruttando la vulnerabilità di Evince. Credits: medium.com

Una volta aperto il PDF Elliot si connette al computer tramite SSH, quindi con una connessione sicura e criptata. Ciò suggerisce l’idea che il malware creato da Elliot e inserito nel PDF gli abbia fornito una sorta di tunnel alla rete privata degli attaccanti.

Attacco brute force con dizionario su un keylogger criptato

Arriviamo quindi all’ultimo episodio. Decisamente carico di emozioni e tensione, esso ci regala alcune perle informatiche soltanto negli ultimi minuti.

Qui Elliot deve accedere ad un keylogger criptato per ottenere, ancora una volta, delle chiavi di decriptazione. Un keylogger è uno strumento (hardware o software) in grado di effettuare lo sniffing della tastiera, ovvero intercettare tutto ciò che viene digitato. Questo keylogger è però stato criptato, quindi occorre trovarne la password. Un attacco brute force prova tutte le combinazioni di caratteri, generando password e provandole. Anche senza calcoli precisi è facile capire che con password più lunghe di 6 caratteri il brute forcing diventa molto lento, fino ad arrivare a tempi inaccettabili per password di 10-12 caratteri.

Per velocizzare il processo si utilizza un dizionario definito dall’utente, il quale contiene una lista di parole che verranno provate come password. In questo caso Elliot conosce il proprietario del keylogger: oltre a sapere che è un hacker e che quindi ha utilizzato presumibilmente una password lunga, conosce anche vari aspetti della sua vita privata. Elliot sa che l’hacker è molto legato alla musica di alcuni artisti, quindi ciò che fa è scaricare i versi delle canzoni dei suoi gruppi e cantanti preferiti, creando un dizionario con queste informazioni.

Le canzoni degli artisti scaricate da Elliot
La ricerca di Elliot sugli artisti preferiti dall’hacker e le loro canzoni. Credits: geekwire.com

Creato il dizionario Elliot scopre che l’hacker ha criptato il suo keylogger con LUKS – Linux Unified Key Setup, che è uno standard di cifratura del disco per Linux. Elliot utilizza quindi bruteforce-luks, un programma che serve per effettuare brute force su LUKS. Trovata la password il protagonista è finalmente in grado di montare l’immagine del keylogger e controllare il contenuto.

La password scoperta tramite bruteforce
Elliot scopre la password, un verso di una canzone, ed è in grado di accedere al keylogger. Credits: geekwire.com

Con l’ultima stagione si concludono anche gli articoli dedicati agli attacchi e tool più interessanti utilizzati nello show. Questa serie tv è ricca di spunti molto stimolanti, e tutto ciò che avete visto nelle diverse puntate è basata su tool veri e su attacchi assolutamente realizzabili. Bastano un po’ di pazienza e curiosità nell’apprendere.

Oltre agli hack veri e propri, la serie contiene tantissimi easter egg e riferimenti ai grandi dell’informatica che la rendono imperdibile per chi ama questo mondo, ed ogni episodio necessiterebbe di un articolo a sé.

Salutiamo quindi questa rubrica, ma solo momentaneamente: la quarta stagione è già stata confermata, e non vediamo l’ora di riportarvi in tour con noi nel mondo di Mr. Robot.