配置snmp_多种设备基于 SNMP 协议的敏感信息泄露漏洞数据分析报告

f37a3ce35aa60ef50b9677a75c8e29dc.png

作者:知道创宇404实验室

1. 更新情况

3e3b4f2cfe604a68a8a3666f96f20490.png

2. 事件概述

SNMP协议[1],即简单网络管理协议(SNMP,Simple Network Management Protocol),默认端口为 161/UDP,目前一共有3个版本:V1,V2c,V3。V3是最新的版本,在安全的设计上有了很大改进,不过目前广泛应用的还是存在较多安全问题的V1和V2c版本。SNMP协议工作的原理简单点来说就是管理主机向被管理的主机或设备发送一个请求,这个请求包含一个community和一个oid。oid就是一个代号,代表管理主机这个请求想要的信息。被管理的主机收到这个请求后,看请求community是否和自己保存的一致,如果一致,则把相应信息返回给管理主机。如果不一致,就不会返回任何信息。所以community相当与一个认证的口令。V1和V2c版本的SNMP协议都是明文传输数据的,所以可以通过抓包嗅探等手段获取认证需要的community。

2018年12月25日,Seebug 平台收录了多个基于SNMP协议的敏感信息泄露漏洞[2]。在多种厂商提供的网关类设备中,可以使用任意 community非常容易地读取SNMP提供的明文形式的的Web管理系统的用户名和密码、Wi-Fi凭证等信息。也可以使用任意community通过SET协议指令发送配置更新或控制请求,攻击者可以注入恶意的配置,如在Cisco DPC3928SL通过注入SSID造成Web管理系统的XSS(CVE-2018-20379)。

该漏洞最早于 2017 年 4 月 4 日曝出,CVE编号为CVE-2017-5135,漏洞发现者将该漏洞称之为 Stringbleed[3]。2018年12月22日,时隔一年多,漏洞发现者进行全球探测后提供了一个很全的漏洞影响列表,其中包含23个不同厂商78个不同型号的网关设备,同时申请了多个CVE编号(CVE-2018-20380~CVE-2018-20401)。关于漏洞的成因一直都在争论之中,截止目前依然没有最终定论[4]。该类设备一般由ISP提供,我们暂时没有找到漏洞设备或固件对漏洞原理进行研究。根据社区的讨论结果,产生该漏洞的原因可能有以下几种情况:

  • 这些存在漏洞的设备使用了同一个存在逻辑缺陷的SNMP协议实现,该实现代码没有正确处理 community 字符串认证,导致任意 community 均可以通过认证,进一步导致敏感信息泄露。
  • ISP 配置错误,无效的访问控制规则。

本文不包含漏洞分析,而是针对全球该类设备漏洞存在情况的数据分析报告。

3. 漏洞复现

直接使用 snmpget 命令发送 SNMP GET 请求即可, -c 选项指定任意字符串作为 community 均可通过认证。

snmpget -v 1 -c public $IP iso.3.6.1.2.1.1.1.0 snmpget -v 1 -c '#Stringbleed' $IP iso.3.6.1.4.1.4491.2.4.1.1.6.1.1.0 snmpget -v 1 -c '#Stringbleed' $IP iso.3.6.1.4.1.4491.2.4.1.1.6.1.2.0

复现结果如下:

00149b6b62af50a417c6b36664e2aa4d.png

如果目标设备开放了Web服务,则可使用泄露的用户名和密码登陆Web管理系统,如下:

4dc1e463b68e0531e9455902175f73f1.png

值得一提的是,用户名和密码存在为空的情况。

ad4f3d8d40f4b6dc23c60d21e0d925de.png

发送 SNMP SET 请求进行配置更新,-c 选项指定任意 community。如下所示,我们通过snmpset修改了 Web 系统用户名。

497b8a7ee9db758580353cda87fe8d04.png

4. 漏洞影响范围

我们通过提取漏洞设备相关的“关键词”,在ZoomEye网络空间搜索引擎[5]上共发现了1,241,510个 IP数据。

1a84614a841cd73e3babe8cb211659b6.png

