Pulire un file .pcap contenente un WPA handshake

Spesso un file .pcap contenente l’handshake WPA catturato con tool automatici come Wifite risulta sporcato da altri dati, pacchetti catturati che non riguardano il four way handshake tra router e client Wi-Fi. Ecco perché è necessario ripulire la cattura, lasciando soltanto i pacchetti EAPOL che ci interessano.

Su Question Defense ho trovato un metodo che fa uso di tshark, lo riporto come memo personale, ma credo possa tornare utile a chi si diverte con il wireless hacking:

Continua a leggere

Usare AirVPN su Android e iOS per navigare in modo anonimo

Esistono tantissimi servizi di VPN, con costi decisamente abbordabili, ma pochi garantiscono privacy e anonimato reali. Uno dei migliori in questo senso è AirVPN, servizio italiano citato nella classifica di Torrentfreak aggiornata al 2013. AirVPN utilizza OpenVPN, molto più sicuro di PPTP, consente di connettersi tramite le porte 80 TCP/UDP, 443 TCP/UDP e 53 TCP/UDP da praticamente qualsiasi sistema operativo desktop o mobile: Windows, Linux, Mac OS X, Android e iOS. Inoltre ha anche un costo contenuto, un abbonamento per tre mesi costa 15€, ma si trovano anche dei coupon che permettono di risparmiare qualche euro.

Su Windows è presente un client che, previa installazione di OpenVPN, consente di fare login con il proprio nome utente e selezionare a quale dei tanti server offerti da AirVPN connettersi, su altri sistemi come Linux, Mac, Android e iOS le cose si “complicano” leggermente, è necessario infatti generare un file di configurazione attraverso una procedura guidata sul sito di AirVPN e importarlo in un client OpenVPN.

Continua a leggere

WordPress: two factor authentication con Authy

Da circa tre giorni sono inondato da tentativi di brute force contro il login di WordPress, le richieste arrivano con metodo HTTP “POST” e sono dirette verso “wp-login.php“. Gli IP utilizzati sono stati sempre differenti, dunque ho rinunciato a bloccarli, probabilmente si tratta di una botnet oppure di uno script che effettua un IP spoofing per evitare il blocco che ho impostato con il plugin Limit Login Attempts nel momento in cui un IP effettui due tentativi errati di login a WordPress.

Oltre a bloccare la cartella “wp-admin” con un file .htaccess ho deciso anche di bloccare l’accesso a wp-login.php con la seguente regola nel file .htaccess:

<FilesMatch "wp-login.php">
    AuthName "WordPress Admin"
    AuthType Basic
    AuthUserFile /path/to/authfile/.htpasswd
    require valid-user
</FilesMatch>

Fatto questo però mi sono detto: e se riescono a bucare la basic authentication in qualche modo? Allora ho deciso di aggiungere un altro layer di sicurezza abilitando l’autenticazione a due fattori in WordPress, la cosiddetta two factor authentication. Per farlo sono ricorso ad Authy, un servizio gratuito che consente di abilitare facilmente l’autenticazione a due fattori a qualsiasi servizio web o applicazione. La prima cosa da fare è registrarsi e scaricare l’app per il proprio smartphone iPhone (iOS), Android o BlackBerry. Fatto questo sarà necessario creare un’applicazione dal pannello di Authy utilizzando il pulsante “Create application” accessibile dallo “User Menu”. La generazione dell’applicazione consentirà di avere a disposizione due API key che saranno necessarie per il funzionamento del plugin che consente la two factor authentication su WordPress.

Fatto questo si può installare il plugin plugin Authy for WordPress, attivarlo e inserire le due API key generate in precedenza. A questo punto dovremo andare sul profilo utente dell’amministratore del nostro WordPress e abilitare l’autenticazione attraverso Authy cliccando su “Manage Authy Connection”.

authy wordpress

Da ora in poi per fare login su WordPress oltre allo username e la password dovremo inserire anche il token generato dall’app Authy sul nostro smartphone.

authy wordpress login

Nessus: reset della password amministrativa

Posto qui la procedura per il reset della password di gestione di Nessus su Windows, utile nel caso si fosse dimenticata e non si riuscisse più ad accedere all’interfaccia di amministrazione.

Il primo passo consiste nell’elencare gli utenti attivi, il secondo invece è il reset vero e proprio della password con il tool incluso in Nessus nessus-chpasswd.exe:

