gryfman/DLPwn

GitHub: gryfman/DLPwn

DLPwn 是一款基于蓝牙音频传输的文件外传 Red Team 工具,解决在受监控或隔离环境中隐蔽绕过 DLP/EDR 的数据泄露防护问题。

Stars: 16 | Forks: 2

# DLPwn **通过蓝牙音箱进行数据泄露防护测试** DLPwn 是一款用于文件外传的 Red Team 工具,旨在绕过 EDR(终端检测与响应)、XDR(扩展检测与响应)、DLP(数据丢失防护)等安全系统,或更广义上任何物理隔离的信息系统。它使用蓝牙音频传输将任意文件编码为 FLAC 音频信号进行传输,并在另一端解码,利用了音频安全控制通常比网络或文件层面更宽松的现实。 ## 工作原理 DLPwn 的操作分为三个主要步骤: 1. **编码**:将二进制文件转换为调制音频信号。 2. **捕获**:通过蓝牙接收传输的音频信号。 3. **解码**:从捕获的信号中重建原始文件。 这种方法可以在不触发监控网络连接、磁盘写入或可疑进程的安全系统的情况下进行数据外传。 ## 使用的协议 DLPwn 基于以下音频传输协议: - **FSK 调制(频移键控)**:采用连续相位频移键控(CPFSK)。默认使用 8-FSK,8 个音调(900 Hz 到 5100 Hz),每个符号传输 3 位,速率为 1500 符号/秒,有效比特率为 4500 比特/秒。 - **Reed-Solomon 纠错**:每个 223 字节块添加 32 字节校验码,可纠正最多 16 个错误。 - **CRC-32 校验和**:用于负载完整性验证。 - **帧结构**: - 前导码(3 秒交替位)用于同步。 - 同步字(8 字节 = 64 位)。 - RS 编码后的负载。 - 后导码(1 秒交替位)用于避免蓝牙截断。 每个文件被分割为最大 212 字节的帧,并包含一个带有文件名的元数据帧。 ## QoS(服务质量)机制 DLPwn 包含一套 QoS 指标系统,用于评估传输质量: - **帧丢失率**:丢失或无法纠正的帧百分比。 - **纠错率**:被 Reed-Solomon 纠正的帧。 - **BER(比特错误率)**:估算的比特错误率。 - **详细报告**:关于错误、纠正和丢失的完整统计。 这允许根据音频条件优化传输参数(如波特率、音调数量)。 ## 安装 ``` pip install -r requirements.txt ``` ## 使用 ### 第一步:编码文件 ``` python main.py encode myfile.bin --output transmission.flac ``` ### 第二步:捕获音频(目标机器) 在蓝牙音箱上播放 FLAC 文件,然后在另一台机器上捕获: ``` python main.py bluetooth --filename capture.flac ``` **注意:蓝牙配置(仅限 Linux)** `bluetooth` 命令仅在 Linux 系统上有效,且需使用 PulseAudio 或 PipeWire 进行蓝牙音频捕获。要让目标设备将本机识别为蓝牙耳机: 1. 如需安装 `bluetoothctl`: sudo apt install bluez-tools 2. 启动 `bluetoothctl` 并配置设备类以模拟立体声耳机: bluetoothctl > power on > discoverable on > pairable on > class 0x240404 # 立体声耳机设备类 > quit 这允许源设备(手机或 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 可用于: - 无网络连接的数据外传。 - 绕过阻止上传的 DLP 系统。 - 逃避监控网络进程的 EDR。 - 通过无监督音频通道传输。 **警告**:仅应在授权环境中使用。音频传输可能被周围摄像头或麦克风检测到。 ## 依赖项 - numpy, scipy, soundfile, sounddevice, reedsolo, tqdm ## 作者 - Noé Susset - Yassine Damiri
标签:Air-gapped, CPFSK, CRC-32, DLP, EDR绕过, FLAC音频, FSK调制, Reed-Solomon纠错, XDR绕过, 代码生成, 信息隐蔽, 域名侦查, 安全规避, 数据泄露防护, 文件外传, 无网络外联, 渗透测试工具, 端点安全绕过, 网络探测, 蓝牙外设, 蓝牙音频传输, 逆向工具, 隐蔽通道, 音频隐写, 高交互蜜罐