
Ferramenta de Red Team para exfiltração encoberta de arquivos via transmissão de áudio Bluetooth, codificando dados binários em sinais FLAC para contornar sistemas de segurança EDR, XDR e DLP.
Prevenção de Vazamento de Dados via Alto-falante Bluetooth
DLPwn é uma ferramenta de Red Team projetada para exfiltração de arquivos, contornando sistemas de segurança como EDR (Endpoint Detection and Response), XDR (Extended Detection and Response), DLP (Data Loss Prevention) e, de forma mais ampla, qualquer sistema de informação isolado (air-gapped). Ela utiliza transmissão de áudio Bluetooth para codificar arquivos arbitrários em sinais de áudio FLAC, transmiti-los e decodificá-los na outra ponta, explorando o fato de que os controles de segurança de áudio são frequentemente menos rigorosos do que os de rede ou arquivos.
O DLPwn opera em três etapas principais:
Essa abordagem permite a exfiltração de dados confidenciais sem disparar alertas de sistemas de segurança que monitoram conexões de rede, gravações em disco ou processos suspeitos.
O DLPwn usa um protocolo de transmissão de áudio baseado em:
Cada arquivo é fragmentado em quadros de até 212 bytes, com um quadro de metadados contendo o nome do arquivo.
O DLPwn inclui um sistema de métricas de QoS para avaliar a qualidade da transmissão:
Isso permite otimizar os parâmetros de transmissão (taxa de baud, número de tons) com base nas condições de áudio.
pip install -r requirements.txt
python main.py encode myfile.bin --output transmission.flac
Reproduza o FLAC em um alto-falante Bluetooth e, em seguida, capture em outra máquina:
python main.py bluetooth --filename capture.flac
Nota: Configuração Bluetooth (apenas Linux)
O comando bluetooth funciona apenas em sistemas Linux que utilizam PulseAudio ou PipeWire para captura de áudio Bluetooth. Para que o PC seja reconhecido como um fone de ouvido Bluetooth pelo dispositivo de origem:
Instale o bluetoothctl se necessário:
sudo apt install bluez-tools
Inicie o bluetoothctl e configure o ClassID para simular um fone de ouvido de áudio:
bluetoothctl
> power on
> discoverable on
> pairable on
> class 0x240404 # Classe para fone de ouvido estéreo
> quit
Isso permite que o dispositivo de origem (celular, PC) se conecte ao PC como um fone de ouvido Bluetooth, possibilitando a captura de áudio via PulseAudio.
Ou para captura ao vivo:
python main.py decode --loopback --duration 35 --output recovered.bin
python main.py decode --input capture.flac --output recovered.bin
Para reproduzir, capturar e decodificar em um único comando:
python main.py stream transmission.flac --output recovered.bin
--baud: Taxa de símbolos (padrão 1500).--m: Número de tons FSK (2, 4 ou 8).--rs-nsym: Bytes de paridade RS (padrão 32).--f0, --f1: Frequências base.Para analisar um arquivo de transmissão:
python diagnose.py transmission.flac
Em um cenário de Red Team, o DLPwn permite:
Aviso: Use apenas em ambientes autorizados. A transmissão de áudio pode ser detectada por câmeras ou microfones ao redor.