白帽故事 · 2025年8月14日

Brother 打印机漏洞挖掘实录:Stephen Fewer 如何在兄弟公司的多款设备中发现漏洞

file

概述

你以为打印机只是默默打印文件的设备?Rapid7的最新研究证明,Brother 多款打印机/扫描仪设备中存在的8个漏洞(影响742款型号),可能成为黑客入侵内网的“跳板”。

从未授权密码生成到内存溢出,再到SSRF内网渗透,这些漏洞构成的攻击链足以让企业安全防线形同虚设。

关键漏洞

Rapid7 公布的8个漏洞中,最危险的当属认证绕过(CVE-2024-51978,CVSS 9.8)栈溢出(CVE-2024-51979,CVSS 7.2),但真正可怕的是它们与其它漏洞的联动效应:

漏洞类型 CVE ID 利用场景 攻击效果
认证绕过 CVE-2024-51978 通过序列号生成默认密码 直接获取管理员权限
栈溢出 CVE-2024-51979 构造恶意HTTP请求覆盖返回地址 设备崩溃或代码执行
SSRF内网扫描 CVE-2024-51980 强制设备向任意IP发起TCP连接 探测内网开放端口
凭据窃取 CVE-2024-51984 篡改LDAP/FTP配置诱导设备发送密码 获取域账号/文件服务器凭据

测试环境

• 设备型号: MFC-L9570CDW(企业级)和 DCP-L2530DW(消费级)。

• 网络场景:

file

• 内部攻击者直接访问设备。

• 外部攻击者通过端口转发访问暴露的设备服务(如 HTTP/HTTPS)。

• 暴露情况: 截至 2025 年 5 月,Shodan 发现 5,739 台 Brother 打印机管理界面暴露于公共互联网上。

漏洞挖掘与利用示例

CVE-2024-51978(密码生成算法的“致命规律”)

研究人员逆向固件发现,Brother设备的默认密码由序列号+静态盐值通过以下步骤生成:

  • SHA-256哈希:序列号前16字节与盐值拼接后哈希
  • Base64截断:取哈希值前8字符,替换特定符号(如l→#)

伪代码示例

password = base64(sha256(serial + salt))[0:8].translate(str.maketrans("lIzZ...", "#$%&..."))

利用场景:攻击者通过SNMP/PJL/HTTP泄露序列号(CVE-2024-51977),即可生成密码登录管理后台。

CVE-2024-51979(栈缓冲区溢出)

Brother打印机/扫描仪设备通过嵌入式Web服务器(Debut)提供管理接口,处理HTTP/HTTPS/IPP请求。

研究人员在分析固件时发现,其CSRF(跨站请求伪造)令牌验证逻辑中存在栈缓冲区溢出漏洞,攻击者可覆盖函数返回地址,导致设备崩溃或远程代码执行(RCE)。

逆向发现 decode_csrftoken函数在处理 HTTP 请求的 Referer头时,未检查主机名长度,直接拷贝到64 字节栈缓冲区(buff64)。

通过 IDA Pro 的栈布局分析,确认溢出可覆盖返回地址(距缓冲区起始位置 252 字节处):

| buff64[64] | ...其它变量... | 保存的寄存器(R4-R12) | 返回地址(PC) |

溢出后,可精确覆盖返回地址,控制程序执行流。

溢出效果:
覆盖返回地址后,设备可能:

  • 崩溃重启(地址无效)
  • 执行任意代码(指向攻击者控制的Shellcode)

利用限制:

  • CPU架构:设备使用32位ARM(Thumb模式),但未公开具体型号(代号“Kybele”),需动态调试确定Shellcode兼容性
  • ASLR/NX:报告中未提及防护机制,实际利用需进一步测试

CVE-2024-51980(基础SSRF)

file

触发点:Web Services的SOAP接口(WS-Addressing协议)。
利用方式:攻击者通过ReplyTo字段指定任意IP和端口,强制设备发起TCP连接:

<wsa:ReplyTo>
  <wsa:Address>http://attacker:4444/</wsa:Address>  <!-- 目标IP和端口 -->
</wsa:ReplyTo>

实际效果:
设备向 attacker:4444发起TCP连接(无数据发送)。
通过响应差异(成功连接 vs. 连接拒绝)判断目标端口是否开放。

CVE-2024-51981(高级SSRF + CRLF注入)

触发点:Web Services Eventing(WS-Eventing)的NotifyTo字段。
利用方式:

  • 构造恶意订阅请求:在NotifyTo地址中注入CRLF(\r\n),截断原始HTTP请求。
  • HTTP请求走私:追加任意HTTP请求头和方法:
<wsa:Address>
  http://attacker:4444/fake HTTP/1.1\r\n
  Connection: keep-alive\r\n
  Content-Length: 0\r\n\r\n
  GET /internal-api/secret HTTP/1.1\r\n
  Host: 192.168.1.1\r\n\r\n
</wsa:Address>

利用效果:

  • 设备向192.168.1.1发起GET /internal-api/secret请求(攻击内网服务)
  • 响应不会返回给攻击者(盲SSRF),但可结合其它漏洞(如时间延迟)来推断结果

结语

Rapid7 的这份报告揭示了 Brother 设备中多个高危漏洞,攻击者不再需要复杂的0day,只需利用厂商的“设计惯性”(如硬编码密码、内存安全问题)即可长驱直入。

或许,是时候重新审视办公室里那些“沉默的硬件”了~

英文报告:https://assets.contentstack.io/v3/assets/blte4f029e766e6b253/blt6495b3c6adf2867f/685aa980a26c5e2b1026969c/vulnerability-disclosure-whitepaper.pdf