Trasforma il tuo Windows 10 in una PenTest Box con WSL e KALI Linux

E’ già passato qualche mese da quando sul Windows Store è disponibile KALI Linux, una distribuzione creata per contenere tutti i tools utilizzati durante un Penetration Test. Avevo sicuramente sottovalutato le sue potenzialità, perché immaginavo fosse più un giocattolino che un vero e proprio ambiente di lavoro per PenTesters. Dopo averla provata a fondo, però, mi sono completamente ricreduto, e posso garantirvi che questa particolare distribuzione installata come APP grazie a WSL non ha nulla da invidiare ad un sistema operativo installato nativamente su macchina virtuale. Non sarà forse paragonabile ad un’installazione su macchina fisica, ad esempio per la mancanza di controllo sui driver delle schede di rete, ma è sicuramente uno strumento dalle grandissime potenzialità.

Vediamo come installare tutto il necessario per trasformare la nostra macchina Windows 10 in una PenTest Box oltre ogni limite!

Il primo passo è quello di abilitare la funzionalità WSL, di cui abbiamo ampiamente parlato in altre occasioni, ma ripassarne i passaggi è più veloce che rimandarvi agli articoli precedenti.

Utilizzando il menu start apriamo “Attiva o disattiva funzionalità di Windows”

Selezioniamo quindi “Sottosistema Windows per Linux” e confermiamo con OK

Al termine dell’operazione sarà necessario un riavvio

Dopo il riavvio possiamo aprire Microsoft Store e cercare KALI

Selezioniamo quindi “Ottieni” per iniziare il download di circa 170MB

Ed una volta completato possiamo avviare l’installazione del pacchetto selezionando “Avvia”

Sarà avviato un processo di installazione, che si concluderà con un breve wizard

Verranno richiesti un nome utente ed una password, che costituiranno la coppia di credenziali per l’utente di default della sessione Linux. Questo utente è completamente separato dall’utente Windows e sarà quello che effettuerà il login al momento dell’apertura dell’APP KALI.

Avviando Kali non sarà necessario inserire la password dell’utente se non al momento di eseguire operazioni che prevedano privilegi amministrativi (su Linux). Tali operazioni, come ad esempio l’installazione di pacchetti software) dovranno essere quindi eseguite attraverso il comando sudo (superuser do).

Lo screenshot seguente mostra l’esecuzione del wizard, al termine del quale eseguiamo il comando

che per convenzione su tute le distribuzioni Linux ci restituisce informazioni sulla distribuzione in uso.

A questo punto abbiamo un vero KALI linux a disposizione sulla nostra macchina Windows 10, ma sono necessarie un po’ di operazioni prima di poter iniziare ad effettuare i nostri penetration test.

Aggiorniamo subito le informazioni disponibili online circa i repository utilizzati dal tool apt-get che ci permetterà di installare in modo automatico i pacchetti software disponibili per KALI da noi scelti. Eseguiamo per questo scopo il comando

Come anticipato poco fa, l’utente con cui siamo loggati sulla macchina non ha privilegi amministrativi (lo capiamo perché il prompt termina con il simbolo $) e quindi per eseguire l’operazione anteponiamo il comando sudo. Il sistema si occuperà di verificare la nostra identità chiedendoci di inserire la password, ed eseguirà quindi il comando

Ora che i repository sono aggiornati possiamo avviare l’aggiornamento completo della distribuzione. Utilizziamo sempre sudo prima del comando, anche se questa volta non ci sarà chiesta la password, poiché in questa sessione ormai siamo stati autorizzati. Il comando che aggiornerà l’intera distribuzione è

Poco dopo il sistema è a nostra disposizione per l’utilizzo.

Bene, siamo arrivati al momento del disclaimer: testare la sicurezza di un sistema è sicuramente un processo molto utile a tutti quelli che erogano servizi in rete, e che gestiscono sistemi all’interno dei quali sono custodite informazioni a volte anche molto riservate. Il Penetration testing prevede l’esecuzione di tool che se utilizzati in maniera non responsabile possono causare danni anche molto gravi, ed è fondamentale che chi gestisce l’obiettivo di questi test sia a conoscenza del processo in corso. Probabilmente per questo motivo la pubblicazione di KALI sul Windows store è stata limitata ad una macchina “vuota”, senza cioè alcun software preinstallato; in questo modo l’utente non troverà migliaia di programmini pronti all’uso ma sarà costretto ad installare ognuno di essi al momento del bisogno. Per avere idea del numero di tool disponibili su KALI è possibile visualizzare il contenuto di questa pagina https://tools.kali.org/tools-listing.

A questo proposito, infatti, tutti i tools di penetration testing vengono considerati nocivi da parte dei software antivirus ed antimalware, così se vogliamo installare qualcuno di questi pacchetti sulla nostra KALI su WSL dobbiamo prima escludere la cartella che contiene il filesystem di KALI dall’analisi del nostro antivirus. Non completando questa operazione gli eseguibili verranno immediatamente cancellati dal sistema antivirus. Per aggiungere l’eccezione necessaria se utilizziamo Windows Defender possiamo procedere in questo modo:

