Istruttore: Nella lezione
precedente, abbiamo visto come eseguire il downgrade dei siti Web HTTPS a HTTP.
E questo ci ha permesso di vedere praticamente tutto ciò che un utente fa
su questi siti Web perché i dati in HTTP
vengono inviati in testo normale.
Pertanto, siamo stati in grado di vedere i
nomi utente, le password, gli URL e tutto ciò che fanno sui siti Web HTTPS.
Alla fine della lezione, ti ho anche
mostrato che il metodo non funzionerà contro Facebook, Twitter e altri
siti Web che utilizzano HSTS.
Il motivo per cui non funzionerà con questi siti
Web, perché i browser Web moderni sono dotati di un elenco di siti
Web che dovrebbero caricare solo su HTTPS.
Guarda cosa stavamo facendo nella lezione precedente.
Ogni volta che un browser richiede un sito Web, carichiamo quel sito
Web, anche se utilizza HTTPS,
ciò che gli restituiamo sempre la versione HTTP.
In HSTS, il browser sa che questo sito
Web, ad esempio, Facebook. com, dovrebbe essere sempre caricato su HTTPS.
Quindi, anche prima di inviarci questa richiesta,
la invierà sempre in HTTPS.
E sarà sempre accettato solo se ritorna come HTTPS.
Quindi non c'è niente che possiamo fare davvero, una
volta che diventiamo l'uomo nel mezzo.
Poiché il browser esegue questo controllo localmente,
lo sta verificando rispetto a un elenco
memorizzato sul computer stesso.
Pertanto, l'unica soluzione pratica al momento per
aggirare HSTS è far credere al browser che sta caricando
un altro sito web.
Per fare ciò, sostituiremo tutti i collegamenti HSTS nelle
pagine caricate con collegamenti simili, ma
non sono gli stessi collegamenti.
Ad esempio, possiamo sostituire facebook. com con Facebook. Mais.
Ora, so che questo sembra molto sospetto, ma
fidati di me quando va nella barra degli
URL, l'RN qui al centro, sembrerà molto simile alla
lettera M.
Un altro modo per farlo è sostituire Twitter. com
con twitter. com, ma con una sola T qui
invece di una doppia T.
So che questo suona un po' confuso in
questo momento, ma lasciami andare e farlo
praticamente, e vedrai come funzionerà.
Quindi proprio qui ho la mia macchina Kali.
E in realtà useremo il caplet HSTS che abbiamo
usato nella lezione precedente.
Come accennato nella lezione
precedente, questo caplet è già installato nel Kali
personalizzato, se vuoi usarlo con il
Kali originale, dovrai
scaricarlo manualmente e posizionarlo nel
percorso giusto, in user, local, share , bettercap, caplets.
Ho la capsula proprio qui.
Come ho detto, questo è già
quello corretto perché sto usando il Kali personalizzato, se
andiamo al suo interno, abbiamo un file chiamato hstshijack. berretto.
Questo è il file di configurazione del distico.
Quindi farò clic con
il pulsante destro del mouse, lo aprirò con
un'altra applicazione, farò clic su Visualizza tutte le applicazioni.
E vuoi scegliere qualsiasi editor di testo che hai.
Quindi terrò questo su Leafpad.
Potrebbe essere necessario scorrere verso il
basso per trovarlo, ma ce l'ho qui, lo selezionerò.
E come puoi vedere, abbiamo un normale file di
testo con tutte le configurazioni che possiamo impostare.
E l'ho già preconfigurato per te.
Le cose principali che vuoi capire e forse
cambiare sono gli obiettivi e le sostituzioni.
Quindi gli obiettivi sono i domini che utilizzano HSTS
che si desidera sostituire.
Ad esempio, ho Twitter. com qui, e ho
anche la stella. twitter. com.
Fondamentalmente, quando usi una stella, questo è un jolly.
E fondamentalmente significa qualsiasi sottodominio. twitter. com è
anche un obiettivo.
E la sostituzione, vuoi dire al programma,
con cosa sostituire questo obiettivo.
Ad esempio, ogni volta che vediamo twitter. com, lo
sostituiremo con Twitter. Mais.
Lo stesso vale per Facebook e Apple e
alcuni altri domini che ho detto.
Puoi anche giocare con le opzioni
di offuscamento e codifica.
Ho impostato entrambi su false,
perché in pratica ciò
che faranno, offuscheranno il codice e lo codificheranno.
Ma ho notato che alcuni browser come Firefox bloccheranno
il codice offuscato o codificato.
Ecco perché ho impostato entrambi su false in
modo che il codice rimanga così com'è.
Qui nel payload, puoi impostare qualsiasi altro codice
JavaScript che vuoi iniettare,
lascialo lo stesso, parleremo dell'iniezione JavaScript in una lezione futura.
Infine, vuoi assicurarti che i domini di
spoofing DNS siano impostati esattamente come le sostituzioni qui.
Quindi copio letteralmente questa riga e la incollo qui.
Ora terrò tutto lo stesso, non
ho bisogno di modificarlo.
Ma come ho detto, se stai prendendo di mira siti
Web diversi o se desideri utilizzare sostituzioni diverse, ad esempio, se
desideri utilizzare un Twitter con una singola T e
mantenere questo . com, puoi farlo qui.
Se volessi usare un Facebook con una sola O, e
mantieni questo . com, di nuovo, invece di . mais,
puoi farlo qui.
Una volta fatto, assicurati di salvare e chiudere questo file.
E siamo pronti a sferrare l'attacco.
Quindi eseguire questo attacco sarà in realtà identico
a quello che abbiamo fatto
nella lezione precedente, devi solo assicurarti di modificare correttamente questo file.
Quindi tornando a bettercap, pulirò lo schermo, eseguirò bettercap
con lo stesso comando, caricando questo
caplet di prova.
Quindi possiamo eseguire tutti i comandi di spoofing
AARP ed eseguire lo sniffer automaticamente.
E perfetto, come puoi vedere tutto
funziona come previsto senza errori.
Se lo esegui e
ricevi un errore, esci ed esegui nuovamente bettercap.
Successivamente, vogliamo eseguire il distico, il caplet di hijack HSTS, esattamente come
mostrato nella lezione precedente, tutto
ciò che dobbiamo fare è digitare HS tab,
si completerà automaticamente per noi e premere invio per eseguirlo.
Ancora una volta, poiché non
puoi vedere errori, tutto funziona come previsto.
Andiamo alla macchina
bersaglio e vediamo come funzionerà.
Quindi ho la mia macchina Windows proprio qui.
Questo è Chrome, l'ultima versione.
E prima di fare qualsiasi cosa, come
ho detto, è una buona idea rimuovere sempre e solo i dati di navigazione.
E prima di caricare effettivamente qualsiasi sito
Web, è molto importante capire che anche con tutto ciò che
stiamo facendo in questo momento, se provi ad andare su
Facebook e digita . com alla fine qui, non
funzionerà, quello che stiamo facendo in questo momento non funzionerà.
Perché Chrome proprio qui ha un elenco memorizzato su questo computer che
dice di non caricare Facebook. com a meno che
non sia caricato su HTTPS.
Quindi, se lo dici a Facebook proprio qui in
questo modo, non funzionerà.
L'unico modo per farlo è se l'utente accede prima al
motore di ricerca, ad esempio Google. cioè per l'Irlanda.
E poi in Google, come puoi vedere, Google non usa HSTS.
Quindi lo evitiamo usando il normale bypass HTTPS.
E poi se l'utente qui cerca il suo sito web
di destinazione, ad esempio
Facebook, il nostro script verrà eseguito in background.
E sostituirà tutti i link in questa pagina
per Facebook. com con facebook. Mais.
Quindi, se passo il mouse sopra questo, vedrai nella
barra di stato, il sito web
che verrà caricato è Facebook. mais, non
facebook. com.
Questo va bene qui, dice ancora facebook. com.
Ma solo nel codice HTML della
pagina facebook. com è stato sostituito con facebook. Mais.
Quindi, se clicco su questo link, di nuovo, come puoi vedere,
otteniamo una normale pagina Facebook.
Ma se guardi qui in alto, vedrai che non c'è HTTPS.
E se guardi il nome di dominio, vedrai
che dice . mais no. com.
Ancora una volta, come ho detto, puoi effettivamente tenere questo . com e usa
Facebook con una O o puoi aggiungere una O in
più, puoi essere creativo quanto vuoi con questo.
Questo è solo un esempio che ti do.
Ora, una volta che siamo qui, possiamo accedere normalmente con il
mio nome utente, quindi z@zsecurity. org e inserisci la mia password 1234567890.
Premi invio e, se torniamo indietro, scorri verso l'alto.
Perfetto, come puoi vedere, abbiamo
i nomi utente, z@zsecurity. org e la password fino
a nove zero.
Ora, come ho detto, l'unico modo per farlo
funzionare è se l'utente accede a Facebook tramite un altro
sito Web che non utilizza HSTS.
Se vanno sulla barra degli URL e digita facebook. com stessi, non saremo in
grado di farlo, ecco perché
questa è considerata una soluzione parziale e non
una soluzione completa.