
Red Team-Tool zur verdeckten Datei-Exfiltration über Bluetooth-Audioübertragung, das Binärdaten in FLAC-Signale codiert, um EDR-, XDR- und DLP-Sicherheitssysteme zu umgehen.
Data Leak Prevention via Bluetooth Speaker
DLPwn ist ein Red-Team-Tool, das für die Dateiexfiltration entwickelt wurde, um Sicherheitssysteme wie EDR (Endpoint Detection and Response), XDR (Extended Detection and Response), DLP (Data Loss Prevention) und allgemein alle luftspaltend (air-gapped) betriebenen Informationssysteme zu umgehen. Es nutzt Bluetooth-Audio-Übertragung, um beliebige Dateien in FLAC-Audiosignale zu kodieren, zu übertragen und auf der anderen Seite zu dekodieren, indem es ausnutzt, dass Audio-Sicherheitskontrollen oft weniger streng sind als die von Netzwerken oder Dateien.
DLPwn arbeitet in drei Hauptschritten:
Dieser Ansatz ermöglicht die Exfiltration sensibler Daten, ohne Alarme von Sicherheitssystemen auszulösen, die Netzwerkverbindungen, Datenträgerzugriffe oder verdächtige Prozesse überwachen.
DLPwn verwendet ein Audio-Übertragungsprotokoll, das auf folgenden Komponenten basiert:
Jede Datei wird in Rahmen von bis zu 212 Bytes fragmentiert, wobei ein Metadatenrahmen den Dateinamen enthält.
DLPwn enthält ein QoS-Metriksystem zur Bewertung der Übertragungsqualität:
Dies ermöglicht die Optimierung der Übertragungsparameter (Baudrate, Anzahl der Töne) basierend auf den Audiobedingungen.
pip install -r requirements.txt
python main.py encode myfile.bin --output transmission.flac
Spielen Sie die FLAC-Datei über einen Bluetooth-Lautsprecher ab und erfassen Sie sie dann auf einem anderen Rechner:
python main.py bluetooth --filename capture.flac
Hinweis: Bluetooth-Konfiguration (nur Linux)
Der Befehl bluetooth funktioniert nur auf Linux-Systemen mit PulseAudio oder PipeWire zur Bluetooth-Audioerfassung. Damit der PC vom Quellgerät als Bluetooth-Headset erkannt wird:
Installieren Sie bei Bedarf bluetoothctl:
sudo apt install bluez-tools
Starten Sie bluetoothctl und konfigurieren Sie die ClassID, um ein Audio-Headset zu imitieren:
bluetoothctl
> power on
> discoverable on
> pairable on
> class 0x240404 # Klasse für Stereo-Audio-Headset
> quit
Dies ermöglicht es dem Quellgerät (Telefon, PC), sich als Bluetooth-Headset mit dem PC zu verbinden, und erlaubt die Audioerfassung über PulseAudio.
Oder für Live-Erfassung:
python main.py decode --loopback --duration 35 --output recovered.bin
python main.py decode --input capture.flac --output recovered.bin
Zum Abspielen, Erfassen und Dekodieren in einem Befehl:
python main.py stream transmission.flac --output recovered.bin
--baud: Symbolrate (Standard 1500).--m: Anzahl der FSK-Töne (2, 4 oder 8).--rs-nsym: RS-Paritätsbytes (Standard 32).--f0, --f1: Basisfrequenzen.Um eine Übertragungsdatei zu analysieren:
python diagnose.py transmission.flac
In einem Red-Team-Szenario ermöglicht DLPwn:
Warnung: Nur in autorisierten Umgebungen verwenden. Audioübertragungen können durch umliegende Kameras oder Mikrofone erkannt werden.