前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >StringBleed:SNMP协议“上帝模式”漏洞影响多种网络设备

StringBleed:SNMP协议“上帝模式”漏洞影响多种网络设备

作者头像
FB客服
发布2018-02-24 12:05:06
1.9K0
发布2018-02-24 12:05:06
举报
文章被收录于专栏:FreeBuf

近期,据来自南美的两位安全研究者发现,SNMP(简单网络管理协议)的v1和v2版本协议存在授权认证和访问控制绕过漏洞,至少有78种型号的网络接入和IoT设备受此漏洞影响,攻击者可以利用该漏洞远程获得相关设备的读写权限,进而控制设备。这一漏洞被发现者命名为Stringbleed,受影响的设备产品类型涉及路由器、VoIP网关、IoT设备和其他拨号网关等。

目前,该漏洞原因在安全社区中掀起了一场讨论,围绕ISP(网络服务提供商)错误控制配置和SNMP协议本身存在较大争议。而官方的CVE和NVD漏洞库对此漏洞分配的编号为CVE-2017-5135,但具体的技术分析和最终定论仍在进行中。现在,让我们一起来看看两位研究者对该漏洞的发现过程:

对Stringbleed漏洞的发现过程

在去年7月的DEFCON 24黑客大会上,我们演示了SNMP协议的写权限安全问题,该问题可能会对物联网设备、警用巡逻车、救护车等“紧急任务车辆”的使用和运行造成影响。

2016年12月,我们打算对互联网设备的SNMP协议进行一次安全性模糊测试(fuzz),这一次我们使用了不同社区字符串(community string)组合来进行测试。比仿说,使用“root”、“admin”或“user”等字符串作为SNMP请求消息随机值,测试SNMP协议设备如何响应请求。

我们知道,SNMP协议有3种方式在客户端和远程SNMP设备之间进行身份验证,在SNMP v1和SNMP v2版本中,使用可读的字符串数据类型即社区字符串(公开或私有)来进行认证。而在SNMP v3中,用户则可以选择用户名、密码和身份认证方式进行安全验证。另外,像对象标识符(oids)和陷阱消息(traps)等其它内容信息将会统一保存在管理信息库(MIB)中进行存储。

对SNMP的Fuzz测试过程中,我们编写了一个使用套接字(socket)构建“snmpget”请求的Python测试脚本。在请求消息中,我们需要调用sysDescr OID,如果我们测试的字符串值(admin、root等)正好与保存在SNMP代理中的身份验证信息相同,那么我们就可以成功获取到sysDescr OID信息了,整个过程与暴力破解攻击类似。然而,经过了几天的扫描探测之后,我们发现了一个不可思议的现象:有些设备或指纹节点,无论我们发送什么请求消息,总会向我们返回响应信息。这到底是怎么回事呢??

SysDescr OID(系统描述):SNMP命令,对应一个描述设备系统的特定厂商字符串标识符。

如前所述,按理来说,SNMP v1和v2的身份认证只接受保存在SNMP客户端身份验证机制中的数据值,但从以上我们的研究结果来看,这种情况似乎与SNMP定义规范不相符合,存在出入。

最终,我们发现了SNMP协议存在的问题:可以使用任意字符串或整数值来对某些特定SNMP客户端设备进行身份验证,绕过其安全认证机制,但更糟糕的还在于,甚至可以利用任意字符串或整数值来获取到这些SNMP设备完整的远程读写(read/write)权限。该漏洞被归为不正确的访问控制类型漏洞,编号为CVE-2017-5135。

漏洞验证

我们决定选用思科DPC3928SL网关设备作为漏洞测试产品,而经测试证明,该产品是受此漏洞影响最为严重的网络设备之一。但思科公司表示,他们早就已经停止对这款型号设备的技术支持服务了,现在这款产品硬件属于Technicolor公司,于是我们便与Technicolor公司进行漏洞情况意见交换。经过一番邮件交流,Technicolor确认了该产品漏洞,但却给出了一个我们不能接受的解决方案。

Technicolor公司认为,该漏洞是由于ISP(网络服务提供商)的错误配置引起的,与他们的产品无关!这简直是太滑头了!好吧,谢谢你的帮助确认和快速回复,我们将继续深入分析,请拭目以待。

大家可能会有这样一个疑问:网络上是否还会有其它设备会受到该漏洞影响?是的,没错,我们通过测试证明,多家供应商品牌网络设备存在该SNMP协议漏洞,而这也映证了Technicolor公司的错误观点。我们把该SNMP漏洞命名为STRINGBLEED。

