Drahtlose Netzwerke sind überall: Zu Hause, im Café und in der Firma. Im Gegensatz zu Kabelnetzen verliert der Admin bei WLANs allerdings schnell die ... (mehr)

Man-in-the-Middle

Das nächste Skript soll auf Probe-Request-Pakete warten und mit einem gefälschten Probe-Response-Paket antworten, genauso als wäre es ein Accesspoint für dieses Netz. Anschließend wird der gesamte Anmelde-Prozess simuliert. Dadurch lenkt man Clients für beliebige Netze auf den eigenen Rechner um. Der Einfachheit halber verzichtet dieser Beitrag darauf, auch die nachfolgenden Data-Frames zu fälschen und er implementiert auch keinen DHCP-Server oder ähnliche Dienste.

Sollte die Attacke beim ersten Versuch nicht gelingen, kann das daran liegen, dass der Angreifer entweder zu weit vom Client entfernt ist oder der Traffic in der Umgebung zu hoch ist, sodass Scapy zu langsam antwortet. Letzteres lässt sich dadurch abmildern, dass das Programm mit dem Parameter »-s« gestartet wird, um es auf eine oder mehrere SSIDs zu beschränken. Zusätzlich kann man es mit dem Parameter »-a« auf einen Client festlegen.

In Listing 5 wird die Karte zuerst wieder in den Monitor-Modus geschaltet und der Netzwerkverkehr eingelesen. Dabei ruft das Skript für jedes Paket die Funktion »handle_packet()« auf und untersucht, um welche Art Paket es sich handelt. War es ein Probe-Request, sendet das Skript mithilfe der Funktion »send_probe_response« ein Probe-Response-Paket zurück.

Via Dot11Elt-Header werden Eigenschaften wie die SSID, die zur Verfügung stehenden Übertragungsraten ( »Rates« ), der Channel ( »DSset« ) und die erweiterten Übertragungsraten ( »ESRates« ) gesetzt. Die Übertragungsraten ermittelt das Skript vorher aus dem Probe-Request-Paket in der Funktion »get_rates()« . Findet es keine, gibt die Funktion zwei Standardwerte zurück, die für die Raten 1, 2, 5.5 und 11 MBit stehen. Weitere Elt-Header oder andere Übertragungsraten können am einfachsten mit Wireshark aus realem WLAN-Verkehr mitgelesen werden.

Hat die Funktion »handle_packet()« ein Authentication-Paket erhalten, kommt die Funktion »send_auth_response« zum Zug, die als Erstes überprüft, ob das Paket vom agierenden Skript selbst stammt. Die Authentication-Phase kennt nämlich keine unterschiedlichen Request- und Response-Pakete; sie unterscheiden sich nur in der Sequenznummer. Eins bedeutet Request, zwei steht für Response.

Bei einem eingelesenen Association-Request-Paket wird dagegen die Funktion »send_association_response()« bemüht. Sie erzeugt ein Association-Response-Paket und setzt die Übertragungsraten im Elt-Header.

Fazit

Schon dieser kleine Exkurs in die WiFi-Welt zeigt, dass es eine ganze Reihe Angriffspunkte auf WiFi-Verbindungen gibt, die ohne allzu großen Aufwand ausnutzbar sind. Eine Verbesserung brachte die 2009 verabschiedete Standarderweiterung 802.11w, die Protected Management Frames definiert und außerdem WPA2 mit AES voraussetzt. Angriffe wie die oben vorgestellte Deauth-Attacke sind damit nicht mehr möglich. Allerdings müssen sowohl Accesspoint wie Client diesen Standard unterstützen. Bis jetzt hat er sich nicht breit durchgesetzt.

Listing 5

Man-in-the-Middle

 

Der Autor

Bastian Ballmann arbeitet als System Engineer bei der Informatik-Support-Gruppe des Departments für Informatik der ETH Zürich. Er ist Autor des Buches "Network Hacks - Intensivkurs: Angriff und Verteidigung mit Python".

comments powered by Disqus
Mehr zum Thema

Pentesting mit Kali Linux

Jede IT-Infrastruktur bietet Angriffspunkte, die Hacker für Datendiebstahl und -manipulation nutzen können. Damit diese Lücken nicht von unliebsamen Zeitgenossen ausgenutzt werden, hilft nur eines: Sie müssen Hackern zuvorkommen, die Lücken identifizieren und schließen. Hierbei hilft Kali Linux.
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Ausgabe /2023