信息搜集指在对目标进行渗透测试前所做的一系列工作,具体为对目标资产信息的搜集主要包括但不限于whois信息,子域名,目标IP,旁站C段查询,邮箱搜集,CMS类型,敏感目录,端口信息,服务器与中间件信息等内容的搜集。
信息搜集贯穿于整个渗透测试,就渗透测试的结果来说成功失败都取决于与信息搜集的深度和广度,而从渗透测试的本质来看渗透测试其实就是信息搜集。信息搜集的越全面越多越丰富对于后期的渗透思路也就更广,渗透测试的成功率也就也高,今天就对信息搜集相关知识做一个梳理,写的不好的请各位大佬多多指导!!!
主动信息搜集:通过主动对服务器或web程序直接发起访问,探测目标的相关资产信息,这种搜集方法通常容易被目标察觉,但搜集的信息更为全面丰富
被动信息搜集:通过第三方不与目标直接接触的探测方式,包括whois查询,google语法搜索等方式方法,此方法不容易被目标察觉,但搜集的信息需要甄别,而且较少。
whois是用来查询域名注册所有者等信息的传输协议。简单说,whois就是一个用来查询域名是否已经被注册,以及注册域名的详细信息的数据库(如域名所有人、域名注册商)。通过whois来实现对域名信息的查询。早期的whois查询多以命令行接口存在,但是现在出现了一些网页接口简化的线上查询工具,可以一次向不同的数据库查询。网页接口的查询工具仍然依赖whois协议向服务器发送查询请求,命令行接口的工具仍然被系统管理员广泛使用。whois通常使用TCP协议43端口。每个域名/IP的whois信息由对应的管理机构保存。
whois信息可以获取关键注册人的信息,包括注册商、联系人、联系邮箱、联系电话、创建时间等,可以进行邮箱反查域名,爆破邮箱,社工,域名劫持等等
常用网站和工具:站长之家、爱站、微步在线、kali自带的whois查询
企业信息搜集主要包括:
1:搜集企业的发展、文化、工商信息、涉诉信息、商标专利、失信信息、企业变更与企业年报、以及企业关联关系查询等,
2.员工信息(手机号码、邮箱、姓名等),组织框架、企业法人、企业综合信息等。
3.其中员工信息收集是信息收集中的一项重要工作,员工信息包括:员工姓名、员工工号、员工家庭及交际信息、上网习惯等。(社会工程学)
4.员工身份信息:员工简历,员工身份证,手机号,生日,家乡,住址等个人信息。5、员工社交账号信息:QQ号,QQ群,微博,微信,支付宝,员工邮箱账号等
通过以上这些信息的搜集可以方便后续的一个渗透广度。
常用工具:天眼查、企查查、启信宝
子域名收集可以发现更多渗透测试范围内的域名/子域名,以增加漏洞发现机率;通常一台服务器上不可能只有一个站点,而是有很多个站点,这些站点之间没有必然的联系,他们相互独立运行,使用不同的域名,可能有些端口都不同,但是它们却共存在一台服务器上。这就给我们提供了一个新的思路,如果我们要对某一个站点进行直接渗透无法突破时,那么我们可以对同服务器的其他站点进行渗透,只要能打破一个缺口,就能攻击整个服务器上的其他站点,甚至是一个服务集群
常用方法:google语法、Kali中的DNS分析工具、Dnsenum、Dnsmap、Dnsrecon、whois查询、Fierce
Window中子域名查询:subDomainsbrute工具、Layer子域名挖掘机
对于目标IP的搜集,首先,我们要判断该域名是否存在CDN的情况,现在大部分网站都加了CDN,CDN的虚假IP干扰了我们的渗透测试,所以我们查找到目标真实IP,对于网站是否使用CDN有以下判断方法:
方法1:使用各种多地 ping 的服务,查看对应 IP 地址是否唯一,如果不唯一多半是使用了CDN, 多地 Ping 网站有:站长工具的多地ping
方法2:使用 nslookup 进行检测,原理同上,如果返回域名解析对应多个 IP 地址多半是使用了 CDN。
方法1:Ping法:直接ping example.com而不是www.example.com,因为现有很多CDN厂商基本只要求把www.example.com cname到CDN主服务器上去,那么直接ping example.com有可能直接获得真实IP
方法2:二级域名,因为CDN的价格也是不便宜。很多厂商一般都只会对一级域名进行设置CDN,而二级域名通常不会设置,这时我们就可以利用前面搜集的到二级域名来进行ping,从而获得真实IP
方法3:查询历史DNS记录,查看 IP 与 域名绑定的历史记录,可能会存在使用 CDN 前的记录,相关查询网站有:DNS查询、微步在线、在线域名信息查询等
方法4:网络空间引擎搜索法,常见的有以前的钟馗之眼,shodan,fofa搜索。以fofa为例,只需输入:title:“网站的title关键字”或者body:“网站的body特征”就可以找出fofa收录的有这些关键字的ip域名,很多时候能获取网站的真实ip。
方法还有很多,详细的可以搜索CDN绕过方法。
网站指纹识别就是通过对网站的特殊文件和一些配置文件的查看来识别网站所采用的开发语言、开发框架,以及识别网站所用的操作系统、服务器和一些中间件信息,通过搜集这些内容可以查看网站是否存在已知漏洞,以帮助我们后期的渗透测试(主要就是一些CMS漏洞和中间件漏洞)
目前常见的web应用指纹识别主要有以下四种方式
1:网页中发现关键字
2:特定文件的MD5(主要是静态文件、不一定要是MD5)
3:指定URL的关键字
4:指定URL的TAG模式
手工网站指纹识别信息有以下这些地方:
1.指定路径下指定名称的js文件或代码。
2.指定路径下指定名称的css文件或代码。
3.
4.meta标记中带程序标识中带程序标识。
5.display:none中的版权信息。
6.页面底部版权信息,关键字© Powered by等。
7.readme.txt、License.txt、help.txt等文件。
8.指定路径下指定图片文件,如一些小的图标文件,后台登录页面中的图标文件等,一般管理员不会修改它们。
9.注释掉的html代码中