In primo luogo individuiamo la cartella che contiene il sistema operativo linux con un piccolo trucchetto. Sappiamo che le app dello store vengono installate in %localappdata%\Packages, ma per evitare confusione e risparmiare un po’ di tempo possiamo ricavare il percorso con questa procedura:

Dopo aver aperto una qualsiasi shell di KALI, cerchiamo nel task manager il processo bash.exe e selezioniamo “Apri percorso file” dopo aver fatto click col tasto destro su quel processo

Sapremo immediatamente il percorso del file bash, che utilizzeremo per ricavare la root del filesystem, che si trova due livelli più in basso. Copiamo quindi dalla barra degli indirizzi il percorso della cartella fermandoci alla cartella “rootfs“, come visibile in questo screenshot. Facciamo attenzione a non selezionare anche le sottocartelle successive usr e bin altrimenti non escluderemo dal controllo dell’antivirus l’intero filesystem.

Nel mio caso il percorso è C:\Users\PenTest\AppData\Local\Packages\KaliLinux.54290C8133FEE_ey8k8hqnwqnmg\LocalState\rootfs

Andiamo quindi ad aggiungere questa cartella alle esclusioni del Windows Defender, iniziando da impostazioni:

Aggiornamento e sicurezza

Apri Windows Defender Security Center

Protezione da virus e minacce

Impostazioni di Protezione da virus e minacce

Aggiungi un’esclusione -> Cartella

Incolliamo il percorso del filesystem che abbiamo ricavato in precedenza e clicchiamo su Selezione cartella

E verifichiamo che il percorso sia ora presente tra le eccezioni

A questo punto siamo davvero pronti per installare i nostri software ed iniziare a testare la sicurezza dei nostri sistemi. Ricordiamo che solo i package utilizzabili da riga di comando sono supportati, anche se installando un server grafico sarà possibile installare una interfaccia. Non ritengo questa funzione interessante perché, almeno personalmente, l’unico tool di KALI che utilizzo da interfaccia grafica è BurpSuite, per il quale esiste un ottimo porting per Windows.

Alcuni esempi di pacchetti utilizzabili con WSL sono whatweb (information gathering sui domini), dirb e nikto (discovery di cartelle sui siti web), hydra (brute force), john the ripper (password cracking), sqlmap (sql injection tool), joomscan (scansione vulnerabilità di un sito joomla), wpscan (scansione vulnerabilità di un sito wordpress), e soprattutto metasploit, un framework sempre aggiornatissimo che contiene tools per effettuare scansioni di vulnerabilità ed eventualmente exploitarle.

Una nota particolare va fatta per nmap, il tool di scanning di porte e servizi per eccellenza: essendo le APP linux eseguite in user mode non abbiamo la possibilità di creare i RAW socket, caratteristica fondamentale per questo tool; non sarà quindi possibile utilizzare la versione per KALI. Nulla ci vieta però di installare nmap per Windows, che ha le stesse funzionalità. Effettuiamo il download dal sito ufficiale (https://nmap.org/download.html) e lo installiamo come un qualsiasi software per Windows. Creiamo poi un alias da KALI per richiamare da shell l’eseguibile presente nel filesystem Windows con il comando

in questo modo possiamo eseguire nmap da KALI come se fosse installato su linux.


L’installazione di altri pacchetti è molto semplice, installiamo ad esempio dirb con

Ed installiamo l’intero framework metasploit con

Ora siamo davvero pronti ad effettuare il nostro Penetration Test e ricordiamo sempre che questi tool permettono di attaccare un sistema remoto, quindi utilizziamoli esclusivamente con l’autorizzazione del gestore di quel sistema.

Se siete all’inizio e per ora volete solo divertirvi a capire e scoprire l’arte del Penetration Testing esistono molti siti che propongono delle vere e proprie sfide, mettendo alla prova i provetti PenTesters dando loro accesso ad applicativi o macchine virtuali volutamente vulnerabili.

Il mio preferito è senza dubbio www.vulnhub.com, dal quale è possibile scaricare delle macchine virtuali in formato OVA, quindi per VirtualBox o VMware e provare a penetrarle. Inizialmente sembrerà una missione impossibile ma iniziando da uno sguardo attento alle soluzioni di gente più esperta potremo pian piano imparare i metodi di attacco utilizzati dagli hacker, in modo tale da poterci difendere in qualunque situazione. In rete infatti cercando i “walkthrough” delle relative macchine è possibile trovare sempre qualcosa di molto interessante.

Un altro sito interessante è www.hackthissite.org, una community che previa registrazione gratuita mette a disposizione script e applicativi vulnerabili da provare a forzare.

Mai come alla fine di questo articolo auguro buon divertimento e buon lavoro a tutti!