python snmp采集交换机信息_SNMP被爆存在一个严重的认证绕过漏洞可获得远程读写权限...

简介

在DEFCON 24 IoT Village中,我就此研究发现了SNMP写入属性的危险大多受影响的是在物联网,警察巡逻,救护车和其他“关键任务车辆”中。

在2016年12月与阿根廷的同事(Ezequiel Fernandez),我们决定在互联网上再次“Fuzzing ”SNMP协议,但这次在字符串中使用不同的组合,例如,如果我们使用SNMP随机测试来自互联网的哪些共同字符串中的值如“root”“admin”“user”将会响应我们的请求?为了快速回顾SNMP基础知识,我们知道有3种方法来验证客户端和远程SNMP设备中的请求,SNMP版本1和2使用可读的字符串数据类型值称为“共同字符串”(通常为公有或私有) )在SNMP版本3中,您可以选择使用用户,密码和身份验证方法。此外,所有信息,如oid,trap和其他内容都存储在管理信息库(MIB)中。

测试

我们使用套接字从头开始编写一个简单的python脚本,以便构建“snmpget”请求,在我们使用sysDescr OID的请求中,如果我们正在测试的字符串值(admin,root etc等)与SNMP中存储的相同代理身份验证,我们将成功检索sysDescr OID信息,就像“爆破”。经过几天的扫描,我们注意到有些奇怪的东西,有些设备/指纹始终都在响应,无论我们使用哪个值,那么这里有什么? 如前所述,SNMP版本1&2认证只能接受存储在SNMP代理认证机制中的值,但是我们的结果中的行为与前面所说明的语句不同。 我们发现以下几点:您可以使用任何值字符串或整数,以便在某些特定设备中成功验证SNMP代理,但最糟糕的是:您可以使用任何字符串/整数进行完全读/写远程权限值。

反馈

该CVE 2017-5135中远程执行代码SNMP已经要求,创建和保留此问题,漏洞类型: 访问控制配置错误。我们选择了CISCO DPC3928SL作为测试,但是CISCO的技术主管technicolor确认这是ISP配置出错

ca82a14a339a44d9a7f709932ca164b1
0f8b734f31834dde99bc0f055a7981d7

现在你有什么问题的想法,但可能你会想有没有更多的设备有同样的问题在互联网?答案是肯定的,我们可以证明来自不同供应商/品牌的其他设备也受到SNMP中相同的行为的影响。 我们称之为STRINGBLEED :-D 我们决定再次扫描,但是这不会产生特定的可读字符串,因此我们决定生成一个随机哈希值,并将其发送到互联网上的所有SNMP设备,结果令人震惊,此时我们检测到150多个独特指纹受到影响,

这表明technicolor答案是错误的,问题不是ISP错配,问题似乎在代码中。

结论

  • 我们发现一个完整的远程操作执行,绕过SNMP中的控制访问,使用任何字符串/整数值
  • 您可以在MIB中写入字符串
  • 您可以轻松地检索密码和其他敏感信息,而无需猜测公共字符串。
  • 由于我们的扫描,因为几个供应商/品牌受到影响,并且每天都在增加列表,故障很难解决
  • Technicolor决议缺乏技术分析,根据我们的结果是不可接受的

PoC

[Attack Vectors]: Community string IP of theoric cablemodems vulnerable:"192.168.0.1"

[usr@pwn:~$] snmpset -v 1 -c "#Strigbleed" 192.168.0.1 1.3.6.1.2.1.1.6.0 s "test" iso.3.6.1.2.1.1.6.0 = STRING: "test"[usr@pwn:~$] snmpget -v 1 -c "#Strigbleed" 192.168.0.1 iso.3.6.1.2.1.1.1.0 iso.3.6.1.2.1.1.1.0 = STRING: "Cisco DPC3928SL DOCSIS 3.0 1-PORT Voice Gateway <>"

*参考来源:stringbleed,转载自MottoIN

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值