通过使用 zmap 对这 124 万的IP数据进行存活检测,发现约有 23 万的IP 存活。进一步对存活的 23 万IP进行漏洞存在检验,发现有15882 个目标设备存在该敏感信息泄露漏洞,涉及23个厂商的多个型号设备的多个固件版本。

对这 15882 个漏洞设备的信息进行聚合,得到厂商及版本等统计信息如下(各个型号的ZoomEye dork 为: Vendor +Model +相应型号,如搜索DPC3928SL的语法为:Vendor +Model +DPC3928SL)

fe10c6f6760dcbd58cc28cf0d0e1335f.png

842bf69925c3e35c86a05d031534f6b6.png

bb73e51807723415297be9889a12aba1.png

3ae0a46dc2aaa05b67869df70a65f7e4.png

漏洞设备的厂商分布饼图如下(有一点需要说明的是,DPC3928SL网关设备属于受此漏洞影响最严重的网络设备之一,原来属于Cisco公司, 现在属于Technicolor。)

e5df8adaf4450a8554e7208c6c31cf6d.png

国家分布前十如下,主要分布在中国、泰国、韩国等国家。

8094b9456995286eb7513a2ab80a6479.png

中国存在漏洞的设备全部分布在广东、台湾两个省份,呈现一定的地域性。其中广东最多,为6318 台。

5a8535fcc1a7e44a88077a7ea2e7dde5.png

进一步分析发现,在原全球124万161/udp 端口的该类设备IP数据中,属于中国的几乎全部分布在广东省和台湾省,其他省份基本上没有探测到公网上该类设备端口开放(运营商禁用了SNMP服务或者没有使用同类设备?)。

a548172491efd3a6a39f5a4bcd289086.png

广东省受影响的设备的ISP分布如下,98% 以上归属于 “珠江宽频/联通“ 这个ISP,存在漏洞的设备大部分为Technicolor CWA0101 Wireless Gateway ,version :gz5.0.2。

a5343d33b7ef2680b6034a5ac1595326.png

台湾的181台漏洞设备都归属于ISP:http://twmbroadband.com,存在漏洞的设备大部分为Ambit T60C926。结合以上数据分析,我们断定中国存在该漏洞设备的地理分布和当地的ISP有很大关系。

针对所有存在该漏洞的设备,我们统计了凭证的使用情况,如下:

常用用户名,主要包含admin、login、user、dlink等。

912a3eba38a7190a338d9dadd8cc6193.png

常用密码,主要包含 admin、password、dream01、空、br0adband、gzcatvnet、user、Broadcom、dlink、ambit、root等,大部分为常见的弱密码。

ca4fe64443547557a7a0045744552279.png

非常有意思的是,我们发现以下使用次数最多的用户名密码组合,和使用该凭证组合最多的漏洞设备,以及漏洞设备所在的国家,都存在一定的关联性。

(如第一行记录:中国所有含有该漏洞的设备中约有 5502 台都使用了 admin:admin 凭证,且受影响设备型号数量最多的为 Technicolor/CWA0101。)

b46240e00f27f591a2bb82d27db1f9d3.png

5. 总结

基本可以肯定的是,这不是SNMP协议本身的问题,而是协议的实现代码存在漏洞或者ISP配置错误。该漏洞影响厂商、设备型号非常多,且呈现出一定的区域性。

路由器、Modem、摄像头等IoT设备的信息泄露漏洞层出不穷,对个人隐私造成极大的威胁,关闭非必要的端口或者使用防火墙限制非法访问是个值得考虑的举措。

系统的安全性往往取决于最短的那块木板-“木桶效应”,通过SNMP协议泄露HTTP服务凭证很好的说明了这一点。

用户可根据PoC自行验证设备是否存在漏洞,如果存在漏洞可联系相应的ISP寻求解决方案。

6. 相关链接

[1] SNMP 协议https://baike.baidu.com/item/SNMP/133378?fr=aladdin

[2] Seebug 漏洞收录https://www.seebug.org/vuldb/ssvid-97741https://www.seebug.org/vuldb/ssvid-97742https://www.seebug.org/vuldb/ssvid-97736

