| 看我如何参加众测项目发现美国国防部网站的各类高危漏洞

美国国防部(DoD)于2016年11月21日首次与HackerOne合作,开展了“Hack the Pentagon”的漏洞众测项目,这将允许安全研究人员通过背景审查在HackerOne平台发现并提交美国军方网站漏洞。当该项目一开始,我就迫不及待地想报名参加,一方面是帮助DoD方面做些工作,另外也想借此机会提高自己的安全技能。本文目的在于,探讨一些类似漏洞众测项目中容易被采用的各种独特和通用型漏洞,同时也分享我参与该项目的一点经验。目前,我在该项目排行榜中处于第8位,之后,我会陆续通过适当的总结描述方式公布我在该项目中提交的相关漏洞。

| 看我如何参加众测项目发现美国国防部网站的各类高危漏洞

前期踩点

由于该项目涉及的目标范围非常之大,*.mil相关网站或美国防部使用IP都算测试范围,一开始很难缩小范围定位到一两个网站或子域名进行漏洞挖掘,好在我们可以使用Google Dork搜索语法来进行细分简化,利用这种方式,我们可以使用类似 site:*.*.mil 或 site:*.website.mil语法,来对一些包含文件或潜在漏洞终端的网站或子域名进行搜索枚举。我们可以使用其中的操作符来指定我们想要搜索的结果,如指定某特定域名,或进一步缩小到文件扩展名、特定的URL字符串等。请求site:*.*.mil中,使用site来指定想要搜索的大概网站,而*.*.两个通配符则可得到相关的子域名网站,这是一种很宽泛的枚举方式;另一种语法( site:*.website.mil)则是对特定网站和其后续子域名网站的枚举。

利用上述方式可以检索如Flash程序等已知的漏洞应用,也可发现一些特定的CMS安装线索,我就是用这种方式在该项目中发现了大量漏洞。当然也能使用类似Aquatone的工具来完全枚举出某个特定网站的子域名或应用端口。有些子域名网站内还包含下一级子域名,比如dev.subdomain.website.com内可能还包含*.dev.subdomain.website.com等其它子域名网站,确保无漏网之鱼,这样可以发现更多目标测试主机。

以上两种前期踩点技术可适用于大多漏洞众测项目,另外还有一种方法是,通过阅读网站中的JS文件来发现服务端、敏感信息、隐藏控制面板的URL链接等有用信息,这种方法工具如linkfinder可最大化地提高URL发现效率,后续我会写一篇关于该工具的介绍文章。

漏洞发现

我发现的大部分漏洞主要是一些XSS之类的简单漏洞,它们存在于登录框、错误消息、Flash程序等,由于这些漏洞非常容易发现,在此也没必要作出过多解释,如Flash程序的xss漏洞涉及的flashmediaelement、video-js、jwplayer、plupload等,有很多公开的在线资料说明。我要着重说的是在该项目中发现的一些高危中危漏洞,这些漏洞如果换种思路来说,其实非常容易发现,甚至连一些众测白帽新手都能发现。

Cold Fusion漏洞

首先,比如在国防部DoD网站系统中,采用了很多Cold Fusion类架构,由于Cold Fusion本身就存在很多漏洞,所以从这个点上就可发现很多高危漏洞。在此,我推荐《Cold Fusion渗透测试向导》一书,可以深入研究其中的相关漏洞报告和工作机制说明,这非常有助于此类漏洞挖掘。

另外,我还注意到,Cold Fusion类架构网站的SQL注入漏洞非常普遍且很容易发现,我就在DoD的一个网站中发现了两个这种SQL注入漏洞,一个是这种样式的:

http://website.com/news/news.cfm?newsItem=1

在newsltem=1值后加上撇号变为http://website.com/news/news.cfm?newsItem=1‘之后,将会抛出一个SQL错误,于是我马上使用基于时间的查询语句,让网站在响应之前暂停几秒钟的方式,来测试这个漏洞。只要你认真细心,这种漏洞非常容易发现。

Apache实例漏洞

也就是在这个网站上,我还发现了另外一个Apache的Solr实例,它就有点类似于Apache的Elasticsearch分布式搜索引擎,尽管最近Solr实例存在一个远程代码执行(RCE)漏洞,但很遗憾该网站的Solr实例不存在这种RCE漏洞,但这也为我提供了更多了解网站架构信息的渠道,由此,我继续深入挖掘,最终发现了该Solr实例中某个功能函数的一个XSS漏洞。

此外,还能通过这个Pentest-Resources的Github资源库来查找一些默认和有意思的网站文件,因此,我发现了大部份DoD网站都存在一些DotNetNuke(或者叫DNN)安全问题,这类DNN文件普遍存在于 /DNNCorp/ 或 /DesktopModules/目录下。 我在该项目中提交被采纳的一个中危漏洞就是DNN的一个已知的任意文件下载漏洞,存在该漏洞的服务端样式是这种的:

http://xxx.xx.mil/desktopmodules/eventscalendar/downloaddoc.aspx?f=/file/test.doc

