一个传真接管你的网络:含有传真功能的打印机漏洞分析
字数 2484 2025-08-22 12:22:24
传真协议漏洞分析与利用:Faxploit攻击技术详解
1. 传真协议安全研究背景
传真(FAX)作为一种传输静态图像的通信手段,尽管在现代通信技术如email、微信等普及后使用减少,但Google调查显示全球仍有超过3亿传真号码在使用。传真功能广泛集成于多功能打印机设备中,这些设备通常:
- 通过以太网、WiFi、Bluetooth连接到内部网络
- 通过PSTN电话线支持传真功能
- 成为企业网络中的潜在攻击入口
Check Point研究人员证实:仅通过发送恶意传真到目标号码,攻击者可以完全控制打印机并渗透其连接的网络。
2. 研究目标与攻击场景
攻击假设:攻击者在仅知道目标传真号码的情况下发起攻击
攻击流程:
- 发送恶意传真到目标号码
- 利用打印机漏洞获取完全控制权
- 通过打印机渗透内部网络
- 窃取数据并通过传真回传
研究人员将这种攻击命名为"Faxploit"。
3. 目标设备分析
3.1 打印机架构分析
- CPU架构:ARM 32bit (Big Endian模式)
- 内存模型:主CPU与MCU通过共享内存通信
- 操作系统:基于ThreadX的实时操作系统(Green Hills)
- 平坦内存模型(flat memory model)
- 多任务在kernel-mode运行
- 使用消息队列进行任务通信
- 无ASLR机制
3.2 逆向工程关键发现
- DSID值:用于T.30状态机任务的唯一ID,与"DSID_"前缀字符串关联
- 任务间通信:发现allocation/deallocation路径模式
- 函数指针表缺失:需要动态调试方法补充理解
4. 调试环境构建
4.1 串行调试接口
- 连接JTAGULATOR到打印机串行调试器
- 发现默认权限受限,需要漏洞提升权限
4.2 gSOAP调试漏洞利用(CVE-2017-9765)
- 漏洞名称:"Devil's Ivy"
- 触发方式:通过TCP 53048端口发送>2GB的XML文件
- 限制:
- 传输时间较长(约7分钟)
- 需要开发基于IDA的漏洞利用
- 利用特点:
- 触发基于栈的缓冲区溢出
- 字符限制:0x00-0x19不可打印,'?'(0x3F)受限
- 溢出长度无限制
4.3 缓存问题解决方案
由于嵌入式环境中的缓存问题(D-Cache与I-Cache分离),需要bootstrapping利用:
- 复制D-Cache到I-Cache的ROP链
- 解码加载调试器网络加载器的shellcode
- 通过网络发送加载器
4.4 Scout调试器
- 基于指令的网络调试器
- 功能:
- 基本内存读写
- 可扩展支持特定固件指令
- 配置:预设固件API函数地址(memcpy, sleep, send等)
- 开源地址:https://github.com/CheckPointSW/Scout
5. ITU T.30传真协议分析
5.1 协议阶段
- Phase B:发送者与接收者之间的握手
- Phase C:根据协商传输数据帧
5.2 数据传输
- 通过电话线使用HDLC帧传输
- 最终输出为包含IFD标签的TIFF文件
5.3 TIFF压缩类型
| TIFF压缩类型 | 对应标准 | 描述 |
|---|---|---|
| Type 2 | G3 | 无EOL标记 |
| Type 3 | ITU T.4 | CCITT 1-D |
| Type 4 | ITU T.6 | CCITT 2-D |
6. 攻击向量发现
6.1 彩色传真支持
研究发现目标打印机支持ITU T.81(JPEG)格式的彩色传真:
- 接收数据保存为.jpg格式
- 接收内容不经检查直接复制到文件(%s/jfxp_temp%d_%d.jpg)
6.2 JPEG分析器漏洞
打印机使用自定义JPEG分析器,主要流程:
- 检查SOI marker(0xFFD8)
- 循环分析每个支持的标记
- 返回相关数据
发现两个关键漏洞:
CVE-2018-5925 - COM marker缓冲区溢出
- 漏洞位置:处理COM marker(0xFFFE)的代码
- 漏洞详情:
- 分析2字节长度域
- 将数据复制到全局数组(每个记录2100字节)
- 长度域可达64KB,导致可控的缓存溢出
CVE-2018-5924 - DHT marker栈溢出
- 漏洞位置:处理DHT marker(0xFFC4)的代码
- 漏洞详情:
- 第一个循环读取16字节数据(每个字节表示长度)
- 第二个循环将数据复制到256字节的本地栈缓存
- 16*255=4080 > 256,导致无字符限制的可控栈溢出
7. 漏洞利用开发
7.1 选择DHT漏洞的原因
- 更易实现
- 无字符限制
7.2 自动化Payload设计
利用传真内容不经检查的特点:
- 将payload保存在JPEG文件中
- 使用基于文件的加载器
- 从文件读取payload到内存
- 从文件读取输入执行指令
7.3 网络传播机制
使用Eternal Blue漏洞实现网络内传播:
- 控制打印机LCD屏证明完全控制
- 检查打印机网络连接
- 使用Eternal Blue和Double Pulsar攻击网络内其他设备
8. 防御建议
- 固件更新:及时修补已知漏洞
- 网络隔离:将传真设备置于独立网络段
- 协议过滤:监控和过滤异常传真内容
- 安全配置:禁用不必要的服务和协议
- 监控机制:建立传真异常行为检测系统
9. 研究意义
本研究揭示了传统通信协议在现代网络环境中的安全隐患:
- 证实传真协议实现中的漏洞可导致网络完全沦陷
- 改变了网络打印机和传真机的安全认知
- 提醒企业将传真机视为潜在攻击向量加强防护
10. 参考文献
- ITU T.81 JPEG标准:https://www.w3.org/Graphics/JPEG/itu-t81.pdf
- Scout Debugger:https://github.com/CheckPointSW/Scout
- Faxploit演示视频:https://www.youtube.com/embed/1VDZTjngNqs