
블루투스 오디오 전송을 통해 은밀한 파일 유출을 수행하는 레드팀 도구로, 바이너리 데이터를 FLAC 신호로 인코딩하여 EDR, XDR 및 DLP 보안 시스템을 우회합니다.
블루투스 스피커를 통한 데이터 유출 방지
DLPwn은 EDR(엔드포인트 탐지 및 대응), XDR(확장 탐지 및 대응), DLP(데이터 유출 방지)와 같은 보안 시스템과 더 넓게는 모든 에어갭 정보 시스템을 우회하기 위해 설계된 레드팀 도구입니다. 블루투스 오디오 전송을 사용하여 임의의 파일을 FLAC 오디오 신호로 인코딩하고 전송한 후 수신 측에서 디코딩하며, 오디오 보안 제어가 네트워크나 파일에 비해 덜 엄격한 경우가 많다는 점을 이용합니다.
DLPwn은 세 가지 주요 단계로 작동합니다:
이 접근 방식은 네트워크 연결, 디스크 쓰기 또는 의심스러운 프로세스를 모니터링하는 보안 시스템의 경고를 트리거하지 않고 민감한 데이터를 유출할 수 있습니다.
DLPwn은 다음을 기반으로 하는 오디오 전송 프로토콜을 사용합니다:
각 파일은 최대 212바이트의 프레임으로 분할되며, 파일 이름을 포함하는 메타데이터 프레임이 있습니다.
DLPwn은 전송 품질을 평가하는 QoS 메트릭 시스템을 포함합니다:
이를 통해 오디오 상태에 따라 전송 매개변수(보율, 톤 수)를 최적화할 수 있습니다.
pip install -r requirements.txt
python main.py encode myfile.bin --output transmission.flac
블루투스 스피커로 FLAC을 재생한 후 다른 머신에서 캡처합니다:
python main.py bluetooth --filename capture.flac
참고: 블루투스 구성(Linux 전용)
bluetooth 명령은 PulseAudio 또는 PipeWire를 사용하여 블루투스 오디오를 캡처하는 Linux 시스템에서만 작동합니다. PC가 소스 장치에 블루투스 헤드셋으로 인식되도록 하려면:
필요한 경우 bluetoothctl 설치:
sudo apt install bluez-tools
bluetoothctl을 실행하고 오디오 헤드셋을 모방하도록 ClassID를 구성합니다:
bluetoothctl
> power on
> discoverable on
> pairable on
> class 0x240404 # 스테레오 오디오 헤드셋용 클래스
> quit
이렇게 하면 소스 장치(휴대폰, PC)가 PC를 블루투스 헤드셋으로 연결하여 PulseAudio를 통한 오디오 캡처가 가능합니다.
또는 실시간 캡처의 경우:
python main.py decode --loopback --duration 35 --output recovered.bin
python main.py decode --input capture.flac --output recovered.bin
재생, 캡처 및 디코딩을 하나의 명령으로 수행하려면:
python main.py stream transmission.flac --output recovered.bin
--baud: 심볼 속도(기본값 1500).--m: FSK 톤 수(2, 4 또는 8).--rs-nsym: RS 패리티 바이트 수(기본값 32).--f0, --f1: 기본 주파수.전송 파일을 분석하려면:
python diagnose.py transmission.flac
레드팀 시나리오에서 DLPwn을 사용하면 다음이 가능합니다:
경고: 승인된 환경에서만 사용하십시오. 오디오 전송은 주변 카메라나 마이크에 의해 감지될 수 있습니다.