该漏洞只需在后面添加上具体的文件路径,就能让攻击者下载网站中的任意文件。

Oracle应用漏洞

而且,你只要深入分析,也能发现DoD网站中采用了很多Oracle应用,而且这些Oracle应用大多都是过期版本,比如我发现DoD网站中大量使用了 Oracle的人力资源管理系统People Soft,实际上,People Soft本身就存在大把漏洞,ERPSoft等安全网站公布的漏洞分析信息中,甚至包含了一些漏洞测试的PoC代码,直接可以拿来就用。一种简单的方式就是可通过查看 /pspc/ 或 /psigw/目录来检查People Soft。总体来说,Oracle People Soft存在未授权XXE、SSRF和XSS这几种漏洞,例如,可以用以下方式来利用SSRF漏洞:

首先,访问网站:

http://website.com/IMServlet?Method=CONNECT

然后再访问链接,来查看网站具体响应:

http://website.com/IMServlet?Method=GOOGLE_PRESENCE&im_to_user=abc&im_server_name=GOOGLE&im_server=Host:Port/

或者,你也可以把它指向你控制的网站,通过接收链接响应来判断该终端是否正常,有时候,这会导致一些阅读服务和敏感的内部实例信息泄露。

我发现的一些独特漏洞

在此,我想把我参与该项目中发现并提交的一些,我个人认为比较优秀的漏洞在此作个分享,因为一方面这些漏洞比较独特,另外从某种意义上来说,它们也存在一定程度的较高安全威胁。这些漏洞中,我自认为最好两个提交漏洞都是与OpenFTP相关,可利用漏洞上传任意文件或查看OpenFTP服务端的任意文件,但由于架设有OpenFTP的DoD网站已经停用,所以最终的漏洞威胁评级相对较低。

我的其它一些优秀漏洞大多是通过Shodan.io网站发现的,有点不可思议,其中比较独特的一个漏洞是网站用户邮箱收集漏洞,该漏洞存在于网站的邮件账号激活区域,如果你在该区域输入一个有效的网站注册用户名,网站就会给出提示:“一封激活邮件已经发送到用户名某某某对应的user@email.com邮箱中”,而且该激活区域竟然没有激活次数限制。由此,我首先想到的是输入“Admin”来获取网站管理员邮箱地址,当然结合一些通用的用户名列表字典,可以猜解到大量的用户名对应的注册邮箱,后果就是,攻击者可对网站管理员或其他特定人员形成定向钓鱼攻击,并造成网站注册用户的个人信息泄露。

最后,我要说的是一个我认为影响相对严重的,且比较经典的文件信息泄露漏洞,存在该漏洞的网站包含了一个从网站系统下载pdf和其它电子文档的功能,该功能终点样式如下:

http://website.com/xxx/account/downloadfile?fileString=/pathtodocument/document.pdf

在该功能下,可通过../方式对网站目录进行枚举检索,最终可定位查看到某个特定文件,如etc/shadow或其它包含敏感信息的文件,由此,我检索到了etc/shadow文件中包含了root密码的hash值,没做相关破解只是简单地报告了漏洞。虽然该漏洞存在一定安全影响,但由于该网站是一个之前系统的遗留网站,所以最终漏洞评级也只是低危而已。

经验总结

美国国防部(DoD)与HackerOne合作的这一公开的漏洞众测项目表明,可以利用广泛的白帽黑客技能,以漏洞赏金方式来及早地发现和预防安全隐患,这是一种积极的安全应对方式,可以有效实现漏洞堵塞和风险消除,能最大程度地保护目标测试范围内的资产和数据安全。我个人通过持续地参加DoD的这种项目,在技能素质和安全经验上也有了很大的提高。

对于很多想成为“漏洞赏金猎人”的小白来说,加入某个众测项目最难的就是从何开始,经验上来说,你可以先通过Google dork语法或shodan.io搜索来发现一些些漏洞,当然,像我文章中提到的,你也可以看看DotNetNuke或Oracle实例这类独特漏洞,我发现奇怪的是,好像没多少人了解这类漏洞。

想要成为一名优秀的“漏洞赏金猎人”,需要不断保持学习,永不停息。就像PortSwigger首席研究员James Kettle在黑帽大会上的演讲《Cracking the Lens: Targeting HTTP’s Hidden Attack-Surface》那样,新的漏洞出现,就会产生新的攻击面,造成安全隐患。演讲中James Kettle分享了通过构造恶意的HTTP请求和Header头信息,侧面勾勒出目标系统中HTTP服务的隐藏攻击面,最终,他综合利用了这种技术成功入侵测试了美国国防部网络,并获得了3万美金的奖励。

经漏洞提交流程,此文中提到的一些漏洞已经作了公开,你们可以通过查找我的HackerOne资料进行查询,最后我还想说的是,漏洞众测社区非常欢迎新手的加入,当然了,你自己也不要害怕动脑子提问题,遇到难题也得积极想办法解决。

*参考来源:medium,FreeBuf小编clouds编译