Es gibt keine Möglichkeit, die Schnittstelle nach dem Beenden im Überwachungsmodus zu belassen.
Während dies die meiste Zeit gilt, wenn wir laufen (auf El Capitan):
# sudo tcpdump -p -I -i enX -y IEEE802_11
Die Schnittstelle kann nach dem Beenden von tcpdump im Überwachungsmodus hängen bleiben (wo X
sich eine drahtlose Netzwerkkarte befindet, die den Überwachungsmodus unterstützt). Beachten Sie, dass ich "darf" sage. Es ist kein Fehler. Einige Male kehrte es in den normalen Modus zurück. Meistens nicht.
Das Ausführen dieses Befehls hat das Problem behoben (das ist meine Antwort auf Ihre Frage):
# sudo tcpdump -I -i enX -p
Dies ließ uns glauben, dass etwas mit tcpdump oder Mac OS X und der Art und Weise, wie sie miteinander kommunizieren, nicht stimmt (das Problem könnte auch bei libpcap liegen, das dazwischen liegt).
Wir fuhren fort, den Quellcode von libpcap zu lesen, und fanden mehrere wertvolle Juwelen für die Freude am Monitor-Modus unter Mac OS X, die uns wiederum auf die Tatsache hinwiesen, dass die Auswahl eines bestimmten DLT-Modus (unter Verwendung des Flags -y auf tcpdump) zu einem Erfolg führen würde veranlasst Mac OS X, die Benutzeroberfläche in den Überwachungsmodus zu versetzen (ohne zusätzliche Arbeit von libpcap). Im Gegensatz zu anderen Systemen scheint bei libpcap unter Mac OS X keine spezielle Bereinigung des Monitormodus-Status zu erfolgen.
In unserem Fall ist es unbedingt erforderlich, dass wir 802.11-Verwaltungsrahmen (Prüfanforderungen) abrufen können, während die Basisstationszuordnung und -konnektivität erhalten bleiben.
Am Ende haben wir ein Programm erstellt, das direkt mit libpcap verbunden ist und einfach nach dem Überwachungsmodus pcap_set_rfmon(pcap, 1)
(ohne Auswahl eines DLT-Modus) gefragt hat, bevor die Erfassung auf der Schnittstelle aktiviert wurde. Beim Beenden schließt das Programm einfach den Erfassungspunkt und alles kehrt zum Normalzustand zurück (Auge von Sauron verschwindet) und die Netzwerkkarte ist immer noch mit dem Netzwerk verbunden. Der Internetzugang funktioniert während der Ausführung.