-
-
[原创]华为HG532路由器RCE漏洞复现
-
发表于: 6天前 567
-
作为刚开始学习IOT设备漏洞的新人,看到一篇写得很好的经典IoT漏洞的分析与复现文章,于是尝试复现这些漏洞。期间也是遇到很多问题,对于环境与这些固件设备的了解还很少,所以环境配置等方面与师傅文章里写的不太一样。我的虚拟机是公司设备使用的是NAT连接,如果是桥接的可以去看这位师傅的原文。
参考文章一些经典IoT漏洞的分析与复现(新手向) - IOTsec-Zone
感谢这位师傅的分享。
CVE-2017-17215是CheckPoint团队披露的远程命令执行(RCE)漏洞,存在于华为HG532路由器中。
该设备支持名为DeviceUpgrade的一种服务类型,可通过向/ctrlt/DeviceUpgrade_1的地址提交请求,来执行固件的升级操作。
可通过向37215端口发送数据包,启用UPnP协议服务,并利用该漏洞,在NewStatusURL或NewDownloadURL标签中注入任意命令以执行。
漏洞披露:a7aK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6J5k6i4y4W2j5i4u0U0K9q4)9J5k6h3y4Z5k6h3y4C8M7r3!0A6L8Y4c8Q4x3X3g2U0L8$3#2Q4x3V1j5J5x3o6p5%4i4K6u0r3k6$3!0G2k6q4)9J5k6s2A6W2M7X3!0Q4x3X3c8V1j5i4W2Q4x3X3c8K6K9$3W2V1k6r3W2W2
我这里使用的是ubuntu18.04
配置网络环境
安装网络配置工具:
随后执行命令:

1. 修改ubuntu网络配置文件/etc/network/interfaces
首先查看我的接口信息
发现接口名为ens33,于是修改文件名为如下内容
保存后执行
2. 编辑qemu的网络接口启动脚本/etc/qemu-ifup
若还没安装qemu,请等qemu安装完成后再配置此项
若是本身就没有这个文件的话,就先创建后写入,再用命令赋予权限。
这里我是原本就有这个文件的。
3. 创建包含qemu使用的所有桥的名称的配置文件/etc/qemu/bridge.conf
创建文件夹
修改配置文件
在/etc/qemu/bridge.conf中写入下面的语句即可。

注:原文师傅说在网络环境按上述配置完成后,建议重启下Ubuntu虚拟机。我是菜鸟我听师傅的。
主要用到binwalk工具,及其配套工具sasquatch。
binwalk安装:
sasquatch安装:
安装完成后,执行命令,
并在解压出来的squashfs-root文件夹内可以看到文件系统,包含bin,etc,lib等文件夹。


我们可以在bin文件夹内找到存在漏洞的upnp二进制文件,并使用checksec查看其信息
RELRO:No RELRO → 没有启用只读重定位,容易被GOT/PLT攻击。
Stack Canary:No canary found → 没有栈保护,栈溢出攻击可行。
NX:NX disabled → 栈可执行,Shellcode 可以直接跑。
PIE:No PIE → 地址不随机化,ROP 攻击更容易。
RPATH / RUNPATH / Symbols:没有特殊保护或符号。
是一个32位大端序的mips架构下的二进制文件,且没有开任何保护。
qemu的安装命令如下:
由于该固件是32位大端序的mips架构,因此,我们也要下载相对应的内核及镜像文件。
下载地址:
下载其中的vmlinux-2.6.32-5-4kc-malta内核以及debian_squeeze_mips_standard.qcow2镜像文件。
创建工作目录并进入
下载 MIPS 内核与 Debian squeeze qcow2 镜像
创建 start.sh(NAT + 端口转发 guest:37215 -> host:37215)
赋予可执行权限
列出目录确认文件在位
返回如下图应该就是没问题了

在 ~/qemu-mips 目录下执行:
这会启动 MIPS Malta QEMU,Debian Squeeze 镜像会跑起来。
默认账号密码是:root / root。
可以加上 -nographic(编辑 start.sh 在 qemu-system-mips 那一行最后加 -nographic)让 QEMU 输出直接在终端显示控制台,更方便操作。

进入qemu后接下来就是配置网卡了
修改为:
然后执行: