一个传真接管你的网络:含有传真功能的打印机漏洞分析
字数 2484 2025-08-22 12:22:24

传真协议漏洞分析与利用:Faxploit攻击技术详解

1. 传真协议安全研究背景

传真(FAX)作为一种传输静态图像的通信手段,尽管在现代通信技术如email、微信等普及后使用减少,但Google调查显示全球仍有超过3亿传真号码在使用。传真功能广泛集成于多功能打印机设备中,这些设备通常:

  • 通过以太网、WiFi、Bluetooth连接到内部网络
  • 通过PSTN电话线支持传真功能
  • 成为企业网络中的潜在攻击入口

Check Point研究人员证实:仅通过发送恶意传真到目标号码,攻击者可以完全控制打印机并渗透其连接的网络。

2. 研究目标与攻击场景

攻击假设:攻击者在仅知道目标传真号码的情况下发起攻击

攻击流程

  1. 发送恶意传真到目标号码
  2. 利用打印机漏洞获取完全控制权
  3. 通过打印机渗透内部网络
  4. 窃取数据并通过传真回传

研究人员将这种攻击命名为"Faxploit"。

3. 目标设备分析

3.1 打印机架构分析

  • CPU架构:ARM 32bit (Big Endian模式)
  • 内存模型:主CPU与MCU通过共享内存通信
  • 操作系统:基于ThreadX的实时操作系统(Green Hills)
    • 平坦内存模型(flat memory model)
    • 多任务在kernel-mode运行
    • 使用消息队列进行任务通信
    • 无ASLR机制

3.2 逆向工程关键发现

  1. DSID值:用于T.30状态机任务的唯一ID,与"DSID_"前缀字符串关联
  2. 任务间通信:发现allocation/deallocation路径模式
  3. 函数指针表缺失:需要动态调试方法补充理解

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利用:

  1. 复制D-Cache到I-Cache的ROP链
  2. 解码加载调试器网络加载器的shellcode
  3. 通过网络发送加载器

4.4 Scout调试器

  • 基于指令的网络调试器
  • 功能:
    • 基本内存读写
    • 可扩展支持特定固件指令
  • 配置:预设固件API函数地址(memcpy, sleep, send等)
  • 开源地址:https://github.com/CheckPointSW/Scout

5. ITU T.30传真协议分析

5.1 协议阶段

  1. Phase B:发送者与接收者之间的握手
  2. 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分析器,主要流程:

  1. 检查SOI marker(0xFFD8)
  2. 循环分析每个支持的标记
  3. 返回相关数据

发现两个关键漏洞:

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设计

利用传真内容不经检查的特点:

  1. 将payload保存在JPEG文件中
  2. 使用基于文件的加载器
    • 从文件读取payload到内存
    • 从文件读取输入执行指令

7.3 网络传播机制

使用Eternal Blue漏洞实现网络内传播:

  1. 控制打印机LCD屏证明完全控制
  2. 检查打印机网络连接
  3. 使用Eternal Blue和Double Pulsar攻击网络内其他设备

8. 防御建议

  1. 固件更新:及时修补已知漏洞
  2. 网络隔离:将传真设备置于独立网络段
  3. 协议过滤:监控和过滤异常传真内容
  4. 安全配置:禁用不必要的服务和协议
  5. 监控机制:建立传真异常行为检测系统

9. 研究意义

本研究揭示了传统通信协议在现代网络环境中的安全隐患:

  1. 证实传真协议实现中的漏洞可导致网络完全沦陷
  2. 改变了网络打印机和传真机的安全认知
  3. 提醒企业将传真机视为潜在攻击向量加强防护

10. 参考文献

  1. ITU T.81 JPEG标准:https://www.w3.org/Graphics/JPEG/itu-t81.pdf
  2. Scout Debugger:https://github.com/CheckPointSW/Scout
  3. Faxploit演示视频:https://www.youtube.com/embed/1VDZTjngNqs
传真协议漏洞分析与利用: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