敏感信息和目录收集
目标域名可能存在较多的敏感目录和文件,这些敏感信息很可能存在目录穿越漏洞、文件上传漏洞,攻击者能通过这些漏洞直接下载网站源码。搜集这些信息对之后的渗透环节有帮助。通常,扫描检测方法有手动搜寻和自动工具查找两种方式,读者可以根据使用效果灵活决定使用哪种方式或两种方式都使用。
1.敏感信息和目录扫描工具
使用工具可以在很大程度上减少我们的工作量,敏感信息和目录扫描工具需要的是具有多线程能力和强大的字典,确保漏报率达到最低。我们以Dirsearch工具为例进行演示,如图1-6所示,从GitHub下载并安装Dirsearch工具,即可直接运行,检测“ms08067.com”是否存在敏感目录和文件。
其中,参数“-e”指定检测文件的后缀类型,参数“-u”指定检测的URL,参数“-r”指进行目录递归查询,即查到第一层泄露的目录后,会继续在这个目录下搜索下一层的子目录和文件。Dirsearch工具中的其他参数类型本节不再一一讲解,读者可以自行查看帮助文档。
常用的敏感信息和目录扫描工具如下。
Dirsearch:Web目录扫描工具
Gospider:利用高级爬虫技术发现敏感目录及文件
Dirmap:高级的Web目录、敏感信息扫描工具
Cansina:发现网站敏感目录的扫描工具
YuhScan:Web目录快速扫描工具
2.搜索引擎
搜索引擎就像一个无处不在的幽灵追寻人们在网上的痕迹,而我们可以通过构造特殊的关键字语法高效地搜索互联网上的敏感信息。表1-1列举了大部分搜索引擎常用的搜索关键字和说明,具体使用时需要针对不同的搜索引擎输入特定的关键字。
关键字 说 明
site 指定域名
inurl URL中存在关键字的网页intext 网页正文中的关键字
filetype 指定文件类型
intitle 网页标题中的关键字
info 查找指定网站的一些基本信息
cache 搜索Google里关于某些内容的缓存
常见的搜索引擎有Google、Bing、百度等。除此之外,还有一部分搜索引擎可以专门搜索目标资产,例如FOFA、ZoomEye、Shodan和Censys等,这些搜索引擎属于资产搜索引擎。资产搜索引擎比一般网站收录的搜索引擎更强大,功能也更多样化。每款搜索引擎都有自己独特的语法,在官网上可以找到其对应的用法。
如图1-7所示,以FOFA搜索引擎为例,可以通过使用不同的语法来搜索对应的内容和信息。
注意:直接输入查询语句,将从标题、html内容、http头信息、url字段中搜索。如果查询表达式有多个与或关系,则尽量在外面用“()”包含起来。
3.Burp Suite的Repeater模块
利用Burp Suite的Repeater模块同样可以获取一些服务器的信息,如运行的Server类型及版本、PHP的版本信息等。针对不同的服务器,可以利用不同的漏洞进行测试,如图1-8所示。
通过Burp Suite的重放功能,可以截取所有请求响应的包,在服务器的相应包中查询域名所在服务器使用的一些容器、搭建语言和敏感接口等。
4.GitHub
(1)手动搜索GitHub中的敏感信息。
可以在GitHub中搜索关键字获取代码仓库中的敏感信息。搜索GitHub中的敏感信息时,需要掌握的搜索技巧如表1-2所示。
主要搜索技巧 说 明
in:name
in:name security查出仓库中含有security关键字的项目
in:description
in:name,description security查出仓库名或项目描述中有security关键字的项目
in:readme
in:readme security查出readme.md文件里有security关键字的项目
repo:owner/name
repo:mqlsy/security查出mqlsy中有security关键字的项目
搜索GitHub中的敏感信息时,可以使用辅助搜索的技巧,如表1-3所示。
辅助搜索技巧 说 明
stars:n
stars:>=100查出star数大于等于100个的项目(只能确定范围,精确值比较难确定)
pushed:YYYY-MM-DD
security pushed:>2022-09-10查出仓库中包含security关键字,并且在2022年9月10日之后更新过的项目
created:YYYY-MM-DD
security created:<2022-09-10查出仓库中包含security关键字,并且在2022年9月10日之前创建的项目
size:n
size:1000 查出仓库大小等于1MB的项目。size:>=30000查出仓库大小至少大于30MB的项目
license:LICENSE_KEYWORD
license:apache-2.0查出仓库的开源协议是apache-2.0的项目
使用一些综合语法来演示如何在GitHub上搜索敏感信息,如图1-9所示。
使用“filename:database”语法寻找文件名为database的项目文件,通过“language:java”语法寻找用Java语言编写的项目文件,最后跟上一个搜索关键字“password”。综合起来的效果就是,过滤出用Java语言编写的、项目名为database的、文件中含有password关键字的所有项目文件。
(2)自动搜索GitHub中的敏感信息。
介绍几个自动爬取GitHub敏感信息的项目,建议读者在熟悉某一个工具的工作流程后,按照自己的风格和想法重新设计并编写一个程序。
如图1-10所示,使用GitPrey工具收集GitHub上的敏感信息和源码、密码、数据库文件等。
其中参数“-k”指需要检索的关键字内容,这里可以指定多个关键字。
常用的自动搜集GitHub中敏感信息的工具如下。
Nuggests
theHarvester
GSIL
Gshark
GitPrey
旁站和C段
1.旁站和C段简介
旁站(又称同服站点),即和目标网站在同一服务器上的网站,旁站攻击是指攻击和目标网站在同一台服务器上的其他网站,通过“跳站”或者“绕站”攻击实现攻击主站的目的。
C段是指目标网站所在的服务器IP地址末段范围内的其他服务器,IP地址通常由四段32位二进制组成,其中每8位为一段,例如192.168.132.3对应的C段,前3个IP地址不变,只变动最后一个IP地址,就是192.168.132.1-255。C段对于探测目标域名的其他网络资产具有重要价值。当在主域名和二级域名上没有突破点时,就需要利用C段跨域渗透目标服务器。
2.旁站检测的常用方法
(1)使用在线网站进行旁站检测。
检测旁站的方法有很多,这里可以使用在线网站检测或使用IP地址反查工具检测,将不同的检测结果汇总整理,得出较全面的旁站信息。
图1-17所示为使用在线旁站查询网站“WebScan”对某域名进行旁站检测。
可以看到,上述搜索结果中共有416个旁站,不仅如此,结果还显示了服务器的IP地址及位置、旁站所使用的域名信息列表,以及其他域的部分介绍信息。
常用的在线检测旁站的工具如下。
WebScan
站长之家
查旁站网站
InfoByIp
ViewDNS
(2)使用工具进行旁站检测。
可以通过工具或者在线检测网站来检测同IP地址网站,确认旁站是否存在。这种检测方法也适用于DNS记录反查子域名,同样也可以使用同IP地址网站反查子域名和旁站。
如图1-18所示,使用工具Ip2domain查询“xxx.com”对应的子域名和同服网站域名。
使用参数“-t”指定要查询的域名或者IP地址,然后直接运行即可,得到的结果不仅包含旁站域名,还根据百度权重进行了排名。读者可通过参数“-h”查看其他的参数用法。
常用的检测同IP地址网站的工具如下。
Ip2domain
3.C段信息检测常用方法
有很多种C段信息检测的方法,这里列举几种常用的。
(1)普通搜索引擎语法:“site:xxx.xxx.xxx.*”。
(2)网络资产搜索引擎FOFA/Shodan语法:ip=“xxx.xxx.xxx.0/24”。
(3)自动化扫描工具Nmap、Masscan等端口扫描工具。
如图1-19所示,使用Nmap对某IP地址的C段信息进行搜索。
可以看到,使用Nmap命令对C段主机进行了存活探测,其中参数“-sn”指不扫描任何端口,参数“-PE”指使用ICMP扫描,参数“-n”指不进行DNS解析。读者可以查看Nmap的帮助文档,结合更多的参数获得自己所需的详细信息。
(4)在线查询C段网站。
如图1-20所示,使用查旁站网站同样可以对某IP地址的C段信息进行搜索。
将IP地址输入查旁站网站,自动转化为C段信息进行查询,不仅给出了可能存活的IP地址,而且给出了判断存活的依据。
常用的查C段在线工具的网站如下。
WebScan
站长工具
查旁站
常用的查C段工具如下。
Nmap
Masscan