渗透测试之信息收集
进行渗透测试之前最重要的一步就是信息收集,在这个阶段我们要尽可能的收集关于目标的信息,最重要的就是收集服务器的配置信息和网站的敏感信息,其中就包括了域名和子域名信息、目标网站系统、CMS指纹、目标网站的真实IP、开放的端口等等,也就是说只要是与网站相关的信息,都要尽量的收集。
1.收集域名信息
拿到目标的域名之后,要做的第一件事就是要获取域名的注册信息,包括域名的DNS服务器信息、注册人信息(姓名、电话、邮箱…)等。常用的域名信息收集方法有
1.Whois查询
Whois是一个标准的互联网协议,可用于收集网络注册信息,包括注册得到域名、IP地址等。
常用在线Whois查询的网站:爱站工具网(https://whois.aizhan.com)、站长之家(http://whois.chinaz.com)
2.备案信息查询
根据国家法律法规的规定,网站需要网站的所有者向国家有关部门申请备案,这是国家信息产业部对于网站的一种管理方式,为了防止有人在网上从事非法的网络经营活动。
常用的备案信息查询网站:ICP备案查询网(http://www.beianbeian.com)、天眼查(http://www.tianyancha.com)
2. 收集敏感信息
Google hack 是使用搜索引擎对通过特殊构造的关键字进行搜索互联网上的相关敏感信息。常用的Google hack语法有下面的一些
图片来源:https://blog.csdn.net/u012991692/article/details/82937100 更多的Google hack语法移步到其博客
当然不仅仅只限于Google hack这一种方法,也可以去GitHub上面搜寻相关的敏感信息,甚至还能使用一些漏洞表进行查询历史的漏洞。
3.收集子域名信息
子域名就是网站的二级域名,是指顶级域名下的域名。如果目标的规模较大,安全性也会比较高一些,所以我们就会从一些子域名下手,使用迂回的方式进行渗透无疑是一种更好的方案。常用的收集子域名的方法有
1.使用子域名检测工具
常用的子域名检测工具有:Layer子域名挖掘机、Sublist3r等。
2.使用搜索引擎枚举
就是利用Google hack语法来进行查找,比如"site:xxx.com"就是查询xxx.com下的子域名。
4.收集常用的端口信息
一台服务器一共有65535个端口,我们不可能全部记完,我们只需要记住常用应用的默认端口和与其对应的服务即可(常见服务的端口会在后面说明),常用来扫描的端口的工具有:Nmap、御剑高速TCP端口扫描工具等。
5.指纹识别
网站的指纹是指网站的CMS指纹识别、计算机操作系统以及Web容器的指纹识别等。
CMS又称为整站系统或者文章系统。
常见CMS有Dedecms(织梦)、帝国、PHPCMS、WordPress等,我们要了解常见的CMS的目录结构等信息对进行渗透的时候有很大的帮助。
常用来扫描指纹的工具有:御剑Web指纹识别、WebRobo、椰树等。
6.查找真实IP
查找服务器的真实IP分为两种情况:目标服务器不存在CDN和目标服务器存在CDN
CDN即内容分布网络,主要解决由于传输距离过远和不同运营商结点造成的网络速度性能低下的问题,就是把用户经常访问到的数据资源缓存到节点服务器上,只要用户进行请求,离用户距离最近的节点服务器就会响应给用户,这样做的好处就是可以大大的降低服务器的负荷,提高网站的访问效率以及用户的体验。
1.如何判断服务器存不存在CDN
可以通过ping目标主域,观察域名的解析情况来判断是否存在,还可以利用在线网站来进行多地方的ping来查看解析的情况,常用的网站有17CE(www.17ce.com)。
2.目标服务器不存在CDN
如果服务器不存在CDN,直接使用命令行的ping命令就可以看到目标的服务器的真实IP。
3.目标服务器存在CDN
常用绕过CDN寻找真实IP的方法:
1、内部邮箱源
2、扫描网站的测试文件
3、分站域名
4、国外访问
5、查询域名的解析情况
6、如果目标网站有自己的APP,可以使用代码抓取APP的请求进行分析
7.收集敏感目录文件
对网站进行目录结构的扫描可以得到网站的后台管理页面、文件上传页面等等很多的隐藏页面,我们可以从中找到我们可能需要的东西,常用的扫描目录的工具有御剑后台扫描珍藏版、DirBuster等。
8.社会工程学
社会工程学就是与人交流的过程中一步步挖掘别人的信息。
社工库:是利用社会工程学进行攻击时积累的各方面数据的结构化数据库。