复现华为HG532远程注入漏洞(CVE-2017-17215)手把手带你复现 新手必看

报告来源

漏洞详情链接:

NVD - CVE-2017-17215

CVE 编号分配日期:2018-3-20

NVD漏洞发布日期:2018-3-20

  • 漏洞概述 *

漏洞名称

HUAWEI 远程代码执行漏洞(CVE-2017-17215)

漏洞编号

CVE-2017-17215

漏洞类型

远程代码执行

威胁等级

高危

漏洞详情

华为 HG532 部分定制版本存在远程代码执行漏洞。经过身份验证的攻击者可以向端口 37215 发送恶意数据包以发起攻击。成功利用此漏洞可导致远程执行任意代码

影响范围

_HG532eV100R001C01B020_upgrade_packet

环境搭建过程简述

测试系统

Ubuntu 16.04 虚拟机

固件下载地址

https://ia601506.us.archive.org/22/items/RouterHG532e/router%20HG532e.rar

固件解包工具

Binwalk

固件模拟工具

qemu

逆向工具

IDA 7.5 (32bit)

流量抓取工具

Burpsuite、Wireshark

其他辅助工具

010editor

  1. 环境搭建

    1. 执行sudo virt-manager打开虚拟机管理器,创建新的虚拟机。

                  

    2. 打开虚拟机,用户名/密码是 root/root

路径:ml@ubuntu-ml:~/IoT-vulhub-master/HUAWEI/CVE-2017-17215/

#下载固件并解压:

 binwalk -eM HG532eV100R001C01B020_upgrade_packet.bin

此处的squashfs-root文件夹需要在后面上传到qemu虚拟机中

下载qemu

sudo apt-get install qemu

sudo apt-get install qemu binfmt-support qemu-user-static

下载所需依赖

Wget https://people.debian.org/~aurel32/qemu/mips/debian_squeeze_mips_standard.qcow2

wget https://people.debian.org/~aurel32/qemu/mips/vmlinux-2.6.32-5-4kc-malta

创建虚拟网桥,实现虚拟机内部和Ubuntu的连接

sudo apt-get install bridge-utils

sudo brctl addbr Virbr0

sudo ifconfig Virbr0 192.168.153.1/24 up

创建tap接口,名字为tap0,并添加到网桥

sudo tunctl -t tap0

sudo ifconfig tap0 192.168.153.11/24 up

sudo brctl addif Virbr0 tap0

使用命令启动虚拟机

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" -netdev tap,id=tapnet,ifname=tap0,script=no -device rtl8139,netdev=tapnet -nographic

在启动的虚拟机里面添加一个IP,并尝试ping外界

将宿主机ubuntu 16.04的固件打包上传到客户机

#宿主机ubuntu 16.04

$tar -czvf squashfs-root.tar.gz squashfs-root

$sudo mv squashfs-root.tar.gz /root/

在qemu模拟的debian系统中复制下来 文件路径要匹配

 scp root@192.168.153.1:/root/squashfs-root.tar.gz /root/squashfs-root.tar.gz

在虚拟机中挂载dev和proc

mount -o bind /dev ./squashfs-root/dev

mount -t proc /proc ./squashfs-root/proc

启动shell

chroot squashfs-root sh

这个时候在Ubuntu里面再单独开一个终端,使用ssh连接上去

这个通过ssh连接的终端实际上已经无法使用了,因为虚拟机里面的路由器IP发生了变化,ssh连接已经断开,返回之前的虚拟机中的终端

需要重新更改路由器的IP,以便于外部的Ubuntu登录管理界面

ifconfig eth0 192.168.153.2/24 up

ifconfig br0 192.168.153.11/24 up

这个时候在Ubuntu上使用浏览器访问路由器eth0的IP地址,就可以登录进入管理界面,默认的账号密码是:admin,@Hua1234

漏洞复现

 执行Poc前查看文件目录

执行Poc后:

其中Poc的作用为命令注入创建两个新的文件夹,一个名为hello,一个名为hell,由此注入成功。

  • 漏洞分析

  • 代码分析

