PwnSTAR è uno script installabile sulla maggior parte delle distro Linux, in grado di simulare in tutto e per tutto un "Fake Access Point", ovvero un Access Point "esca", in grado di attirare inconsapevoli utenti a danno dei quali si possono compiere tutta una serie di azioni, come:
- Creare un Honeypot ovvero un Access Point "aperto" (senza fornire accesso ad Internet), per poi usare nmap, Metasploit ed altro;
- Intercettare l'handshake WPA;
- fornire accesso ad Internet lanciando nel contempo un attacco Man-in-the-Middle;
- Effettuare un redirect della vittima verso la pagina web che desideriamo (ad esempio verso un sito di phishing);
- lanciare Karmetasploit per catturare credenziali, raccogliere dati e condurre attacchi al browser lato client.
E inoltre, generare Captive Portal, PDF Exploit...e molto altro. Maggiori informazioni sono disponibili sul sito del progetto. Anche se il tool è progettato per girare sotto Kali Linux, come abbiamo detto sopra, è possibile installarlo ed utilizzarlo nella maggior parte delle distribuzioni Linux. Nel nostro caso abbiamo utilizzato Backtrack 5 R3
Installazione e configurazione PwnSTAR
Come prima cosa cloniamo il progetto da GitHub con il comando "git clone". Da terminale lanciamo il comando:
root@bt:~# git clone git://github.com/SilverFoxx/PwnSTAR.git
dopodichè spostiamoci nella directory che contiene PwnSTAR e lanciamo l'installer:
root@bt:~/PwnSTAR# ./installer.sh
Se tutto è andato per il verso giusto, alla fine dell'installazione saremo in grado di lanciare il programma digitando semplicemente il comando ./pwnstar dal path in cui ci troviamo. Probabilmente il programma di installazione ci avviserà che non tutte le dipendenze sono soddisfatte, per cui sarà necessario installare i pacchetti mancanti lanciando il comando:
root@bt:~# apt-get -f install
NOTA: prima di lanciare il comando precedente, conviene sempre effettuare un update dei pacchetti attraverso il comando:
root@bt:~# apt-get update
Una volta risolte le dipendenze, siamo finalmente pronti per lanciare il programma vero e proprio, ma prima è necessario spostare una serie di cartelle che contengono le pagine web di esempio per i captive portal nella directory /var/www di Apache, per cui portiamoci nella directory PwnSTAR/html e digitiamo i comandi:
root@bt:~/PwnSTAR/html# mv -f hotspot_3/ /var/www/
root@bt:~/PwnSTAR/html# mv -f portal_hotspot/ /var/www/
root@bt:~/PwnSTAR/html# mv -f portal_pdf/ /var/www/
root@bt:~/PwnSTAR/html# mv -f portal_simple/ /var/www/
A questo punto possiamo lanciare PwnSTAR:
root@bt:~/PwnSTAR# ./pwnstar
Il programma chiede innanzitutto di installare il dhcp server isc-dhcp-server, per assegnare automaticamente gli IP ai client-vittima che si assoceranno al nostro fake AP, rispondiamo "y" e andiamo avanti. Apparirà un menu simile a quello mostrato in figura.
A questo punto dobbiamo scegliere che tipo di attacco vogliamo sferrare, tra le tante opzioni rese disponibili da PwnSTAR. Per il nostro test abbiamo scelto di mettere in piedi un captive portal per raccogliere le credenziali di accesso degli utenti ad una serie di servizi, come Facebook, Gmail ed altri. In sostanza all'utente connesso all'access point verrà richiesto di inserire le proprie credenziali di accesso ad uno dei servizi specificati. In realtà, il captive portal registrerà queste credenziali in un file di testo e poi concederà comunque l'accesso ad Internet all'utente ignaro.
Per utilizzare questo tipo di attacco, dobbiamo selezionare il menu 9) ADVANCED menu e poi la voce a) Captive portals (phish/sniff). La procedura ci consente poi di scegliere se dare accesso ad Internet attraverso la nostra scheda di rete (nel nostro caso eth0) e di indicare la scheda wireless che farà da access point. Nel nostro caso abbiamo utilizzato una scheda GSKY GS-27USB, con chipset Realtek e driver RTL8187L. Una volta impostati i parametri richiesti, PwnSTAR mette la scheda wireless (nel nostro caso wlan0)in "monitor mode", creando l'interfaccia virtuale mon0 e cambiando, se lo vogliamo, il MAC address. A questo punto, il programma ci chiede se vogliamo effetuare una scansione dei canali disponibili: rispondiamo con "n" e andiamo avanti. La sequenza di passi appena seguita è mostrata in figura.
Ora dobbiamo impostare i parametri IP e il canale su cui l'AP sarà operativo. Possiamo lasciare tutto com'è, inserendo solo il numero del canale: scegliamo il canale 2 digitando "3" per entrare nella voce di menu "SoftAP Channel", inserendo "2" e poi prememndo "C" per andare avanti. Scegliamo quindi il tipo di Access Point che vogliamo mettere in piedi tra le tre possibilità offerte. Nel nostro caso sceglieremo l'opzione "2", che annuncia solo l'ESSID, che specificheremo comunque successivamente. Nel nostro caso abbiamo scelto come ESSID "D-Link", dopodiché rispondiamo alle domande successive, che ci chiedono sostanzialmente di mettere in piedi un HotSpot (menu "1") e di indicare il file in cui verranno raccolte le credenziali delle vittime, come mostrato in figura.
A questo punto il nostro hotspot è pronto per catturare le credenziali di accesso.
In figura è mostrato il captive portal che appare all'utente con i vari pulsanti di login per ognuno dei servizi specificati (Facebook, Gmail, etc.). Inserendo le credenziali nel captive portal, queste vengono scritte in un file nominato "formdata.txt" o altro nome se ne abbiamo scelto uno diverso in fase di configurazione. In figura, infine, possiamo vedere le credenziali di accesso appena catturate!
Conclusioni
Le possibilità offerte da PwnSTAR sono davvero tante. È possibile ad esempio costringere l'utente a scaricare un PDF per abilitare l'accesso ad internet, che può essere una specie di contratto o agreement, per la privacy e così via. Quanti utenti cliccano su "Accetta" senza leggere nulla? All'interno del PDF può essere stato precedentemente iniettato un exploit di metasploit con relativo payload e qual punto il gioco è fatto. Ovviamente i captive portal sono personalizzabili secondo i nostri scopi e secondo la location in cui andiamo a piazzare il fake Access Point. È possibile inoltre effettuare un DNS spoofing, in modo tale da effettuare il redirect degli utenti verso il captive portal, ma facendo apparire nell'URL il nome a dominio del servizio (es. maps.google.com o altro).