2 Stimmen

Wireshark Erfassungsfilter für ein bestimmtes Netzwerk (BSSID)

Ich würde gerne wissen, wie man Pakete eines bestimmten drahtlosen Netzwerks mit Wireshark erfassen kann.

Ich bin bereits in der Lage, alle Pakete verschiedener Netzwerke zu erfassen, indem ich meine drahtlose Karte im Monitor-Modus einstelle, aber für eine spezifische Analyse muss ich alle Pakete verwerfen, die nicht mit meinem Netzwerk verbunden sind, während des Erfassungsvorgangs.

Ich weiß, dass es Anzeigefilter gibt, um das zu tun, aber ich muss sie im Voraus filtern (wie mit Erfassungsfiltern).

Wenn ich zu CAPTURE->OPTIONS gehe, kann ich Erfassungsfilter einstellen, aber ich kenne den genauen Filter nicht, weil sie sich von Anzeigefiltern unterscheiden, tatsächlich funktioniert wlan.bssid==xx:xx:xx:xx:xx:xx nicht.

Irgendwelche Vorschläge?

Vielen Dank

3voto

Sie könnten einen Index ab dem Start des WLAN-Pakets verwenden. Es braucht etwas Überredungskunst, aber das BSSID-Feld befindet sich an einer festen, vorhersehbaren Position. Durch Verwendung von Klammern sollten Sie in der Lage sein, die richtigen Positionen im Paket zu referenzieren.

Das BSSID befindet sich an Position 16, also wenn Sie etwas ähnliches emulieren möchten:

wlan.bssid=12:34:56:78:9a:bc

müssten Sie etwas wie folgt tun:

wlan[16:4] == 0x12345678 und wlan[20:2] == 0x9abc 

Sie müssen die ersten 4 Oktette in ein int32 und die letzten 2 in ein int16 konvertieren und 2 Klauseln verwenden, da BPF keine 6-Byte-Nummer ausdrücken kann, aber ich habe es verwendet und es funktioniert gut. Dies kann auch für andere Zwecke angepasst werden (Sie benötigen nur den Offset).

0voto

dturvene Punkte 2050

Ausgezeichnete Frage und etwas, das ich auch versucht habe herauszufinden.

Die kurze Antwort lautet, dass die Wireshark-Tools nicht nach BSSID filtern können. Wireshark verwendet pcap, das den Kernel-Linux-Socker-Filter (basierend auf BPF) über das ioctl SO_ATTACH_FILTER verwendet. Es gibt keinen BPF-Filter für BSSID.

Ein anderes Tool, airodump-ng, KANN nach BSSID erfassen, weil es alle 802.11-Frames in den Benutzerbereich weiterleitet und Frames dort dekodiert/filtert. Es funktioniert erstaunlich gut, wenn man bedenkt, dass die Verarbeitung im Benutzerbereich erfolgt.

Aber selbst ein geringfügiges 80211-Netzwerk ist ziemlich laut. Zum Beispiel erfasst mein SOHO in weniger als zwei Minuten 11K Frames; und ich lasse immer noch Frames fallen. Wenn ich alle 80211-Frames für die fünf sichtbaren (aber kleinen!) BSSIDs in meiner Nähe aufzeichne, erhalte ich 141K Frames (104MB) in knapp unter drei Minuten.

Ich plane, einen eingebetteten Frame-Sniffer/Injektor mit EMMC- oder SD-Flash zu erstellen, daher muss ich vorsichtig sein, was die Grenzen angeht.

Also versuche ich, einen benutzerdefinierten BDF-Filter zu schreiben, um nur die lokalen BSSID-Frames zu filtern. Und ich hoffe, ihn so zu erweitern, dass eine große Anzahl der "lauten" Frames verworfen wird - die meisten der Steuer- und Management-Frames können gefiltert werden. Die BSSID-Adressposition im Frame basiert auf den ToDS- und FromDS-Steuerbits.

Wie auch immer, ich hoffe, dass ich ein paar Hinweise zur Lösung gegeben habe. Es könnte sein, dass eine airodump-Benutzerbereichslösung am einfachsten ist.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X