Kursleiter: In der
vorherigen Vorlesung haben wir gesehen, wie HTTPS-Websites auf HTTP herabgestuft werden.
Und so konnten wir im Grunde alles sehen, was ein Benutzer auf
diesen Websites tut, da Daten in HTTP
im Klartext gesendet werden.
Daher konnten wir die Benutzernamen, die
Passwörter, die URLs und alles, was sie auf HTTPS-Websites tun, sehen.
Am Ende des Vortrags habe ich Ihnen
auch gezeigt, dass die Methode nicht gegen Facebook, Twitter und andere
Websites funktioniert, die HSTS verwenden.
Der Grund, warum es gegen diese Websites
nicht funktioniert, da moderne Webbrowser eine Liste von Websites enthalten, die
sie nur über HTTPS laden sollten.
Sehen Sie, was wir in der vorherigen Vorlesung gemacht haben.
Immer wenn ein Browser eine Website anfordert, laden wir diese Website,
auch wenn sie HTTPS verwendet,
wobei wir ihm immer die HTTP-Version zurückgeben.
Bei HSTS weiß der Browser, dass diese Website
beispielsweise Facebook ist. com, sollte immer über HTTPS geladen werden.
Auch bevor diese Anfrage an uns gesendet wird,
wird sie immer in HTTPS gesendet.
Und es wird immer nur akzeptiert, wenn es als HTTPS zurückkommt.
Es gibt also nichts, was wir wirklich tun können, wenn wir
einmal der Mann in der Mitte sind.
Da der Browser diese Prüfung lokal durchführt, vergleicht
er dies mit einer Liste, die auf dem
Computer selbst gespeichert ist.
Daher besteht derzeit die einzige praktische Lösung zur
Umgehung von HSTS darin, den Browser glauben zu lassen, dass
er eine andere Website lädt.
Um dies zu tun, werden wir alle HSTS-Links in geladenen
Seiten durch ähnliche Links ersetzen, aber es
handelt sich nicht um dieselben Links.
Beispielsweise können wir Facebook ersetzen. com mit Facebook. Mais.
Nun, ich weiß, dass dies sehr verdächtig erscheint, aber
vertrauen Sie mir, wenn es in die URL-Leiste, die
RN hier in der Mitte, eingeht, wird es dem M-Buchstaben
sehr ähnlich sein.
Eine andere Möglichkeit, dies zu tun, können Sie Twitter ersetzen. com
mit Twitter. com, aber hier mit einem einfachen T
statt einem doppelten T.
Ich weiß, das klingt jetzt ein bisschen verwirrend,
aber lass es mich praktisch machen und du
wirst sehen, wie das funktionieren wird.
Hier habe ich also meine Kali-Maschine.
Und wir werden tatsächlich das HSTS-Caplet verwenden, das wir in
der vorherigen Vorlesung verwendet haben.
Wie im vorherigen Vortrag
erwähnt, ist dieses Caplet bereits im benutzerdefinierten Kali installiert.
Wenn Sie es mit dem Original-Kali verwenden
möchten, müssen Sie
es manuell herunterladen und im
richtigen Pfad platzieren, in user, local, share , Bettercap, Kapseln.
Ich habe das Caplet hier.
Wie ich schon sagte, dies ist
bereits das richtige, da ich das benutzerdefinierte Kali verwende.
Wenn wir hineingehen, haben wir eine Datei namens hstshijack. Deckel.
Dies ist die Konfigurationsdatei des Couplets.
Also klicke ich mit der
rechten Maustaste darauf, ich werde es mit einer anderen
Anwendung öffnen, ich werde auf Alle Anwendungen anzeigen klicken.
Und Sie möchten einen beliebigen Texteditor auswählen, den Sie haben.
Also behalte ich das bei Leafpad.
Sie müssen vielleicht nach unten scrollen, um
es zu finden, aber ich habe es hier, ich werde es auswählen.
Und wie Sie sehen, haben wir eine normale Textdatei
mit allen Konfigurationen, die wir einstellen können.
Und das habe ich bereits für Sie vorkonfiguriert.
Die wichtigsten Dinge, die Sie verstehen und möglicherweise ändern
möchten, sind die Ziele und die Ersetzungen.
Die Ziele sind also die Domänen, die HSTS verwenden,
die Sie ersetzen möchten.
Ich habe zum Beispiel Twitter. com hier rein, und ich
habe auch Stern. twittern. com.
Grundsätzlich ist dies ein Platzhalter, wenn Sie einen Stern verwenden.
Und es bedeutet im Grunde jede Subdomain. twittern. com ist
auch ein Ziel.
Und der Ersatz, Sie möchten dem Programm mitteilen,
womit dieses Ziel ersetzt werden soll.
Zum Beispiel, wenn wir Twitter sehen. com, wir werden
es durch Twitter ersetzen. Mais.
Ähnliches gilt für Facebook und Apple und einige
andere Domains, die ich sagte.
Sie können auch mit den Verschleierungs-
und Kodierungsoptionen herumspielen.
Ich habe beide auf false
gesetzt, weil sie im
Grunde genommen den Code verschleiern und kodieren.
Aber ich habe bemerkt, dass einige Browser wie Firefox
verschleierten oder codierten Code blockieren.
Deshalb habe ich beide auf false gesetzt, damit
der Code so bleibt, wie er ist.
Hier in der Nutzlast können Sie jeden anderen JavaScript-Code
festlegen, den Sie einschleusen möchten. Lassen
Sie dies gleich, wir werden in einem zukünftigen Vortrag über JavaScript-Injektion sprechen.
Schließlich möchten Sie sicherstellen, dass die
DNS-Spoof-Domains genau so eingestellt sind wie die Ersetzungen hier.
Also kopiere ich diese Zeile buchstäblich und füge sie hier ein.
Jetzt werde ich das alles gleich lassen,
ich muss nichts davon ändern.
Aber wie gesagt, wenn Sie auf verschiedene Websites abzielen
oder verschiedene Ersetzungen verwenden möchten, z. B. wenn Sie
ein Twitter mit einem einzigen T verwenden und
dieses beibehalten möchten. com, das kannst du hier machen.
Wenn Sie ein Facebook mit einem einzigen O verwenden wollten, und behalten
Sie diese . com, wieder anstelle von . Mais, das
können Sie hier tun.
Wenn Sie fertig sind, stellen Sie sicher, dass Sie diese Datei speichern und beenden.
Und wir sind bereit, den Angriff durchzuführen.
Die Ausführung dieses Angriffs ist also
tatsächlich identisch mit dem,
was wir in der vorherigen Vorlesung gemacht haben.
Zurück zu bettercap, lösche ich den Bildschirm, führe bettercap
mit dem gleichen Befehl aus und
lade dieses Proof-Caplet.
So können wir alle AARP-Spoofing-Befehle ausführen
und den Sniffer automatisch ausführen.
Und perfekt, wie Sie sehen, läuft
alles wie erwartet ohne Fehler.
Wenn Sie dies ausführen und einen Fehler
erhalten, beenden Sie einfach und führen Sie bettercap erneut aus.
Als nächstes wollen wir das Couplet, das HSTS-Hijack-Caplet, ausführen, genau wie in der
vorherigen Vorlesung gezeigt. Alles, was wir
tun müssen, ist HS tab einzugeben, es wird
automatisch für uns vervollständigt und drücken die Eingabetaste, um es auszuführen.
Auch hier sehen Sie keine
Fehler, sodass alles wie erwartet funktioniert.
Gehen wir zum
Zielcomputer und sehen, wie das funktioniert.
Ich habe also meinen Windows-Rechner hier.
Dies ist Chrome, die neueste Version.
Und bevor ich etwas tue, ist
es, wie gesagt, eine gute Idee, immer nur die Browserdaten zu entfernen.
Und bevor ich tatsächlich eine Website
lade, ist es sehr wichtig zu verstehen, dass Sie trotz
allem, was wir gerade tun, versuchen, zu Facebook zu
gehen und . com am Ende hier, es
wird nicht funktionieren, was wir gerade tun, wird nicht funktionieren.
Denn Chrome hat hier eine Liste, die auf diesem Computer gespeichert ist und die
besagt, dass Facebook nicht geladen wird. com, es sei denn,
es wird über HTTPS geladen.
Wenn Sie Facebook also gleich hier so mitteilen,
wird es nicht funktionieren.
Dies können wir nur tun, wenn der Benutzer zuerst zu
einer Suchmaschine geht, beispielsweise Google. dh für Irland.
Und dann verwendet Google in Google, wie Sie sehen können, kein HSTS.
Also umgehen wir dies mit dem normalen HTTPS-Bypass.
Und wenn der Benutzer hier nach seiner Zielwebsite
sucht, zum Beispiel Facebook,
dann wird unser Skript im Hintergrund ausgeführt.
Und es wird alle Links auf dieser Seite
für Facebook ersetzen. com mit Facebook. Mais.
Wenn ich also mit der Maus darüber fahre, sehen
Sie in der Statusleiste, dass die Website,
die geladen wird, Facebook ist. Mais, nicht
Facebook. com.
Das ist hier in Ordnung, es sagt immer noch Facebook. com.
Aber nur im Code der
HTML-Seite facebook. com wurde durch Facebook ersetzt. Mais.
Wenn ich also wieder auf diesen Link klicke, erhalten wir, wie Sie
sehen können, eine normale Facebook-Seite.
Aber wenn Sie hier oben nachsehen, werden Sie feststellen, dass es kein HTTPS gibt.
Und wenn Sie sich den Domainnamen ansehen, sehen
Sie, dass . Mais nicht. com.
Wie gesagt, Sie können dies tatsächlich behalten. com und nutze
Facebook mit einem O oder du kannst ein zusätzliches O hinzufügen,
du kannst damit so kreativ sein, wie du willst.
Dies ist nur ein Beispiel, das ich Ihnen gebe.
Sobald wir hier sind, können wir uns normal mit
meinem Benutzernamen einloggen, also z@zsecurity. org und geben Sie mein Passwort 1234567890 ein.
Drücken Sie die Eingabetaste, und wenn wir zurückgehen, scrollen Sie nach oben.
Perfekt, wie Sie sehen können, haben
wir die Benutzernamen, z@zsecurity. org und das Passwort bis
zu neun null.
Wie ich bereits sagte, funktioniert dies nur,
wenn der Benutzer über eine andere Website zu Facebook
gelangt, die kein HSTS verwendet.
Wenn sie in die URL-Leiste gehen und facebook eingeben. com selbst, werden wir
dies nicht können, deshalb
wird dies als Teillösung und nicht als
Gesamtlösung betrachtet.