Kali Linux è strumento principe per i penetration tester. Nel 2013 la nuova distribuzione raccolse l’eredità di BackTrack Linux, che fino ad allora rappresentava lo stato dell’arte per le attività di penetration test pur essendo limitata dal core Knoppix e successivamente Ubuntu, dal quale ne ereditava la gestione degli aggiornamenti, i repository meno popolati e una instabilità di sistema abbastanza marcata.
Consci di questo Mati Aharoni e Devon Kearns di Offensive Security, il gruppo creatore di BackTrack, hanno creato una nuova distribuzione grazie ai feedback degli utenti basando il nuovo sistema su Debian Wheezy 7, decisamente più stabile e adottando un sistema di rolling update.
Indice degli argomenti
Kali Linux: aggiornamenti automatici col rolling update
Il rolling update di Kali Linux, derivante da quello in auge in Debian 7, permette l’aggiornamento del sistema a versioni successive in maniera assolutamente trasparente e senza il diretto intervento dell’utente, con l’installazione sempre aggiornata degli ultimi software (a pacchetto) per i test di sicurezza.
A tal proposito, per monitorare la costante evoluzione dei pacchetti, è stato creato il repository pkg.kali.org dove tenere traccia di tutti i software presenti all’interno di quello ufficiale di Kali Linux, come in una sorta di timeline. Vista la criticità delle operazioni eseguibili con Kali Linux e l’alta affidabilità richiesta dagli strumenti sia in termini di performances sia sotto il profilo della riservatezza, la community è estremamente selettiva.
È facilmente immaginabile, infatti, il danno potenziale causato dalla compromissione di un pacchetto software dedicato al rilevamento delle vulnerabilità. I risultati di ogni scansione potrebbero essere resi disponibili a malintenzionati che li utilizzerebbero a loro favore. In altri casi uno scanner modificato ad hoc potrebbe perpetrare un attacco automaticamente, sfruttando una falla rilevata lecitamente violando le regole di ingaggio del penetration test.
I commit per gli aggiornamenti dei pacchetti e per l’inserimento dei nuovi software sono quindi vagliati attentamente e accettati da una ristretta cerchia di sviluppatori, così da scongiurare problematiche affini a quelle rilevate sul pacchetto npm event-stream di un paio di mesi fa.
Gli strumenti integrati in Kali Linux
Kali Linux dispone nel suo arsenale circa 600 software preinstallati, per seguire il professionista in tutte le fasi del penetration test, categorizzati in:
- Information Gathering;
- Vulnerability Analysis;
- Wireless Attacks;
- Web Application (per perpetrare attacchi alle applicazioni web);
- Exploitation Tools;
- Sniffing & Spoofing;
- Password Attacks;
- Maintaining Access;
- Reverse Engineering;
- Hardware Hacking;
- Reporting Tools;
- Stress Testing;
- Forensics Tools.
Analizziamo in dettaglio le singole categorie per scoprirne le caratteristiche principali.
Information Gathering
I tools per l’acquisizione di informazioni di Kali Linux spaziano da scanner per la rete come Nmap, a programmi per acquisire informazioni riguardanti prodotti specifici come gli apparati di rete Cisco grazie a cisco-torch. Alcuni di questi strumenti sono “orizzontali” rispetto alle 13 categorie, permettendo sia l’information gathering sia l’analisi di eventuali vulnerabilità, o l’exploit.
Vulnerability Analysis
L’analisi delle vulnerabilità è l’attività conseguente all’acquisizione delle informazioni. Una volta definito il perimetro di attacco e le caratteristiche dei sistemi da testare, si procede alla verifica delle vulnerabilità tramite scanner ad hoc come nmap stesso, eseguito però con appositi plugin per l’enumerazione delle vulnerabilità riscontrandole nel CVE, il Common Vulnerability Database.
Eseguendo, infatti, il comando nmap –script vulscan -sV <ip da analizzare>, è possibile far coincidere i risultati della scansione con le vulnerabilità presenti su CVE.
Ulteriori scanner disponibili sono ZAP, Burp Suite, w3af, tra i più conosciuti.
Exploit
La terza fase è lo sfruttamento (exploit) di quanto emerso prima dall’acquisizione delle informazioni e poi dall’analisi delle vulnerabilità, ed è in questa fase che Kali Linux sfoggia un arsenale di primo livello, racchiuso nelle rispettive categorie: Wireless Attacks, Web Application, Exploitation tools, Sniffing & Spoofing, Password Attacks, Maintaing Access, Reverse Engineering, Hardware Hacking.
A seconda del target, il penetration tester può scegliere tra innumerevoli strumenti, pressoché tutti open source (sebbene molti disponibili nella cosiddetta Community Edition, ovvero limitata nelle funzionalità seppur sufficienti) e disponibili su GitHub, tra i più adatti per il target sia esso una web application, un protocollo, un software compilato, una frequenza radio, un sistema operativo o un dispositivo hardware.
I tool di exploit sono infatti raggruppati per macrocategorie, ed è doveroso evidenziare i seguenti:
- burpsuite per l’analisi (e nella versione Professional, anche l’exploit automatico) degli applicativi web;
- Aricrack-ng per l’attacco alle reti Wi-Fi;
- Wireshark per l’intercettazione dei pacchetti su rete;
- sqlmap per lo sfruttamento di vulnerabilità di tipo SQL Injection;
- Mimikatz per il pass the hash;
- Metasploit (e la relativa interfaccia grafica di alto livello Armitage), lo strumento di exploit open tra i più usati al mondo estensibile tramite plugin scritti in Ruby, che elenca tra le funzionalità l’exploit automatico di una vulnerabilità, la definizione di target multipli, la creazione di malwares tramite il plugin Meterpreter, backdoors o reverse shell per mantenere l’accesso a un sistema compromesso grazie invece al plugin Msfpayload.
Infine, meritano menzione particolare i toolkit per l’exploit dei dispositivi mobili (come per la decompressione degli applicativi Android) e dei file compilati per applicazioni di reverse engineering.
Analisi forense con gli strumenti di Kali Linux
Kali Linux non limita il suo ambito di applicazione agli strumenti di offesa (o di difesa con tecniche di ethical hacking), ma è progettata e realizzata col chiaro intento di essere uno strumento omnicomprensivo per le attività di cyber security. Per raggiungere questo scopo la distribuzione ha specifiche estensione del kernel, attivate nella cosiddetta “forensic mode” e disponibili durante l’utilizzo live, sviluppate per non lasciare alcuna traccia nel sistema sottostante, tutelando la non ripudiabilità dei dati analizzati.
In particolare, la “forensic mode” di Kali Linux:
- non monta, né intacca gli hard disk, né le partizione di swap;
- disabilita inoltre l’automount dei dispositivi USB;
poiché il principio fondante è che nulla debba accadere a qualunque dispositivo senza un’azione diretta ed esplicita dell’utente.
Chiaramente il limite della “forensic mode” riguarda l’impronta rilasciata in RAM, giacché il sistema viene caricato totalmente nella memoria volatile, alterando quindi i dati ivi risiedenti.
Per supportare le attività forensi, vi sono inoltre circa una ventina di strumenti per l’analisi di archivi e-mail, browser, immagini bit per bit dei supporti, analisi dei dati EXIF, della memoria e indicizzazione dei dati per la ricerca della “digital evidence”, con l’intenzione di allinearsi ad altre soluzioni del settore ritenute come leader quali, ad esempio, l’italiana DEFT.
A onor del vero, è importante segnalare come in modalità live, ovvero con l’esecuzione del sistema operativo da risorsa esterna (come un CD o un archivio USB) senza installazione, sia possibile adibire un’area dell’archivio USB stesso a memoria non volatile criptabile con LUKS. In tal modo è negata la leggibilità del dispositivo ai soggetti non autorizzati e la totale autodistruzione dell’archivio tramite la funzione apposita “nuke-LUKS” qualora sia necessario far sparire quanto presente o memorizzato nel supporto.
Gli strumenti di reportistica
Terminiamo l’analisi delle categorie degli strumenti con i tools di reportistica. Kali Linux si rivolge quindi non solo ai cosiddetti “script kiddies”, ovvero gli utenti meno capaci, i quali si limitano a sfruttare vulnerabilità conosciute utilizzando unicamente strumenti automatici; ma soprattutto ai professionisti compresi coloro che necessitano di strumenti volti al security management.
Gli strumenti di reportistica disponibili affrontano la tematica ad ampio raggio. Alcuni rendono intelligibile in modo visuale e secondo le linee guida degli standard di settore (OWASP, ITIL, ISO) quanto prodotto e rilevato dagli scanner durante le attività di Information Gathering e Vulnerability Analysis.
Altri permettono invece la redazione ex-novo di reportistica standardizzata e uniforme, per un’efficace gestione del rischio e della sicurezza delle informazioni.
Tutte le versioni di Kali Linux
Giacché le necessità e i profili dei professionisti della cyber security sono sempre più vari e, come già sottolineato Kali Linux ambisce ad essere la soluzione “general purpose”, sono disponibili soluzioni per il penetration tester operante in contesti di forte mobilità, a basso impatto, o più semplicemente su hardware differenti.
Kali Linux è installabile sulle architetture ARM, x86 (32bit) / x64 (64bit), nelle versioni Light, Standard e, dalla versione 2016.2, con differenti ambienti grafici chiamati DE (Desktop Environments) quali Gnome o KDE, o per i sistemi meno performanti XFCE, LxDE o Mate.
Sono inoltre disponibili per il download immagini precompilate per gli hypervisors di tipo 2 VMWare, Vagrant e VirtualBox, così da eseguire Kali in ambiente virtuale, indipendentemente dal sistema operativo sottostante.
Una menzione doverosa riguarda le versioni per hardware dedicati Gemini e Nexus/OnePlus.
Per i dispositivi Nexus, ovvero i tablet/telefoni Android ufficiali di Google (non più in commercio) e i dispositivi OnePlus, è stata rilasciata la ROM NetHunter per l’esecuzione di Kali come sistema operativo per cellulari.
La potenza di Kali, congiuntamente alla portabilità di un telefono cellulare, o di un tablet di modeste dimensioni, permette al professionista di disporre di un toolkit di offesa idoneo al “concealed carry”.
La versione NetHunter è equipaggiata inoltre con:
- 802.11 Wireless Injection, permettendo l’iniezione di pacchetti in una rete Wi-Fi;
- Rogue AP, permettendo al dispositivo di impersonificare un Access Point sniffando il contenuto dei dati in transito;
- HID Keyboard. Alla connessione del dispositivo a un computer vittima via USB, NetHunter rende il dispositivo una tastiera virtuale, capace di inviare comandi arbitrari. Tali comandi sono scriptabili e attivabili senza un diretto input dell’utente. Accoppiato a una attività di social engineering, il telefono diventa quindi un vettore di infezione o exploit molto impattante;
- BadUSB MITM: Il telefono, se connesso via USB a un computer vittima, puà funzionare come una scheda di rete virtuale capace di intercettare e copiare tutto il traffico generato e ricevuto dal target, replicando la tecnica adottata da poisonTap;
- SDR: il dispositivo Nexus o OnePlus è capace di eseguire Software Defined Radio (SDR) per l’analisi e la trasmissione o replicazione delle frequenze circostanti come, ad esempio, replicare le aperture dei telecomandi anche se dotati di rolling codes tramite hardware dedicato. Tali hardware sono alimentabili via USB, rendendo quindi tutto l’apparato estremamente portabile e indipendente; è necessario solo dotarsi di un apparato usb SDR con capacità di RX (ricezione per l’analisi) e TX (trasmissione) da poche centinaia di euro.
A proposito della possibilità di usare Kali Linux in mobilità, è utile segnalare anche il Gemini PDA che evolve il concetto di portabilità essendo un microcomputer portatile ARM con CPU deca-core, tastiera fisica, 4G e Wi-Fi in 320 grammi di peso. La sua completa compatibilità con Kali Linux lo rende un’arma imbattibile in mobilità, risolvendo in parte i limiti di usabilità di NetHunter dovuti al touchscreen ridotto, alla risoluzione dell’interfaccia grafica e all’assenza di tastiera fisica, mantenendone i punti di forza.
Sono infine presenti versioni “ridotte” di Kali Linux, chiamate metapackages.
Questi metapacchetti forniscono all’utente finali delle configurazioni precompilate utili per scopi ben precisi. Ad esempio, qualora l’utente fosse interessato solo a strumenti di analisi e attacco Wi-Fi, è necessario installare unicamente il meta-pacchetto kali-linux-wireless, ma la disponibilità di meta-pacchetti precompilati è davvero numerosa.
Ad oggi, Kali Linux ha raggiunto la versione 2018.4, rilasciata il 29 ottobre 2018 e conta un numero crescente di contributi come evincibile dal bugtracker ufficiale, ove la community si riunisce per la segnalazione dei malfunzionamenti.
L’interesse del mondo della cyber security è altissimo e ad oggi è uno strumento imprescindibile nel toolkit dell’addetto ai lavori. Si consiglia quindi la lettura di “Kali Linux Revealed”.
Occorre ricordare, infine, che è opportuno impiegare Kali Linux responsabilmente: l’utilizzo indiscriminato di questa distribuzione, infatti, fa lo stesso tintinnio delle manette.