- 网络安全攻防技术实战
- 闵海钊
- 2346字
- 2020-11-21 19:35:11
第3章 漏洞分析
3.1 漏洞研究
通过信息收集章节的学习,可以搜集到很多目标的信息,例如,CMS版本、敏感文件和漏洞情况等,但是对于此CMS版本有哪些漏洞、是否有其他敏感文件或者此敏感文件是否存在,以及漏洞如何利用等还不清楚,这就需要对其进一步进行研究。再就是从事网络安全的人员需要实时跟踪发生的安全事件,比如,每当曝出新漏洞时,需要快速对其展开研究,了解漏洞产生原因、利用方法和修复方法,漏洞研究最快捷的方法就是直接从网上搜索公开的资源进行学习研究,其次是通过本地私有环境进行漏洞复现,下面主要介绍如何快速通过网络环境定位需要进行研究的漏洞。
3.1.1 Google hacking
搜索资源最先想到的应该就是搜索引擎,对不了解的漏洞可以直接通过搜索引擎对其进行搜索,也可以通过特定语法直接验证或发现漏洞。Google搜索是由Google公司推出的一个互联网搜索引擎,它是互联网上最大、影响最广泛的搜索引擎,而Google hacking可以利用Google搜索的语法进行精准的搜索,通过特定语法可以查找网站配置或代码中的安全漏洞。下面介绍常见的Google搜索语法。
对语法有一定了解后,下面通过实例介绍其常见用法。
1.搜索管理后台
通常管理后台的URL会包含admin、login、admin_login、manage、system或console等关键字,因此可以通过“inurl”搜索包含上述关键字的URL来定位管理后台。若想仅搜索某一站点是否有管理后台,可以通过“site”指定搜索的域名,下面以搜索关键字“admin_login”为例介绍如何搜索管理后台,利用Google搜索输入“inurl:admin_login”找到了很多管理地址是“admin_login”的网站,搜索后台如图3-1所示。
图3‑1 搜索后台
2.搜索错误的配置
由于错误配置导致被黑客攻击的事件常常发生,那么如何快速定位站点的错误配置或者如何搜索存在错误配置的站点,下面以目录浏览漏洞为例介绍如何使用Google搜索错误的配置。
目录浏览是由于网站配置不当导致的,通常网站标题中会包含“index of”关键字,因此可以使用“intitle”搜索网站标题包含“index of”关键字的网站来搜索存在目录浏览漏洞的站点,若想仅搜索某一站点是否存在目录浏览漏洞,可以通过“site”指定搜索的域名,搜索错误的配置如图3-2所示。
图3‑2 搜索错误的配置
3.搜索敏感文件
利用Google搜索的语法可以快速搜索敏感文件,例如,网站的备份文件通常以“.bak”为后缀;对于PHP站点可以通过“inurl”搜索后缀为“.php”的文件;日志文件的后缀通常为“.log”,可以通过“inurl”搜索URL中包含“.log”的网址来判断是否存在日志文件;对于数据库文件或配置文件,可以通过“filetype”指定搜索类型为“.sql”或“.conf”的文件。
3.1.2 Exploit Database
Exploit Database直译过来是利用数据库,它收集了大量的漏洞及漏洞利用程序。Exploit Database的官网为“https://www.exploit-db.com”,主要有Exploits、GHDB、Shellcodes和Papers四大模块,通过这四大模块可以搜索相关信息来分析学习漏洞或下载漏洞利用程序,下面主要通过Exploits和GHDB模块来介绍Exploit Database的使用。
1.Exploits
Exploits模块提供了大量的漏洞利用程序,它的类型有dos、local、remote和webapps四大类:dos类主要是用于拒绝服务攻击的漏洞利用程序;local类是本地漏洞利用程序,如本地提权的脚本;remote类是远程漏洞利用程序,如远程代码攻击的脚本;webapps类是Web应用的漏洞利用程序,如CMS相关漏洞的利用脚本。
假如通过信息收集获取到目标站点使用的是WordPress,并且安装了插件WPForms,可以直接通过搜索“Wordpress Plugin WPForms”来寻找是否提供了相关漏洞的利用方法,因为凡是有漏洞利用程序的目标站点肯定存在漏洞,然后参考其提供的利用方法,则可以快速判断目标是否存在此漏洞。搜索之后发现存在漏洞利用程序,漏洞详情在漏洞利用程序里有详细描述,Exploits模块如图3-3所示。
图3‑3 Exploits模块
2.GHDB
GHDB模块提供了大量的Google hacking语法,例如想寻找使用了JBoss的站点,但是不知道如何使用Google hacking搜索,可以直接在GHDB模块搜索JBoss相关的Google hacking语法,GHDB模块的使用如图3-4所示。
图3‑4 GHDB模块的使用
然后直接将搜索到的Google hacking语法“intitle:"Welcome to JBoss"”复制到Google中并进行搜索,便可找到很多用了JBoss的站点,搜索JBoss站点如图3-5所示。
图3‑5 搜索JBoss站点
3.1.3 Shodan
Shodan是用于搜索Internet连接设备的搜索引擎,使用Shodan搜索语法可以搜索连接到互联网的服务器、网络设备和摄像头等,而前面提到的Google hacking主要用于快速查找网站,对于连接设备的搜索远不如Shodan强大。下面介绍常见的Shodan搜索语法。
下面介绍一个通过Shodan搜索联网服务器的实例。
输入语句“port:80 product:"Microsoft-IIS" version:"6.0"”,搜索Microsoft-IIS版本为6.0并且开放80端口的服务器,搜索互联网服务器如图3-6所示。
图3‑6 搜索互联网服务器
3.1.4 CVE/CNVD/CNNVD
CNVD是国家信息安全漏洞共享平台,官网地址为“https://www.cnvd.org.cn”。CNNVD是中国国家信息安全漏洞库,官网地址为“http://www.cnnvd.org.cn”。CVE是国际的安全漏洞库,官网地址为“http://cve.mitre.org”。
为了方便漏洞的查询,官方通常会对漏洞进行编号,一般以CVE、CNVD或CNNVD等开头,后面为年份和漏洞编号,CNNVD略有不同,后面为年月和漏洞编号,例如:CVE-2020-2020、CNVD-2020-18705和CNNVD-202001-1001。
对于CNVD和CNNVD来说,可以直接从首页单击漏洞查询搜索漏洞,以CNNVD为例,通过首页可以了解到近期影响较大的安全漏洞,CNNVD的首页如图3-7所示。
图3‑7 CNNVD的首页
单击“漏洞信息”可以查看收录的所有漏洞,从“漏洞信息快速查询”可以根据漏洞名称、编号和时间进行搜索,以CVE-2020-8835为例,直接搜索此漏洞编号便可定位漏洞,漏洞查询如图3-8所示。
然后单击漏洞名称可以查看漏洞信息详情、漏洞简介、漏洞公告、参考网址、受影响实体和补丁等,通过这些信息可以辅助分析漏洞,漏洞信息详情如图3-9所示。
对于CVE来说,每当曝光新漏洞时可以通过从“Search CVE List”中查找对应漏洞编号或漏洞名称来搜索此漏洞,以CVE-2020-8835为例,直接搜索此漏洞编号,漏洞搜索如图3-10所示。
图3‑8 漏洞查询
图3‑9 漏洞信息详情
图3‑10 漏洞搜索
由于搜索的是漏洞编号,所以只返回了一条结果,从返回结果可以看到名称和漏洞描述,根据漏洞描述可知此漏洞是Linux内核权限提升漏洞,漏洞描述如图3-11所示。
图3‑11 漏洞描述
若想进一步了解漏洞信息详情可以单击名称“CVE-2020-8835”,然后可以看到提供了很多参考链接,通过提供的参考链接能够进一步了解漏洞,也可以通过NVD美国国家通用漏洞库了解更多相关信息,漏洞信息详情如图3-12所示。
图3‑12 漏洞信息详情