Huawei HG532 路由器部分版本存在远程命令执行漏洞,漏洞利用的端口为 37215 ,成功利用可以实现远程执行任意代码

漏洞首发于CheckPoint,其漏洞报告中描述了漏洞利用的一些细节:

华为家庭网关使用了UPnP(Universal Plug and Play) 协议,该协议在 TR-064 技术报告中进行了标准化,并被广泛应用于嵌入式设备中,以实现家庭和企业环境中网络设施的无缝连接和简化,主要是本地网络的配置,    例如允许在内部网络中实施基本的设备配置、固件升级等。在目标路由器中,通过 37215 端口将 TR-064 暴露在了 WAN 网络环境中。

华为的这款路由器中的 UPnP 支持 DeviceUpgrade 的服务类型,该服务通过向 /ctrlt/DeviceUpgrade_1 发送请求来执行固件升级操作,并使用到了名为 NewStatusURL 和 NewDownloadURL 的两个 SOAP 元素。

漏洞发生在对 NewStatusURL 和 NewDownloadURL 的处理流程,在这两个元素中存在命令注入漏洞,以及漏洞产生点的 端口号37215 。

查看端口37215, 我们可以看到upnp 字符串,这里可以猜测,37215 和upnp 协议有关。 因此模拟固件的时候会运行upnp和mic.

将upnp 放到IDA中进行分析

查看View-string 字符串。 可以看到NewStatusURL.

跳转到如下图所示,找到了upnp 的关键代码

可以分析出来 其中a0 参数是会的内容是会传到system()中执行的。因此可以实现命令注入

snprintf(a0,0x400,“upg -g -U %s -t ‘1 Firmware Upgrade Image’ -c upnp -r %s -d -”,a3)

 流量分析

根据我们静态分析的结果,可以基本确认漏洞的触发流程,UPnP 服务是默认开启的,如果我们能在执行 DeviceUpgrade_1 这个action的时候,将那两个字段进行命令注入即可实现漏洞利用。

根据 Check Point 的 poc,抓取其流量可以看到 xml 数据的详细组织形式:

  • 防范建议

漏洞描述:

华为 HG532 系列路由器存在一个远程命令执行漏洞(CVE-2017-17215),攻击者可以通过向设备的 37215 端口发送恶意报文来利用该漏洞,成功利用后可以远程执行任意代码。  

防范建议:

1.配置内置防火墙功能:启用路由器的内置防火墙功能,限制对 37215 端口的访问。

2.更改默认密码:立即更改路由器的默认管理员密码,使用强密码策略,确保密码复杂度高,难以猜测。

3.部署运营商侧防火墙:如果可能,建议在运营商侧部署防火墙,限制对路由器的外部访问。

4.升级 IPS 签名数据库:升级华为下一代防火墙(NGFW)或数据中心防火墙的 IPS 签名数据库到最新版本(例如 IPS_H20011000_2017120100),以检测和防御来自互联网的漏洞利用尝试。

5.更新固件:检查并安装华为提供的最新固件更新,确保路由器运行的是最新版本的固件,以修复已知的安全漏洞。

6.物理隔离:如果条件允许,将路由器从公共网络中物理隔离,仅在需要时通过本地网络进行管理。

7.监控和日志:启用路由器的日志记录功能,定期检查日志文件,以便及时发现异常活动。

8.使用安全的管理接口:确保仅通过安全的管理接口(如 HTTPS)访问路由器的管理界面,避免使用不安全的协议(如 HTTP)。

9.限制访问权限:限制对路由器管理界面的访问权限,确保只有授权用户可以访问。

10.定期安全评估:定期进行安全评估和漏洞扫描,及时发现并修复潜在的安全问题。

  • 参考资料

NVD - CVE-2017-17215

https://github.com/Vu1nT0tal/IoT-vulhub/tree/master/HUAWEI/CVE-2017-17215

https://blog.youkuaiyun.com/wuyou1995/article/details/109607992

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值