C:\Program Files\Tenable\Nessus\nessus>cd users
C:\Program Files\Tenable\Nessus\nessus\users>dir
Directory of C:\Program Files\Tenable\Nessus\nessus\users
10/03/2012  11:55 PM    <DIR>          .
10/03/2012  11:55 PM    <DIR>          ..
07/09/2012  01:11 PM    <DIR>          localuser
09/11/2012  08:58 AM    <DIR>          nessus
               0 File(s)              0 bytes
               4 Dir(s)  10,347,524,096 bytes free
C:\Program Files\Tenable\Nessus\nessus\users>cd ..
C:\Program Files\Tenable\Nessus\nessus>cd ..
C:\Program Files\Tenable\Nessus><strong>nessus-chpasswd.exe</strong> nessus
Authentication (pass/cert) : [pass]
Login password :
Login password (again) :
password changed for nessus
C:\Program Files\Tenable\Nessus>

La procedura è presa da questo thread del forum di Tenable: Forgot username and password for Nessus login (for local installation)

Metodi per scoprire l’indirizzo IP di un server protetto da Cloudflare

Cloudflare non avrebbe bisogno di presentazioni, ma per chi non lo conoscesse basterà dire che è un servizio di reverse proxy DNS che consente di “mascherare” il reale IP di un sito filtrando tutte le richieste Web attraverso i propri server. Il filtraggio attraverso Cloudflare permette di usufruire già per la versione gratuita di servizi come la protezione da DDoS, spam, botnet etc.

Lo ha usato in passato (efficacemente) Lulzsec per lulzsecurity.com riuscendo a celare il proprio reale IP nonostante i tentativi di th3j35t3r. Lo sta usando in questi giorni un altro gruppo di cracker, UGNazi, che ha ben due siti (o forse di più) protetti da Cloudflare: ugnazi.com ugnazi.ru.

L’unica possibilità certa di conoscere il reale IP di un target è accedere alla zona DNS del dominio che si vuole individuare/colpire, impossibile al momento con mezzi leciti, ma possibile per esempio con un’attività di hacking mirata come quella attuata da UGNazi ai danni del CEO di Cloudflare, Matthew Prince.

Però esistono anche mezzi assolutamente leciti per “bypassare la protezione di Cloudflare” e individuare il reale IP del sito che si vuole colpire (anche se non è detto che la nostra attività sia mirata a “colpire”): il presupposto per la riuscita di questo metodo è che chi ha configurato i record DNS del dominio ne abbia lasciato qualcuno che punta direttamente al reale IP (come per esempio ha fatto il sottoscritto…), per esempio un sottodominio “ftp.nomedominio.com” oppure uno di quelli standard creati da Cloudflare per connettersi direttamente al proprio dominio, come per esempio “direct.nomedominio.com”. Per individuare questi sottodomini vulnerabili e trovare il nostro IP possiamo usare Nmap in questo modo:

nmap --script dns-brute -sn dominio_target

In questo caso usiamo uno script presente in Nmap, dns-brute per l’appunto. In alternativa si può ricorrere a un tool ad hoc per il subdomain bruteforcing come Knock dell’amico Gianni Amato.

Se non riusciamo a individuare record DNS interessanti nel modo descritto possiamo sperare che sia rimasta una traccia della storia dei DNS del dominio bersaglio, possiamo per esempio interrogare la toolbar di Netcraft via Web:

http://toolbar.netcraft.com/site_report?url=http://www.bufferoverflow.it

Non è detto però che ciò che troviamo in questo modo sia aggiornato, per esempio nel caso del mio dominio vengono elencati solo gli IP di Aruba, il primo hosting di bufferoverflow.it.

L’ultimo metodo, purtroppo a pagamento, è ricorrere a DomainTools effettuando una Whois History o ancor meglio una Hosting History che ci permetta di vedere la storia degli spostamenti di un dominio con relativi IP assegnati.

Subterfuge: attacco man in the middle per tutti in pochi clic

Dimenticatevi Ettercap e procedure “complicate” per effettuare un attacco man-in-the-middle (MITM), con Subterfuge anche un bambino è in grado di rubare le credenziali di autenticazione di un client vittima. Non conoscevo questo tool, ancora giovane, ma è stata una scoperta sorprendente.

Uso da anni Ettercap e lo trovo anche semplice ma Subterfuge lo è ancora di più: ha un’interfaccia Web molto chiara che permette di avviare il MITM e visualizzare in tempo reale username e password intercettate dalle connessioni degli utenti vittime del nostro attacco. Inoltre è dotato di moduli aggiuntivi che ne estendono ulteriormente le funzionalità: fake access point, DNS spoofing, Session Hijacking, HTTP Code Injection, spoofing di un server che invii update.

