在常规的漏洞响应中,我们更多的关注漏洞自身的危害、影响结果,这个是点的研发,而往往在利用过程,会有一种面的利用。

这个内容在以前在北航、QCon做分享的时候讲过相关的内容,做了下整理,部分内容是来自COS之前的PPT。

注:文章内容仅限于研究!

典型的漏洞应急响应

这是漏洞爆发的黄金应急响应时间,分别是在漏洞爆发的1小时内、6小时内、12小时内以及24小时内,在我过去经历的的漏洞应急响应中,一般最晚在12小时内可以完成,也曾经历过比较重大的,通宵熬夜应急了48小时。而在这黄金应急响应时间里都要做什么呢?大概是这样一个应急流程:

在漏洞爆发后,第一时间通过各种渠道方式获取漏洞的详细信息,然后验证漏洞的真实性,并且分析漏洞,根据已知的情况进行漏洞利用研究,如果有相关的安全产品,如WAF、扫描器等,则有相关人员根据分析结果输出防护规则和检测规则,其次输出漏洞的检测代码,也是就是常说的PoC(Proof of Concept),然后撰写漏洞的分析Paper,对外进行技术PR,给客户输出解决方案等。对于一家普通的乙方公司而言,这就差不多完成了一个漏洞应急的流程,这个漏洞则会录入漏洞库,有的时候后续会继续进行跟踪,比如说破壳漏洞爆发的时候,官方发布了7次补丁,于是导致了新的六个CVE的出现,因为前6次补丁都被相关安全研究人员绕过,没有完成漏洞的完全修复,而破壳漏洞当时我们也连续跟踪了好几天,破壳漏洞详情可见https://www.seebug.org/vuldb/ssvid-88877。

点到面的漏洞研究与利用

那么怎样又是从点到面的漏洞研究和利用呢?从之前应急的一个安全事件举例说起,Redis等未授权访问的问题一直都存在,原因在于默认的安装配置没有强制要求设置密码和访问IP,于是用户默认安装情况下,经常会导致服务直接在公网开放,并且无需密码可以直接访问,等于你知道服务器的IP就可以直接连上进行操作;而15年底就有爆发过有黑客利用这点对互联网上存在问题的Redis服务进行攻击(样本关键词:crackit)。

这个漏洞的具体利用过程大概是这样的,下面是一个模拟攻击的视频:

按照漏洞的利用情况,最终可以达到获取系统权限的目的,但漏洞的利用其实有几个条件:

从传统的单点漏洞研究的角度来看,这次事件对应的利用要求众多,价值似乎不是那么大,估计在互联网上找个符合条件的目标都不容易找,最多搭建下测试环境,然后做个分析,输出个报告就差不多了,比如(这个报告其实包含了面的角度利用的一些统计和分析):
http://blog.knownsec.com/2015/11/analysis-of-redis-unauthorized-of-expolit/

不知道大家是不是也是认为符合利用条件的目标应该不多?但实际上的情况呢?大家先看几个图:

然后就是我们当时统计的一组数据:
根据 ZoomEye 最于2015年11月12日0点探测结果显示: 总的存在无验证可直接利用 Redis 服务的目标全球有49099,其中中国有16477。其中已经被黑的比例分别是全球65%(3.1万),中国67.5%(1.1万)。

注:ZoomEye是之前我负责过的一个网络空间搜索引擎,可以理解为黑客搜索引擎,可以通过它搜索开放在互联网上的各种设备(比如:port:3306可以搜索MySql服务,app:wordpress 可以搜索用wordpress搭建的网站),后面会比较经常出现。

是不是觉得有点出乎意料?为什么会有这么多符合利用条件的目标,这就是从面的角度与点的角度的区别,从点的角度似乎这个漏洞利用极难,但是从面的角度,在互联网这个大环境,足够大的基数,那么一切都可以变得足够大!

再看下下面这个截图,是一篇文章的截图:

其实在我们做研究之前,同样的利用黑产已经早就想到并且付诸实践了,通过同样的问题和视频演示的技巧,黑产批量的攻击这些存在问题的服务器,然后获取权限,组件成僵尸网络用于进行DDoS攻击。