[3] Stringbleed
https://stringbleed.github.io/#

[4] 关于该漏洞的讨论https://www.reddit.com/r/netsec/comments/67qt6u/cve_20175135_snmp_authentication_bypass/

[5] ZoomEye网络空间搜索引擎https://www.zoomeye.org/searchResult?q=MODEL%20%2BVENDOR%20%2Bport%3A%22161%22

[6] SNMP 历史漏洞参考http://drops.the404.me/1033.html


本文由 Seebug Paper 发布,如需转载请注明来源。

欢迎关注我和专栏,我将定期搬运技术文章~

也欢迎访问我们:知道创宇云安全

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/529566.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python 个人所得税问题_Python实现的个人所得税计算器

这篇文章主要介绍了Python实现的个人所得税计算器,涉及Python条件判断与数值运算相关操作技巧,需要的朋友可以参考下本文实例讲述了Python实现的个人所得税计算器。分享给大家供大家参考,具体如下:# -*- coding: utf-8 -*-"""Created on …

建立项目接口文档_分享:一步一个脚印,vue入门之使用mockjs搭建vue项目测试服务器...

在以前的文档中,我们构建了vue项目的整体架构,详见vue入门:vue项目架构设计起步,现在我们主要对其中的mock server 进行完善。一、概述前后端分离的项目优点之一就是可以前后端并行开发,互不影响。那么在后端接口没有完…

有效字符区域 获取textview_Android编程开发之TextView文字显示和修改方法(附TextView属性介绍)...

本文实例讲述了Android编程开发之TextView文字显示和修改方法。分享给大家供大家参考,具体如下:一. 新建一个Activity 和 Layout首先在layout文件夹中新建一个activity_main.xml,在新建工程的时候一般默认会新建此xml文件,修改其代码如下:activity_main.…

单机最大负载_电流互感器允许接入的实际最大二次负载(注电案例1865)

某国外水电站安装的水轮发电机组,单机额定容量为 120MW,发电机额定电压为 13.8kV,cosφ0.85。发电机、主变压器采用发变组单元接线,未装设发电机断路器,主变高压侧三相短路时流过发电机的最大短路电流为 19.6kA。发电机…

vue怎么vw布局好用_vue cli3项目的pc自适应布局_vw

前言vw布局的页面是等比改变的,比如我们在一个750px的屏幕宽度中使用了vw,当我们把屏幕宽度改为1920的时候,网页的整个样式包括字体都会等比放大.vw布局我用于大屏监控数据展示.下图是750屏幕宽度下的页面下图是1920屏幕宽度下的页面pc端配置1.安装postcss-px-to-viewport插件,…

python做得怎么变成exe_Python如何生成exe文件?