L’installazione su Ubuntu 12.04 (e immagino anche su altre distribuzioni) è molto semplice, basta avviare uno script Python (“sudo python install.py”) che si occuperà del download e del setup di tutto il necessario per usare Subterfuge. Il tool è gestibile da un’interfaccia Web raggiungibile su localhost:80.

Nelle prove che ho effettuato nella mia rete locale sono stato in grado di intercettare username e password di Gmail senza che all’utente venisse mostrato alcun messaggio di connessione insicura, tutto questo è possibile grazie all’utilizzo di sslstrip da parte di Subterfuge.

Il tool come detto è ancora acerbo (l’ultima release è Subterfuge Beta 2.1) e personalmente non sono riuscito ad usare gli altri moduli disponibili ad eccezione del “Credential Harvester” (il modulo che consente l’intercettazione di username e password delle vittime), tuttavia consiglio di provarlo per apprezzarne la semplicità ed efficacia.

subterfuge mitm

Scoprire l’indirizzo IP di un utente Skype

Trovare l’indirizzo IP di un utente Skype è molto semplice, basta iniziare una chat, o ancor meglio un trasferimento di file, con il nostro utente “target” e aprire per esempio netstat, tcpdump oppure, se siete su Windows, usare un programma come TCPView. Da qualche giorno però è venuto alla luce che Skype permette di trovare l’indirizzo IP di qualsiasi utente anche senza averlo prima aggiunto come nostro contatto e senza aver bisogno di iniziare una conversazione con l’utente. La vulnerabilità, anche se è improprio definirla tale, consente non solo di rivelare l’indirizzo IP pubblico di qualsiasi utente ma anche quello privato, cioè quello usato internamente nella propria rete locale.

Il tutto è stato reso pubblico prima da un post su Pastebin, poi è stato realizzato un servizio Web chiamato Skype IP finder (UPDATE 2 maggio 2012: il sito è stato sospeso, esiste tuttavia anche un altro metodo abbastanza semplice, sempre segnalato su Pastebin) in cui basta inserire il nome utente Skype di cui vogliamo individuare l’IP, infine zhovner su GitHub ha creato due script Python per l’individuazione dell’IP che fanno uso di una versione craccata dello Skype Kit.

Tra tutti i metodi sicuramente il più semplice è usare il servizio Web anche se il tool messo a punto da zhovner è efficace, peccato però che a quanto dice l’autore Skype stia bannando gli utenti che ne fanno uso. Voglio comunque descriverne i passi principali per utilizzarlo su un sistema Linux, nel mio caso su Ubuntu 12.04:

  1. Scaricate lo Skype Kit craccato
  2. e decomprimetelo in una directory a vostra scelta

  3. modificate il file keypair.py presente nella directory dello Skype Kit “/skypekit_sdk+runtimes_370_412/skypekit-sdk_runtime-3.7.0/examples/python/tutorial/” inserendo i seguenti valori:
    keyFileName = '../../../keypair.pem';
    distroRoot = '../../../';
    
  4. scaricate dal repository di zhovner su GitHub i file server.py e client.py e posizionateli nella directory dello Skype Kit seguente /skypekit-sdk_runtime-3.7.0/examples/python/tutorial/
  5. rendete eseguibile con “chmod +x” il file RUNTIME_linux-x86-skypekit-voicertp-videortp_3.7.0 presente in “/skypekit-sdk_runtime-3.7.0/bin/linux-x86/” e avviatelo da terminale
    ./skypekit-sdk_runtime-3.7.0/bin/linux-x86/RUNTIME_linux-x86-skypekit-voicertp-videortp_3.7.0 -x -m -d logname
  6. avviate server.py dando come parametri il vostro username e password Skype:
    python2.6 server.py username password
  7. modificate client.py dando il percorso del file di log generato da RUNTIME_linux-x86-skypekit-voicertp-videortp_3.7.0 (ad esempio “/home/vostronomeutente/skypekit_sdk+runtimes_370_412/skypekit-sdk_runtime-3.7.0/bin/linux-x86/logname20120428-2048.log”) e utilizzatelo nel seguente modo:
    python client.py username

    il parametro username consente di cercare l’indirizzo IP dell’utente Skype che abbia lo username che avete indicato a client.py

  8. Inutile dire che la scoperta dell’indirizzo IP di qualsiasi utente di Skype sia estremamente utile per un eventuale attaccante che voglia localizzare geograficamente il suo “bersaglio” e voglia effettuare degli attacchi mirati.