我们决定再对全网SNMP协议设备进行一次扫描测试,在请求消息中,我们用大量的随机哈希值替换了可读的社区字符串,最终测试结果让我们大为震惊,竟然有150多种不同的网络设备指纹受该漏洞影响!事实证明,访漏洞问题并不是由网络服务提供商的错误配置所造成的,问题似乎出在了SNMP协议的自身代码上。

总结

我们在SNMP协议中发现了一个,可以利用任意字符串或整数值来绕过SNMP访问控制的远程代码执行漏洞; 通过该漏洞可以在MIB(管理信息库)中写入任意字符串; 可以在无需community string的情况下,轻易地从目标设备中获取到用户名密码等敏感信息; 随着时间的持续,可能会有更多厂商的多种型号设备会受此漏洞影响,因此,其漏洞修复过程可能并不容易; Technicolor公司缺乏相应的安全响应和技术分析支持。

漏洞利用PoC

以存在漏洞的192.168.0.1设备为例,其社区字符串(Community String)方式的攻击如下:

野生PoC

以下PoC经漏洞发现者证明,为Stringbleed的非官方PoC,CVE也证实其中包含危险性测试代码,请谨慎下载使用!

git clone https://github.com/string-bleed/StringBleed-CVE-2017-5135.git cd StringBleed-CVE-2017-5135 make && make all ./poc-linux

目前受影响厂商和相关设备(78种型号设备)

5352 —>Zoom Telephonics, Inc BCW700J —> BN-Mux BCW710J —> BN-Mux BCW710J2 —> BN-Mux C3000-100NAS —> Netgear CBV734EW —> Castlenet CBV38Z4EC —>CastleNet CBV38Z4ECNIT —>CastleNet CBW383G4J —>CastleNet CBW38G4J —>CastleNet CBW700N —> TEKNOTEL CG2001-AN22A CG2001—>UDBNA CG2001—>UN2NA CG2002 —>UN2NA CG2200 —>UN2NA CGD24G-100NAS —> Netgear CGD24G-1CHNAS —> Netgear CM5100 —> Netgear CM5100-511 —> Netgear CM-6300n —> Comtrend DCX-3200 —> Arris DDW2600 —> Ubee DDW2602 —> Ubee DG950A —> Arris DPC2100 —> Cisco DPC2320 —> Cisco DPC2420 —> Cisco DPC3928SL —> Cisco DVW2108 —> Ubee DVW2110 —> Ubee DVW2117 —> Ubee DWG849 —> Thomson DWG850-4 —> Thomson DWG855 —> Thomson EPC2203 —> Cisco EPC3212 —> Cisco IB-8120 —>W21 IB-8120 —>W21E1 MNG2120J —>NET&SYS MNG6200 —>NET&SYS MNG6300 —>NET&SYS SB5100 —> Motorola SB5101 —> Motorola SB5102 —> Motorola SBG6580 —> Motorola SBG900 —> Motorola SBG901 —> Motorola SBG941 —> Motorola SVG1202 —> Motorola SVG2501 —> Motorola T60C926 —> Ambit TC7110.AR —> Technicolor TC7110.B —> Technicolor TC7110.D —> Technicolor TC7200.d1I —> Technicolor TC7200.TH2v2 —> Technicolor THG540 —> Thomson THG541 —> Thomson Tj715x —> Terayon TM501A —> Arris TM502B —> Arris TM601A —> Arris TM601B —> Arris TM602A —> Arris TM602B —> Arris TM602G —> Arris TWG850-4U —> Thomson TWG870 —> Thomson TWG870U —> Thomson U10C019 —> Ubee U10C037 —> Ubee VM1700D —>Kaonmedia WTM552G —> Arris WTM652G —> Arris DCM-704 —> D-Link DCM-604 —> D-Link DG950S —> Arris

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2017-05-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FreeBuf 微信公众号,前往查看

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

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 对Stringbleed漏洞的发现过程
  • 漏洞验证
  • 总结
  • 漏洞利用PoC
  • 野生PoC
  • 目前受影响厂商和相关设备(78种型号设备)
相关产品与服务
多因子身份认证
多因子身份认证(Multi-factor Authentication Service,MFAS)的目的是建立一个多层次的防御体系,通过结合两种或三种认证因子(基于记忆的/基于持有物的/基于生物特征的认证因子)验证访问者的身份,使系统或资源更加安全。攻击者即使破解单一因子(如口令、人脸),应用的安全依然可以得到保障。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档