Oggi, da come si può ben intuire dal titolo, parleremo di Kali Linux, versione 2016.2. Da come si può evincere dalla numerazione di questo rilascio, questa nuova release è uscita a febbraio del 2016.
Kali Linux è una distribuzione basata su Debian 8.5. Dalla precedente versione di questo sistema operativo, Kali Linux è una rolling. Questo sta a significare che dopo aver effettuato la prima installazione, l’utente non dovrà preoccuparsi di aggiornare la distro alle release successive. Il sistema fa tutto in automatico e questo ovviamente, secondo me, rende il tutto molto più stabile. Sicuramente molto più stabile rispetto al sistema di aggiornamento di Ubuntu, che ogni volta che aggiorna il sistema alla nuova release commette diversi errori, rendendo il sistema da stabile, a gravemente instabile. Sono pochi, sinceramente parlando, i sistemi Release Update che funzionano correttamente. Uno di questi è Fedup, su Fedora.
Ma non dilunghiamoci troppo in questi dettagli, e ritorniamo all’argomento principale di questo articolo.
Quando andrete a scaricare il sistema operativo noterete che la iso del rilascio principale della distribuzione pesa all’incirca 2.9 GB. Si lo so, è un peso veramente molto grande, soprattutto per chi ha una connessione piuttosto lenta. Per fortuna hanno rilasciato anche diversi rilasci light, che però attenzione, non contengono tutti i software presenti normalmente in Kali, ma soltanto i più importanti. Dopo l’installazione, se vi interessa portare la distro alla versione completa, dovrete installare voi manualmente ciò che manca, seguendo la documentazione. Io ve lo sconsiglio, per evitare di dover poi dover perdere diverso tempo per preparare la distro.
Per quanto riguarda invece i requisiti di sistema consigliati, ecco a voi la lista.
* Non vi elenco i requisiti minimi in quanto non sono sufficienti per usare il computer in modo normale, figuratevi usare una distro per studiare la sicurezza informatica
Processore dual core da 1.8 GHz o superiore
Ram da 2GB per un’architettura a 32 bit.
Ram da 4 GB o superiore per la versione a 64 bit.
Almeno 80 GB di spazio libero su hard disk
Come possiamo notare i requisiti per poter usare questa distribuzione non sono bassi, si avvicinano molto a quelli richiesti da Windows, ma c’è da dire che questa distribuzione, soprattutto la versione che utilizza Gnome come DE, è piuttosto pesante.
Visti questi particolari iniziali, direi che possiamo procedere.
Come dicevamo poco prima, Kali Linux si basa su Debian, ma possiamo notare fin da subito che è molto diversa dalla sua base. Vediamo subito le varie motivazioni che mi hanno spinto a formulare questa mia tesi finale.
Gestore dei pacchetti
Debian e solitamente tutte le sue derivate strettamente legate a questa distribuzione, hanno un’idea di stabilità molto radicata. Questo vuol dire che il team di sviluppo che segue e che implementa nuove funzioni in questi sistemi operativi, è molto attento ad implementare nuove versioni dei software. Questo sostanzialmente comporta che i pacchetti contenuti all’interno dei repository sono poco aggiornati e quindi non presentano le ultime funzionalità. Ad esempio Debian, come versione di Gnome, utilizza la 3.14, quando sta per uscire la versione stabile 3.22
Kali Linux ragiona in un modo totalmente diverso. A parte il fatto che il sistema operativo utilizza dei repository indipendenti da Debian main, che quindi gestiscono i software nel modo che ritengono più corretto per la distribuzione. Il team di kali gestisce i pacchetti della distro in modo completamente diverso da Debian, inserendo i pacchetti aggiornati all’ultima versione stabile disponibile di ogni programma o di ogni componente del sistema operativo. Questo modo di gestire i pacchetti si avvicina molto al sistema di gestione di Fedora. Ovviamente questo metodo di gestione non a tutti piace. A questo punto bisogna valutare se si interessa avere un sistema totalmente stabile, ma che non sia costantemente aggiornato, o se si desidera un sistema molto aggiornato, ma meno stabile, ovviamente.
Per farvi capire quando questa distribuzione sia aggiornata, ho effettuato l’aggiornamento dei pacchetti proprio ieri, e il sistema mi ha aggiornato Gnome dalla versione 3.20.5 alla versione 3.21.91, dopo sole due settimane dall’installazione effettiva sul mio hard disk.
Gestione della sicurezza
In Debian la sicurezza è fondamentale e presa molto seriamente, ma in Kali l’aspetto della sicurezza è preso in modo maniacale, ma in alcuni aspetti permette di avere un sistema sicuro, senza però il bisogno di dover superare, ogni volta che si effettua un’installazione di un programma o una semplice modifica ad un file di sistema.
In Debian la gestione degli utenti è classica. Durante l’installazione vengono fatti creare all’utente due account utente diversi. Uno di root e l’altro normale. L’utente di root non verrà creato se non si desidera. Per non creare l’utente di root in Debian è molto semplice. Sarà sufficiente non inserire la password di root durante l’installazione, anche se sconsiglio caldamente questo tipo di scelta.
Durante l’installazione di Kali, la creazione dell’utente di root è obbligatorio. Quindi sarete costretti a inserire una password. Però non vi chiederà di creare nessun account utente. Quando sarà il momento di loggarsi al sistema, dopo l’installazione, si dovrà inserire come nome utente root e come password, la password di installazione. Eh già, in Kali l’utente root è sbloccato anche per l’accesso da DE, cosa che non si vedeva più su Linux da molti anni. Dopo il primo accesso, ovviamente, potrete senza alcun problema crearvi un account amministratore tradizionale, per maggior sicurezza o comodità. Dico per maggior sicurezza, in quanto l’account amministratore non ha i diritti di modificare o rimuovere file di sistema. Quindi in caso di errore o in caso entri un virus all’interno del sistema operativo, non verranno modificati i file, in quanto è praticamente impossibile che ciò avvenga.
Come dicevo poco fa, Kali è attenta alla sicurezza, quasi in modo maniacale, ma lascia spazio all’utente e non lo costringe a dover superare migliaia di controlli per effettuare ogni operazione. Questo vuol dire che per esempio, quando gestite il vostro server locale, ovviamente server Apache, non dovrete cambiare nessun permesso particolare per fare in modo che il server venga visualizzato correttamente dal browser. Il team di sviluppo ha già dato al server i permessi 755, che permettono di far visualizzare a chiunque il contenuto dei file, senza però fornire per sicurezza, l’accesso per rimuoverli o modificarli.
Ovviamente per quanto riguarda il server Apache, è possibile successivamente assegnare, tramite il comando chmod da root, il massimo livello di permessi per il vostro utente, con il valore 777.
Gestione dei driver e componenti aggiuntivi proprietari
La gestione dei driver proprietari e la gestione di altri componenti proprietari, come codec multimediali, è abbastanza controversa in Kali. Infatti all’interno del sistema operativo e all’interno dei repository non troviamo alcun driver proprietario. Dovremmo essere noi utenti a scaricarli e installarli manualmente in caso di bisogno. Ma come dicevamo questo sistema in questo aspetto è un po’ controverso in quanto non fornisce driver proprietari, ma fornisce codec multimediali proprietari e altri componenti aggiuntivi utili al sistema, già preinstallati per giunta.
Debian invece, molti codec multimediali non li installa di default, ma sono già presenti nei repo e i driver proprietari, sono sia presenti nei loro repo, e svariati driver sono anche installati di default. Quindi questi due sistemi operativi si differenziano anche per questo motivo.
Dopo aver visto le più importanti differenze tra Debian e Kali, andiamo a vedere qualche aspetto di base del sistema operativo.
Innanzi tutto direi di iniziare dalla base, ovvero il kernel. Il kernel di base installato è alla versione 4.6.0 Ovviamente nel corso degli aggiornamenti, dato che questo sistema è una rolling, il kernel verrà aggiornato.
Come possiamo notare dallo screen, la versione del kernel usata è stata modificata dal team di Kali. Lo notiamo dalla scritta kali1, dopo la numerazione della versione.
Basandosi su un sistema Debian, Kali Linux presenta diversi servizi generali di Debian, come APT e DPKG.
I pacchetti utilizzati sono .deb. Dato che i repo di Kali sono diversi dalla distribuzione principale Debian, molti pacchetti hanno un nome diverso. Quindi se non riuscite ad installare alcuni pacchetti, aiutatevi con Synaptic.
Funzionalità della shell
Dopo aver parlato del kernel, direi che è giunto il momento di parlare un po’ delle funzionalità integrate nella shell. Questo argomento non lo presento mai all’interno delle mie recensioni di altri sistemi operativi, ma dato che in questo caso la shell di Kali è stata altamente personalizzata, direi che è una grave mancanza non trattarla.
Kali Linux è nata come distribuzione per hacking, o per effettuare dei test di sicurezza, detti anche penetration test, adatti per capire se il sistema di sicurezza informatico della propria azienda sia veramente sicuro o meno. Al giorno d’oggi è importante saperlo, in quanto se ad attaccarci è una persona intenzionata a danneggiare l’azienda, anche in modo serio, potrebbe questa persona, rubare tutti i dati aziendali e venderli non so.. alla concorrenza. E di certo non è una cosa che le aziende amano che succeda.
Quindi si, con questa distro è possibile cimentarsi nell’hacking di server, password, database, banche dati, creare exploit per controllare un dispositivo da remoto, in modo ovviamente illecito e molto altro ancora. Per questo motivo, Kali porta preinstallati una marea di tool sia grafici, che a riga di comando (la maggior parte sono a riga di comando), per permettere agli utenti, che ovviamente hanno conoscenze necessarie per farlo, di avere una piattaforma completa per l’hacking.
Ecco alcuni programmi più famosi per l’hacking, che troviamo all’interno di Kali:
Attacchi alle reti
Wifite
Come primo programma, direi di citare Wifite, un tool in grado di calcolare e quindi fornire la password di una rete WiFI protetta con una protezione WPA.
Reaver
Reaver è un’altro tool per effettuare un attacco bruteforce alle reti WiFi o alle reti LAN protette. Come nel caso di Wifite, questo strumento lavora su reti protette con algoritmi WPA/WPA2.
Questo tool presenta una marea di comandi e di funzioni, tutte da provare. Alcune sono elencate all’interno di questo screen. Per ottenere questo elenco basta digitare reaver -h in un terminale con privilegi di root.
Questo è il tool in azione
Analisi dei dati
DB Browser for SQLite
Questo tool grafico serve per controllare e verificare una banca dati. In poche parole aiuta nel verificare che la struttura del proprio database non presenta problemi di ridondanza dei dati (ripetizione dei dati all’interno del database), che poi causano problemi di inconsistenza (un problema di inconsistenza si verifica quando sono presenti due o più record uguali in una stessa tabella all’interno del database).
Inoltre aiuta a verificare se alcuni dati siano correttamente criptati, per garantire una buona sicurezza dei dati.
JSQL
Questo tool serve per effettuare iniezioni di codice SQL all’interno dei database. Questa tecnica consente di immettere forzatamente delle istruzioni SQL all’interno di un database, che contiene i dati di un blog, di un sito o di un’azienda, per poi eseguirle per rimuovere i dati, rubarli o altre operazioni. Questo tool è nato per effettuare dei test, per verificare se un database sia implementato correttamente e quindi non accetta istruzioni dall’esterno oppure se è implementato male, permettendo la memorizzazione ed eseguire istruzioni dall’esterno.
SQLMAP
SQLMAP è un tool che permette di verificare se un determinato sito o portale possa essere attaccato con la tecnica SQL Injection, che abbiamo appena visto poco fa. Questo sito controlla tutte le pagine che forniscono un parametro di richiesta – query – al database in chiaro, quindi con il metodo get. Ad esempio controlla pagine simili a questa: www.sito.com/index.php?id=1. In questo caso 1 è il valore che si server per effettuare una richiesta al database. In poche parole verrà selezionato dal database il record che avrà come id il valore 1. Molti webmaster commettono l’errore di collegare queste richieste direttamente al database. Così facendo, però, un utente che vuole distruggere il sito può inserire, al posto di 1, la stringa DELETE * FROM users, se la pagina si riferisce a un’autenticazione. In poche parole ora con questa stringa ho rimosso tutti gli utenti del sito.
La sicurezza è molto importante. Per questo motivo sqlmap fa un test per verificare se il proprio sito è sicuro. Ovviamente questo tool può essere usato da un hacker per verificare se un sito è vulnerabile e quindi attaccarlo.
Io ho fatto un test sul mio cloud e ovviamente il mio cloud ha superato il test egregiamente, senza troppi problemi. Anzi… a dir la verità nessuno.
Attacchi alle password
Come potrete ben sapere, le password online giocano un ruolo molto importante. Bene Kali ha ottimi tool per effettuare attacchi brute force intelligenti, ovvero mirati a seconda dei parametri che forniamo, per trovare password e quindi rubare gli account ad esse associati.
I tool più famosi sono: Medusa, Cewl e Hashcat
Dato che sono tool totalmente testuali e piuttosto complicati, preferisco non immettere gli screen a riguardo. Parleremo meglio di questi tool in un prossimo articolo.
Questi che abbiamo citato sono i tool più famosi, già presenti in Kali. Sono anche i tool che ho testato personalmente, per apprenderne il loro funzionamento.
Procediamo oltre, con la nostra recensione
Da dove deriva Kali Linux?
Dopo aver detto che questa distribuzione è nata per il mondo dell’hacking, molto probabilmente qualcuno si starà chiedendo se questo progetto è nato dal nulla. In realtà no. Questo progetto è il sostituto di BackTrack, una distribuzione dagli stessi scopi e obiettivi di Kali, sviluppata fino al 2011. Questo progetto fu abbandonato in quanto presentava numerosi problemi di stabilità e di sicurezza. Per far capire agli utenti che volevano risolvere il tutto, hanno deciso di riscrivere da 0 la distro e chiamarla Kali Linux. La prima versione di questo nuovo sistema operativo uscì nel 2013 e nel 2015, quando uscì la seconda versione, venne introdotto il sistema rolling
Come funzionano i rilasci di Kali?
Abbiamo accennato ai rilasci di Kali Linux, dicendo che il primo rilascio uscì nel 2013 e il secondo nel 2015. Il terzo, ovvero quello attuale, è uscito nel 2016. Le date di rilascio non sono costanti, ma variano a seconda di un solo fattore: se la distro è pronta, viene rilasciata, altrimenti no. Diciamo che la questione dei rilasci viene notata soltanto da chi deve ancora installare questa distribuzione. Questo perché, essendo che Kali Linux è una rolling, e gli aggiornamenti tra una release e un’altra avvengono in modo automatico, l’utente non ci fa neanche tanto caso, se ovviamente non si informa costantemente sull’evoluzione del progetto, cosa che consiglio altamente.
Quali DE supporta Kali?
Dall’aggiornamento 2016.2, Kali Linux supporta diversi DE. Nelle precedenti versioni supportava soltanto Gnome. Ora supporta Gnome, XFCE, LXDE, e Mate. Supporta le architetture X86, amd64 (64bit) e l’architettura ARM.
Dato che io ho scaricato il rilascio principale, ovvero il rilascio con il DE Gnome, volevo soffermarmi su un paio di dettagli che riguardano questo ambiente desktop. Non posso fare lo stesso con gli altri DE in quanto non li ho provati perfettamente come invece ho fatto con Gnome. Diciamo che gli altri DE li ho provati di sfuggita.
Il team di sviluppo di Gnome ha installato 3 modalità differenti del DE. La prima consente di avviare Gnome con il motore XORG alla versione 11. La seconda è di avviare Gnome Classic e la terza è di avviare Gnome con il motore grafico Wayland. Dopo svariati test su quest’ultimo motore grafico, posso dire che Wayland è molto più veloce di XORG, anche se ancora è un po’ instabile con alcune applicazioni e quindi non consiglio di utilizzarlo come motore grafico principale. Ma comunque provarlo non costa nulla, dato che è già preinstallato.
Nella versione Light di Kali Linux non è stata installata la modalità di avvio di Gnome con il motore grafico Wayland. E’ presente la modalità classica e la modalità standard con il server grafico XORG.
Quindi se si desidera in questo caso provare questo nuovo server grafico, bisogna installarlo in modo autonomo. Ovviamente in caso di problemi c’è sempre il supporto del forum ufficieale e della documentazione del progetto.
La gestione del DE da parte di Kali è molto semplice. Non apporta modifiche significative all’interfaccia grafica, come fanno invece distribuzioni come Ubuntu, che poi possono portare a gravi instabilità all’interno del sistema stesso, ma semplicemente il team installa delle icone da loro create e un tema che opportunamente loro hanno realizzato, per abbellire esteticamente la distro.
All’interno di ogni Desktop Enviroment sono presenti molte estensioni per facilitare il lavoro di ogni utente e per completare il DE stesso. Ad esempio, nel rilascio principale con Gnome sono presenti estensioni molto comode come: simplescreencast, per registrare in modo facile e veloce lo schermo, l’audio del microfono e volendo anche la webcam. E’ presente Dash To Dock, una barra laterale dei preferiti di Gnome, posizionata a sinistra, in stile Unity (ovviamente la posizione si può modificare a seconda delle proprie esigenze. Il bello di questa barra non è solo la sua comodità, ma è anche il sistema a scomparsa intelligente, che permette di risparmiare spazio sullo schermo nel caso in cui ci sia una finestra sotto che sta occupando lo spazio della dock.
Sono presenti anche molte altre funzioni ed estensioni, come Alternative Tab, che permette di avere una visualizzazione più completa del menu a comparsa per lo switch da una finestra all’altra con Alt-Tab. Anche questo tool è molto completo ed è altamente personalizzabile.
Come possiamo vedere le estensioni già presenti sono davvero molte e tutte molto utili. Sono poche le distro che sistemano già in modo accurato un DE, in modo tale da permettere all’utente di poter iniziare a lavorare con la distro quasi subito.
All’interno della distribuzione sono già stati installati e configurati (in modo base) determinati servizi molto utili per lo studio di reti e per la prova di script.
Uno fra questi è il server apache. Come abbiamo accennato in precedenza, la distribuzione presenta al suo interno un server apache già installato e configurato in modo base. Il server apache è stato inoltre predisposto per renderlo un VirtualHost, ovvero una piattaforma in grado di gestire infiniti domini.
Collegato al server apache è già presente un server MySQL per la gestione dei dati da memorizzare, un interprete PHP per eseguire i propri script PHP. L’unica cosa che manca è PhPMyAsdmin, ovvero il gestore grafico del database MySQL, che permette di gestire in modo efficiente e pratico il proprio database.
Per la sicurezza del sistema operativo e dei dati che esso contiene, è già configurato un buon firewall che controlla tutte le porte di comunicazione della propria scheda di rete e tutte le comunicazioni in entrata e in uscita.
Come avrete potuto notare nel corso di questa recensione, sono molti i tool avanzati presenti all’interno di questo sistema operativo. Ma non sono i tool il problema. Il problema sono tutte le nozioni che bisogna avere per utilizzarli al meglio.
Certamente un’utilizzo classico del sistema, quindi navigazione in internet e lettura della posta elettronica o comunque cose di questo calibro, fanno si che questo sistema operativo sia un po’ sprecato. Consiglio l’utilizzo di questo sistema a chi vuole imparare cose avanzate, perché è di questo che si sta parlando in questo articolo, di argomenti avanzati. Consiglio l’installazione e l’utilizzo di questa distro a chiunque ne abbia necessita o vuole imparare sperimentando.
All’interno della distribuzione dovrete usare molto spesso, se non sempre il terminale, per moltissime cose. Non è stata pensata per un’utilizzo facile. Diciamo che serve un minimo di conoscenza di GNU/Linux tale da poter usare questo sistema operativo in totale sicurezza, senza avere il timore di causare dei danni alla distribuzione.
Nel corso di questo articolo avrete potuto vedere o capire che con le strumentazioni incluse in questa distribuzione è possibile recare danni a sistemi e a infrastrutture di altri. Non è un gioco questo sistema operativo. Lo dico a tutte le persone che sono online e che si divertono ogni giorno a provare a buttare giù il mio server o i server di miei, li definisco così, colleghi del web, in quanto facciamo tutti il blogger.
Quindi serve un minimo di responsabilità quando si utilizzano certe cose. Certo si può sperimentare, provare, analizzare e giocare con i tanti giochini software inclusi in questa distro, avendo però in mente il rispetto per il lavoro altrui.
Questa è stata una recensione panoramica di questo OS. Ovvio che non si può recensire un sistema complicato come Kali Linux in un solo articolo. Per questo motivo, dedicherò diversi altri articoli a questo argomento.
Con questo chiudo qua la mia recensione.
Vi aspetto al mio prossimo articolo!