背景图来源:click斗鱼直播间真实rtmp地址获取(含工具类下载)​zhuanlan.zhihu.com最经典的Python爬虫(图片)案例​zhuanlan.zhihu.com写在前面:之前用python生成过可执行的exe文件(斗鱼推流地址exe ,图片exe,芳儿小团子千人成像ex…

python mkl freebsd_freebsd下之简单安装python

先su到root帐户进入/usr/ports/lang/python26然后直接make整个过程如图所示,经过漫长的编译之后...然后make install又是漫长的等待...出现Install them as needed.--------------------------------------------------------This package was built with the exper…

html video显示进度条_使用 tqdm 在 Python 应用中显示进度 | Linux 中国

如果你的程序需要一段时间才能显示结果,可通过显示它的进度来避免让用户感到沮丧。来源:https://linux.cn/article-12990-1.html作者:Moshe Zadka译者:geekpi(本文字数:3093,阅读时长大约&#…

课题开题报告范文样本_成都汽车职业技术学校举行 2020年省、市、区课题开题报告会...

01为深入贯彻落实国务院、省、市、区关于深化教育教学改革的重要精神,充分发挥教育科研的先导作用,明晰课题研究的思路并提高课题研究的针对性,1月12日,成都汽车职业技术学校举行2020年省、市、区课题开题报告会。本次开题报告会邀…

vsftp日志查看_vsftp日志xferlog格式分析(示例代码)

1、开始vsftp记录日志。修改/etc/vsftpd/vsftpd.conf 如下:xferlog_enableYESxferlog_std_formatYESxferlog_file/var/log/xferlogFTP服务器的日志设置,可以通过修改主配置文件/etc/vsftpd.conf实现。主配置文件中与日志设置有关的选项包括xferlog_enabl…

安装mysql5 1步骤_Linux系统安装MySQL详细步骤(mysql-5.1等)

第一步、查找以前是否安装有mysql使用下面命令:rpm -qa|grep -i mysql如果显示有包则说明已安装mysql第二步、如果已安装,则需要删除已安装的数据库可按以下步骤删除数据库:删除包命令:rpm -e --nodeps 【包名】rpm -e --nodeps …

mysql分页查询关键_MySQL优化教程之超大分页查询

背景基本上只要是做后台开发,都会接触到分页这个需求或者功能吧。基本上大家都是会用MySQL的LIMIT来处理,而且我现在负责的项目也是这样写的。但是一旦数据量起来了,其实LIMIT的效率会极其的低,这一篇文章就来讲一下LIMIT子句优化…

mysql r_R之RMySQL

linux,mysql和R的版本信息:Linux naci 3.19.0-16-generic #16-Ubuntu SMPServer version: 5.6.24-0ubuntu2 (Ubuntu)R version 3.1.2 (2014-10-31) -- "Pumpkin Helmet"mysql的linux安装,参照上一篇关于liunx下安装mysql的文章。1.…

mysql 字符转换函数是_MySQL日期和字符串转换函数

Mysql中to_char()和str_to_date()函数转载路径:https://blog.csdn.net/ricardo_mli/article/details/802175121.字符串转换成日期格式str_to_date(date,’%Y-%m-%d’)----->相当于Oracle中的to_char();例子:INSERT INTOt_order(order_time)VALUES(str…

mysql数据加百分号_使用MySQL SELECT语句时,在每个值的末尾添加一个百分号(%)...

要在末尾添加百分号,请使用CONCAT()函数。让我们首先创建一个表-mysql> create table DemoTable(StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY,StudentName varchar(100),StudentScore int);使用插入命令在表中插入一些记录-mysql> insert into DemoTa…

mysql 分页 jdbc_JDBC调用MySQL分页存储过程实现(一)

DROP PROCEDURE IF EXISTS pro_pager;CREATE DEFINER root% PROCEDURE pro_pager(in p_pageNo int, /*当前页*/in p_perPageCnt int, /*每页记录数*/in p_sql VARCHAR(2000), /*查询sql语句*/out v_totalRowsCnt int, /*记录总条数*/out v_totalPageCnt int) /*记录总页数*/BE…

mariadb mysql表_mysql/mariadb学习记录——创建删除数据库、表的基本命令

查看已有的数据库:mysql>show databases;--------------------| Database |--------------------| information_schema || test |--------------------2 rows in set (0.05 sec)新建数据库语句:mysql>create database wzu;Query OK,1 row affected (0.05sec)m…

zabbix proxy mysql_zabbix proxy 配置

在监控大量服务器时,如果将所有的请求都发送到一个zabbix server上,将会对我们的zabbix server造成很大的压力,我们在规划多个区域或机房进行监控的时候,会考虑到使用zabbix proxy 来代理zabbix server 的部分功能。zabbix server…

mysql修改数据库结构用哪一项_mysql alter修改数据库表结构用法

1.alter操作表字段(1)增加字段alter table 表名 add 字段名 字段类型;alter table student add name varchar(10);(2)修改字段alter table 表名 change 旧字段名 新字段名 字段类型;alter table 表名 modify 字段名 字段类型;//修…

mvc mysql linq_MVC3+Linq to sql 显示数据库中数据表的数据

1:首先创建asp.net mvc3应用程序 2:创建项目完成后 找到controllers文件鼠标右击选择添加控制器 3 为models文件夹添加一个linq to sql类文件,然后把数据库中的数据库复制进来。如截图操作 4:添加控制器好后会生成一个HomeControl…