
Outil Red Team pour l'exfiltration furtive de fichiers via transmission audio Bluetooth, encodant des données binaires dans des signaux FLAC pour contourner les systèmes de sécurité EDR, XDR et DLP.
Data Leak Prevention via Bluetooth Speaker
DLPwn est un outil Red Team conçu pour l'exfiltration de fichiers contournant les systèmes de sécurité tels que l'EDR (Endpoint Detection and Response), le XDR (Extended Detection and Response), la DLP (Data Loss Prevention) et plus largement tout système d'information cloisonné (air-gapped). Il utilise la transmission audio Bluetooth pour encoder des fichiers arbitraires en signaux audio FLAC, les transmettre et les décoder à l'autre extrémité, exploitant le fait que les contrôles de sécurité audio sont souvent moins stricts que ceux sur les réseaux ou les fichiers.
DLPwn opère en trois étapes principales :
Cette approche permet d'exfiltrer des données sensibles sans déclencher d'alertes des systèmes de sécurité qui surveillent les connexions réseau, les écritures disque ou les processus suspects.
DLPwn utilise un protocole de transmission audio basé sur :
Chaque fichier est fragmenté en trames de 212 octets maximum, avec une trame de métadonnées contenant le nom du fichier.
DLPwn intègre un système de métriques QoS pour évaluer la qualité de transmission :
Cela permet d'optimiser les paramètres de transmission (débit en bauds, nombre de tonalités) en fonction des conditions audio.
pip install -r requirements.txt
python main.py encode myfile.bin --output transmission.flac
Lisez le FLAC sur une enceinte Bluetooth, puis capturez-le sur une autre machine :
python main.py bluetooth --filename capture.flac
Remarque : Configuration Bluetooth (Linux uniquement)
La commande bluetooth ne fonctionne que sur les systèmes Linux utilisant PulseAudio ou PipeWire pour la capture audio Bluetooth. Pour que le PC soit reconnu comme un casque Bluetooth par l'appareil source :
Installez bluetoothctl si nécessaire :
sudo apt install bluez-tools
Lancez bluetoothctl et configurez le ClassID pour imiter un casque audio :
bluetoothctl
> power on
> discoverable on
> pairable on
> class 0x240404 # Class for stereo audio headset
> quit
Cela permet à l'appareil source (téléphone, PC) de se connecter au PC comme un casque Bluetooth, permettant la capture audio via PulseAudio.
Ou pour une capture en direct :
python main.py decode --loopback --duration 35 --output recovered.bin
python main.py decode --input capture.flac --output recovered.bin
Pour lire, capturer et décoder en une seule commande :
python main.py stream transmission.flac --output recovered.bin
--baud : Débit en symboles (par défaut 1500).--m : Nombre de tonalités FSK (2, 4 ou 8).--rs-nsym : Octets de parité RS (par défaut 32).--f0, --f1 : Fréquences de base.Pour analyser un fichier de transmission :
python diagnose.py transmission.flac
Dans un scénario Red Team, DLPwn permet :
Avertissement : Utiliser uniquement dans des environnements autorisés. La transmission audio peut être détectée par les caméras ou microphones environnants.