N.B.: Tutte le informazioni contenute nel seguente articolo sono a scopo esclusivamente didattico, pertanto l'autore non si riterrà responsabile dell'abuso di tali informazioni da parte degli utenti del sito, qualora esse venissero utilizzate per scopi illegali.

Spesso mi viene chiesto: “Come faccio a rubare le password di un utente per un determinato sito?”, quando la domanda più corretta da porsi dovrebbe essere: “Posso autenticarmi a un sito senza possederne le credenziali?”

Può sembrare assurdo, ma non è strettamente necessario possedere username e password di un utente per far credere ad un sito internet di essere un utente accreditato! Infatti, in questa guida analizzeremo una tecnica di attacco chiamata Session Hijacking, facente parte della grande famiglia dei Man-in-the-middle attacks, che permette a chiunque di introdursi nell’account di un’altra persona collegata alla stessa LAN.

Per chi è completamente a digiuno di nozioni sul funzionamento di Internet, la spiegazione teorica della Session Hijacking (in italiano dirottamento di sessione) potrebbe risultare un po’ ostica, ma prometto che tenterò per quanto possibile di essere semplice.

Normalmente, per accedere all’area riservata di un sito, un utente è costretto ad autenticarsi con uno username e una password tramite un pannello di login. Al fine di evitare all’utente la reimmissione delle credenziali ad ogni pagina visitata, la maggior parte dei siti web o meglio, i server che ospitano questi siti rilasciano dei piccoli file di testo che vengono memorizzati dal browser dell’utente per essere reinviati al server ogni volta che il sito richiede una conferma sull’identità dell’utente, permettendo a quest’ultimo di mantenere la sessione attiva. Questi piccoli file di testo vengono chiamati cookies di sessione.

Un attaccante che riesca ad intercettare i cookies di sessione di un utente, potrà fingersi quell’utente semplicemente inviando i dati contenuti in questi piccoli file al server che ospita il sito web tramite il proprio browser.

Quali strumenti utilizzare

Esistono una miriade di modi per raggiungere lo stesso obiettivo. In questa guida ho deciso di utilizzare il famoso sniffer di rete Wireshark, di cui ho già discusso nell’articolo Ottenere username e password dei siti web con Wireshark, per intercettare i pacchetti in transito tra vittima e server e identificare i cookies di sessione di un sito in WordPress servito tramite protocollo Http. Una volta identificati i cookies di sessione della vittima, li passerò a Firefox tramite l’add-on Cookies Manager + per accedere indisturbato al pannello di controllo del sito.

Sebbene io abbia testato il procedimento su Kali Linux, sia Wireshark sia Cookies Manager + possono essere installati anche su Windows e su Mac OS X, quindi sentitevi liberi di utilizzare il sistema operativo che ritenete più opportuno.

Informazioni preliminari

Ho preparato l’ambiente di test configurando tre macchine come segue:

  1. Attaccante: Kali Linux Rolling con Wireshark e Mozzilla Firefox con l’add-on Cookies Manager +
  2. Bersaglio: Windows 7 Ultimate SP1 con Google Chrome, indirizzo IP 192.168.1.10
  3. Server: Ubuntu Server 14.04, Apache 2.4, MySQL 5.5, indirizzo IP 192.168.1.15, ospita un sito in WordPress aggiornato all’ultima versione reperibile all’url http://wp.uvm/

Intercettare i cookies di sessione con Wireshark

Avviamo Wireshark. La schermata di benvenuto presenterà una lista di tutte le interfacce di rete disponibili sulla macchina attaccante.

Session hijacking con Wireshark

 

Essendo collegato al router tramite wi-fi seleziono l’interfaccia wlan0 per la cattura dei pacchetti. Con doppio click su wlan0 avvio la cattura. Come è possibile vedere dall’immagine che segue, una volta avviata la cattura, cominceremo a vedere tutti i pacchetti in transito sulla LAN.

Session hijacking con Wireshark

 

Vi renderete presto conto della mole enorme di pacchetti in transito, dopo pochissimi secondi dall’avvio della cattura. Sarebbe impossibile analizzarli tutti trovando quelli che realmente ci servono: per questo scopo, Wireshark dà la possibilità di filtrare questi pacchetti secondo una serie di regole. Sapendo che ci servono i cookie di sessione passati tramite protocollo Http provenienti dalla macchina bersaglio (IP 192.168.1.10), impostiamo il seguente filtro

http.cookie && ip.src == 192.168.1.10

Applicando il filtro noteremo come i pacchetti elencati da Wireshark diminuiscono sensibilmente.

Session hijacking con Wireshark

Login della vittima

Passiamo sulla macchina bersaglio dove l’utente amministratore sta per effettuare il login al pannello di controllo del suo sito.

Session hijacking con Wireshark

 

L’amministratore del sito, ignaro di ciò che sta capitando a pochi metri da lui, clicca sul pulsante di login, si autentica al sito e consegna all’attacker il pacchetto contenente i cookie di sessione.

Session hijacking con Wireshark

Dall’immagine possiamo anche notare come i pacchetti presentino come sorgente l’indirizzo IP della vittima grazie al filtro impostato e come destinatario quello del server che ospita il sito.

Session hijacking con Wireshark

Analisi dei pacchetti, iniezione in Firefox dei cookies e dirottamento della sessione

Individuato il pacchetto che ci interessa non ci resta che visualizzarne il contenuto, facendo doppio click su di esso o selezionando dal menù di Wireshark Visualizza -> Mostra pacchetto in una nuova finestra. Possiamo quindi estrarre i cookie in formato cookie=valore espandendo la voce Hypertext Transfer Protocol e la voce Cookie.

Session hijacking con Wireshark

 

Attiviamo Firefox sul quale abbiamo installato Cookies Manager + e immettiamo l’url della pagina di login del sito.

Session hijacking con Wireshark

 

Apriamo Cookies Manager +. Una prima schermata ci mostra tutti i cookies presenti nel browser.

Session hijacking con Wireshark

 

Aggiungiamo i due cookies necessari al dirottamento di sessione.

Session hijacking con Wireshark

Session hijacking con Wireshark

 

Ora la schermata principale principale di Cookies Manager + riporta i cookies appena inseriti.

Session hijacking con Wireshark

 

Possiamo collegarci all’url di amministrazione del sito bypassando il form di login.

Session hijacking con Wireshark

Conclusioni

Abbiamo visto come sia semplice utilizzare i dati in transito in una rete per guadagnare un accesso ad un’area privilegiata di un sito senza possederne le credenziali. Tuttavia, alcuni accorgimenti possono aiutarci a non diventare vittime di questo tipo di attacco, quindi se possibile, preferiamo i siti interamente protetti dal protocollo Https ed evitiamo le reti wi-fi pubbliche.

 

Di seguito, un video dimostrativo di quanto spiegato precedentemente.

 

Condividi: Session Hijacking con Wireshark

    1. I test non dovrebbero essere fatti su siti reali, è reato, a meno che non ti sia stato espressamente fornito il consenso. Comunque, il sito sisal.it è protetto da un certificato ssl, la comunicazione dei dati è criptata e viene effettuata tramite protocollo https sulla porta 443, il filtro impostato su wireshark è per il protocollo http sulla porta 80. Non puoi sniffare dati di un sito con certificato ssl con questo metodo.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.