有一种攻击方式叫做撒网式攻击,比如说还是这个Redis未授权访问的问题,有过一个测试(是不是我们你们猜?当然不是我们),对1600家网贷网站(通过一些导航网站获取得到),采集他们的域名、子域以及对应的IP,以及IP所在的C段,得到一个IP列表,对列表中的IP进行一个个的探测,最终发现存在3839个开放的Redis服务,其中存在无密码可直接访问的情况占了1/3。这些Redis里都有什么?

看到第一张图里的userinfo了吗?包含用户的账号和密码,尝试登录这些账户,发现不少账户里都存在不少金额;想想黑产会怎么利用?批量攻击,批量提取账户里的钱可否?或者其他的?

其实对于这些NoSQL,不止是Redis,同样其他在默认配置安装时没有设置账号密码、开放在公网的其他数据服务,如Memcached、ElasticSearch、 MongoDB同样存在可被利用的情况,正好也有MongoDB的探测情况(2014年数据):通过对开放在公网的MongoDB服务进行探测,发现无口令至少有3.8万IP,也就是这3.8万个MongoDB是直接可以随意操作的,包括下载数据、删除数据等。

举一反三

15年,有个比较重大的漏洞就是《“Java 反序列化”远程命令执行漏洞系列漏洞》,WebSphere,WebLogic,JBoss,Jenkins 和 OpenNMS 等 Java 应用都使用了 Apache Commons Collections 这个库,并且都存在一个序列化对象数据交互接口能够被访问到,于是都受这个漏洞影响,具体漏洞详情可见:https://www.seebug.org/vuldb/ssvid-89723

同样的,当利用面的方式去研究和探测后,可以看下受影响的数量:

或者是其他的比如ES远程代码执行?可以用来反弹Shell,也可以批量的利用:

除了这些网站服务器之外呢?比如摄像头

这只是搜索的某个型号摄像头的数量,更多的型号和品牌呢?

这些摄像头有客厅、办公室、工厂、大街、菜市场等,甚至卧室。看到这个图大家是否想象到这样呢?

不止摄像头,还有路由器,比如D-Link某几个型号路由器存在后门问题,看下这个后门的演示:

这个后门大概全球影响是这样的:

还有之前的比较重大的一次磊科(NetCore)路由器后门事件,2014/8/25,趋势科技研究员Tim Yeh发文描述了磊科疑似后门的igdmptd程序,全球有200多万台磊科路由受影响;2015/9,ZoomEye Team的探测发现UDP 53413端口的IP总数约为140万,其中110万左右是存在后门的磊科路由器,占比近80%。

其实像这些面的攻击,黑产一般都早于安全人员已经研究和利用,大家可以思考下,比如这么多的摄像头和路由器可以做什么?

  • 黑产守则一:流量即钱?
  • DDoS/CC资源?
  • 跳板 - 密网?
  • 拿用户各类隐私?

之前我负责有做过一个路由器专题,大家可以看下,https://www.zoomeye.org/project/router

继续说,如果服务器、摄像头、路由器等都还算好的,那么如果是工控设备呢?工控是最重要的脆弱系统!

这是一张工控网络图,当然,这个不是我研究的领域,更多的我就说不上来了,不过我们继续看:

通过搜索设备指纹,随便可以在公网上找到一个工控设备,这是某个PLC的管理Web页面,可以直接进行相关的配置,甚至这个Web管理平台本身存在任意文件读取漏洞。

这是另外的工控设备Web管理页面,以及同个网段下的摄像头,可以直接看到工厂内的情况。当然,其实在我看来,开放在公网上的这些毕竟是少数,更多的应该是通过公网无法访问的,举例只是想说明通过面的一种研究和利用(当然,工控设备我们可不敢乱研究)。

总结

其实,通过上面的内容,大家应该可以看到从点的漏洞研究和到面的研究的区别,举了一大堆例子并不是想跟大家表达什么,而是希望告知大家相对于单点的漏洞研究,面的角度,批量化的攻击又是怎样的;其实这些角度的攻击方式,不幸的是,黑产早已意识到并且付诸行动,而幸运的是这几年来,不止整个行业,甚至国家,也越来越重视网络安全,对于网民个人,安全意识也不断提高。其实很多时候,攻防的对抗,没法完全的防住地方,但我们可以让对方的攻击成本变高,高到入不敷出,就是对抗的胜利!