Ciao ragazzi! Qualche giorno fa alcuni di
voi mi hanno chiesto se avessi in programma
di fare un approfondimento su Kali Linux per
Raspberry Pi. Non era la prima volta che vi
mostravate interessati all’argomento, e
così eccoci qui oggi a parlare di questa
curiosa ed interessante distribuzione.
Ci sono alcune considerazioni importanti da
fare, e ne faremo anche altre durante il corso
del video: probabilmente molti sono venuti
a conoscenza di questa distro grazie alla
serie TV Mr. Robot, dato che in tutte le scene
di hackeraggio o in generale di utilizzo di
un computer (per lo meno da parte dei protagonisti)
tale OS veniva esplicitamente mostrato o si
faceva riferimento ad esso. Altra fama deriva
dal fatto che tale sistema operativo è stato
spesso utilizzato per mostrare attacchi informatici
di varia natura, e via discorrendo.
Perciò, le prime due considerazioni che voglio
subito fare sono: 1) non si diventa hacker
installando un sistema operativo, ma occorre
sapere che cosa si sta facendo (e saperlo
fare bene); 2) Kali Linux non è un sistema
operativo che nasce con l’intento di farci
diventare degli hacker. E su questo ci torneremo
tra pochissimo.
Offensive Security, un team di esperti del
settore che ha fondato e che mantiene viva
questa distribuzione Linux, è un fornitore
di servizi legati al mondo della sicurezza
informatica, e nello specifico dei penetration
test. Lo stesso gruppo offre corsi online
(gratuiti e non) con tanto di certificazioni,
e mantiene attivo l’Exploit Database, un
archivio gratuito e pubblico (perfettamente
conforme al CVE) che contiene una marea di
informazioni riguardo a buchi di sicurezza
già noti con relativo software vulnerabile.
Perché viene fatto tutto ciò? Di certo non
per favorire hacker o utenti malevoli:
lo scopo è quello di fornire strumenti e soluzioni
per affrontare problemi di sicurezza. Problemi
che vanno dalla più semplice falla in un
applicativo di qualsivoglia natura, ad intere
infrastrutture non accuratamente protette.
E Kali Linux nasce per questo motivo: creare
un sistema che, una volta avviato, contenga
già belli che pronti e pre-configurati tutti
questi tool di analisi e test di penetrazione.
Kali Linux è basata su Debian e come detto,
a parte qualche modifica grafica qui e lì,
le vere differenze rispetto alla famosa distro
di partenza risiedono fondamentalmente nei
tool pre-caricati e pronti all’uso. In più,
partendo da un OS così diffuso come Debian,
Kali è allo stesso modo compatibile con una
marea di dispositivi, anche ARM. Anzi, a mio
avviso, è proprio in questo regno che può
dare il meglio di sé, e probabilmente il
team che mantiene il sistema ne è al corrente
poiché rilascia versioni per una varietà
enorme di single board computer o dispositivi
similari. Compreso, ovviamente, Raspberry Pi.
Io ho installato Kali Linux 2019.1 sul mio
Raspberry Pi 3B+ e l’ho configurato affinché
sia possibile utilizzarlo come una “hacking-machine”
portatile: quindi con batteria, display, tastiera
senza fili e doppia interfaccia di rete WiFi.
E in questo video vi mostrerò come ottenere
lo stesso risultato.
Il primo passo è chiaramente quello di scaricare
l’immagine del sistema dal sito ufficiale,
kali.org, ed è interessante notare come gli
autori forniscano informazioni su come prelevare
in modo sicuro immagini del sistema che non
siano state modificate rispetto a quella preparata
da loro. In alternativa è possibile crearsi
la propria immagine di Kali, per essere sicuri
al 100% di non avere un OS alterato.
Comunque, per gli scopi di questo video va
più che bene il download dell’immagine
pre-compilata da Offensive Security, ricordandosi
però che c’è una password di default che
va assolutamente modificata, e che le SSH
host keys sono pre-generate e andrebbero ricreate
ad installazione completata.
Una volta terminato il download e copiata
l’immagine del sistema su di una microSD
con una delle tante classiche procedure di
scrittura (ad es: via Etcher), basterà inserire
la schedina nel Pi e collegarlo alla corrente
per avviare il sistema operativo.
Al primo avvio, l’OS si occuperà di allargare
alla larghezza della microSD che si sta utilizzando
la partizione di memoria presente, ed inoltre
una volta effettuato il login con le credenziali
di default (cioè utente root e password toor
che è root al contrario), verrà configurato
il desktop. Su architetture ARM, come il Raspberry
Pi, Kali Linux utilizza XFCE per l’ambiente
desktop, a differenza di GNOME che è il DE
prescelto su architetture i386 e amd64. XFCE
è, secondo me, la scelta migliore su dispositivi
come il Pi, poiché è un ambiente leggerissimo
e comunque offre la maggior parte delle funzionalità
che ci si aspetti da un ambiente grafico:
ci sono le barre in alto e in basso per accedere
alle applicazioni installate, a quelle al
momento attive o ai desktop in uso, alle icone
di stato, e via discorrendo. E chiaramente
sono supportate le icone sul desktop, e c’è
il file manager per navigare tra cartelle
e file salvati in memoria.
Parlando di applicazioni, come dicevamo poco
fa, è qui che Kali Linux si differenzia dalla
gran parte delle altre distro. Infatti, a
parte le ovvie configurazioni di sistema ed
accessori vari, qui troviamo ben organizzate
per tipologia di attacco/test tutti i software
pre-caricati. Non che questi tool non possano
essere installati su altri sistemi, sia chiaro,
ma la forza di Kali è proprio quella di avere
qui tutto il necessario, pronto senza dover
andare a smanettare in giro...
Il team che cura la distribuzione si occupa
di tenere aggiornati tutti questi pacchetti,
che vanno dai tool per crackare reti Wi-Fi
o rompere servizi di autenticazione remota,
ai più famosi software che tramite diversi
attacchi riescono a scoprire le password,
etc...; c’è il metasploit framework, varie
network utility ed analyzer, sniffer, sistemi
anti intrusione, web scanner, la suite burp,
software per verificare falle in applicativi
web, per analisi forense e tanto tanto altro
ancora. Nella versione ARM, però, non sono
presenti tutti gli applicativi che ci sono
in quella per PC (probabilmente alcuni di
questi non esistono proprio compilati per
tale architettura), ma a meno di dover utilizzare
proprio quei tool qui assenti, beh la selezione
presente è più che valida ed ampia.
Prima di compiere qualsiasi altra operazione,
occorre fare 2 cose, forse 3: 1) fare un giro
all’interno delle impostazioni di sistema
per configurare l’ambiente come desiderato;
2) cambiare il layout della tastiera che state
utilizzando con quello corretto, ad esempio
io sto usando una tastiera italiana; e 3)
modificare la password dell’utente.
E qui facciamo un terzo ragionamento: se Kali
Linux non nasce per renderci tutti hacker,
e se non si diventa hacker semplicemente avendo
a disposizione i tool che abbiamo elencato;
ancor di più, Kali non è un OS che secondo
me abbia senso utilizzare come sistema di
tutti i giorni. Mi spiego meglio: Kali Linux
può essere usato anche come unico sistema
su un PC, un portatile o quel che sia il nostro
computer, il problema è che l’OS è pensato
per funzionare direttamente con l’utente
root, che è l’utente più importante in
un sistema Linux, e che non dovrebbe mai essere
utilizzato come utente generico. L’utente
root può fare ciò che vuole sul sistema,
anche molto danno, quindi se non si sa quello
che si fa si rischia di fare grandi casini.
Inoltre, anche conoscendo un sistema Linux
in modo avanzato, utilizzare il computer con
l’utente root lo espone a grandi problemi
di sicurezza: se il nostro PC dovesse beccare
un virus, un malware o un qualsiasi altro
tipo di attacco informatico, qualsiasi esso
sia verrà eseguito con i permessi di root,
amplificando i rischi in modo devastante.
Per Kali Linux si è fatta questa scelta per
comodità: tanti tool, se non tutti, in un
modo o nell’altro richiedono di avere permessi
di root per poter funzionare, e quindi per
facilitare l’uso della distribuzione si
è pensato di tagliare la testa al toro ed
avere questa configurazione particolare.
È chiaro che nulla vieti all’utilizzatore
di creare altri utenti secondari, con meno
permessi, e sfruttare solo o principalmente
quelli per usare la distro. Però sinceramente
si perderebbe un po’ anche il senso dell’OS
in sé, che di suo non è pensato per un uso
generico di tutti i giorni.
Finito il pippone su questa particolare configurazione,
torniamo alle operazioni da eseguire immediatamente.
Una volta cambiata la password dell’utente
root, occorre collegarsi ad una rete (che
sia cablata o wireless) per assicurarsi di
avere il sistema aggiornato. Kali abbiamo
detto essere basata su Debian, quindi c’è
apt per gestire i pacchetti. Ma a differenza
di Debian e altre derivate come Ubuntu, Kali
è una rolling-release distro: in pratica
il sistema viene costantemente aggiornato
e non ci sono versioni ogni tot mesi o anni
che aggiornano blocchi interi del sistema
operativo. Qui tutto viene costantemente aggiornato.
Purtroppo per noi, l’immagine che viene
fornita sul sito kali.org è al momento ferma
a gennaio 2019, quindi ci sono 5 mesi abbondanti
di aggiornamenti da recuperare, e la procedura
di update richiede diverso tempo (anche un’ora
o più) a seconda del Pi che state usando
e della velocità della vostra microSD. Ad
aumentare la beffa c’è anche il fatto che
durante l’aggiornamento dei pacchetti, in
più occasioni, ci sarà richiesto di confermare
alcune scelte, quindi non potrete lasciare
il sistema lì in secondo piano e fare altro,
ma ogni tanto occorrerà buttare un occhio
per far procedere il setup.
Comunque con i classici apt update e poi apt
upgrade && apt dist-upgrade il sistema si
aggiornerà con le ultime versioni disponibili
dei pacchetti software.
Una piccola nota: vi consiglio di disattivare
qualsiasi blocco schermo o risparmio energetico,
per lo meno per questa fase, poiché mi è
capitato che entrasse il blocco schermo durante
l’installazione degli aggiornamenti e a
quel punto il sistema si è bloccato malamente,
tant’è che alla fine ho dovuto ripartire
da zero riscrivendo l’immagine dell’OS
sulla microSD. Terminato l’update magari
è possibile riattivare il risparmio energetico
o l’eventuale blocca schermo.
Arrivati a questo punto abbiamo Kali Linux
configurata a nostro piacimento a livello
grafico e di ambiente desktop; aggiornata
all’ultima versione e configurata per accedere
alla rete. Il passo successivo è quello di
aggiungere un dongle USB per rendere disponibile
una seconda interfaccia di rete che è indispensabile
per il funzionamento di alcuni tool (soprattutto
se abbiamo la prima interfaccia wlan già
occupata). E non dovreste avere problemi di
compatibilità se utilizzate uno qualsiasi dei dongle
certificati per funzionare con Raspberry Pi.
Ora spegniamo il Pi e procediamo a collegare
la batteria al GPIO e su di essa il display.
Per entrambi questi accessori trovate miei
focus dettagliati qui sul canale, linkati
in descrizione, ma in generale potete usare
una qualsiasi altra soluzione: display differenti,
powerbank o potete essere creativi a piacere.
Una volta inseriti i due HAT, occorre riaccendere
il Pi magari questa volta senza collegarlo
alla corrente e sfruttando invece la batteria
(tramite l’apposito pulsantino sulla batteria
stessa), per configurare il display.
Una delle strade più semplici è quella di
usare il tool kalipi-tft-config, il quale
contiene già tutto il necessario per auto
configurare i display più comuni compatibili
con i Raspberry Pi.
Basterà infatti seguire le indicazioni a
video, scegliendo il display corretto in nostro
possesso, per avere tutto pronto all’uso.
Prima di avviare la configurazione comunque
è sempre meglio fare una verifica di avere
gli ultimi pacchetti, dopodiché si potrà
configurare il display scegliendo tra quelli
nella lista suddivisa per brand.
Una nota: il mio display in particolare ha
la necessità di essere ruotato di 90° o
270° altrimenti l’immagine si vedrà in
verticale invece che in orizzontale, ma poco
importa: eseguite la configurazione e in caso
doveste modificare qualcosa basterà rilanciarla
per sistemare il tutto.
A questo punto, basterà riavviare e voilà
il sistema verrà mostrato sul piccolo schermo
anziché sul monitor esterno. Il mio display
è un po’ piccolino per un uso confortevole,
però qualcosa è possibile farla e poi il
sistema sarà comunque sempre accessibile
da remoto via ssh, quindi gran parte dei tool
potranno eventualmente essere lanciati da lì.
Comunque in descrizione trovate
il link ad una pagina web dedicata a configurazioni
avanzate che è possibile applicare a Kali
Linux per il Pi così da rendere l’uso ancora
più completo; e tra esse c’è anche qualche
dritta per sfruttare al meglio questi tipi di display.
Ora sarà possibile scollegare tutti i cavi
ed avere un piccolo computerino portatile
ricco di tool per verifiche di ogni tipo.
E qui si apre l’ultimo ragionamento: personalmente
non do il mio supporto ad alcun tipo di utilizzo
non etico di Kali Linux, o in generale di
software sviluppato per effettuare pen-test
o analisi su reti ed applicativi. L’idea
qui è quella di sfruttare la suite di applicazioni
per imparare come funziona l’hacking informatico
e farlo in modo etico, cioè rivolto alla
scoperta di falle all’interno della propria
rete e dei propri applicativi o sistemi per
i quali si è autorizzati all’accesso. Utilizzare
questi tool su reti esterne o verso sistemi
informatici di cui non siamo i proprietari
o per i quali non abbiamo le autorizzazioni
è un’attività informatica illegale che
può portare a gravi conseguenze nel mondo
reale.
Voi che ne pensate di Kali Linux? Avete mai
utilizzato questa distro? La provereste per
trovare vulnerabilità ad esempio in applicativi
web o altro che state realizzando voi?
Vi aspetto nei commenti per sapere la vostra
al riguardo!
Personalmente penso che se da una parte non
ha molto senso usare Kali come sistema unico
su un PC, trovo dall’altra decisamente sensato
utilizzarlo su di una macchina virtuale oppure
su di un Pi per avere sempre a disposizione
un piccolo strumento configurato ad hoc per
lo scopo. Ci sono tool che consentono di scovare,
durante le fasi di sviluppo o collaudo del
software che si sta realizzando, anomalie
alle volte molto difficili anche solo da immaginare.
Per cui ritengo che avere molte delle utility
qui presenti sia davvero un valido aiuto per
chi lavora nel settore e voglia essere sicuro
di aver sviluppato software senza falle (o
con il minimo numero possibile) oppure costruito
architetture il più impenetrabili possibile.
Kali Linux non è l’unico sistema pensato
per usi come quelli appena indicati: ci sono
anche altre distro che nascono per i medesimi
fini, quindi fatemi sapere nei commenti se
siete interessati all’argomento perché
ci si potrebbe tornare su in futuri focus.
Iscrivetevi al canale, se non lo siete già,
attivando le notifiche così da essere subito
avvisati quando pubblicherò gli altri approfondimenti.
Io mi fermo qui: ci sentiamo presto!
Ciao :-)
