前段时间,看了一本书名为《Kali linux 渗透测试的艺术》,我发现书中第四章信息搜集那部分有些内容不能适应有些内容不能适用国内,这勾起了我想总结一下国内信息搜集的欲望,于是就有了这篇文章。
什么是信息搜集信息搜集也称踩点,信息搜集毋庸置疑就是尽可能的搜集目标的信息,包括端口信息、DNS信息、员工邮箱等等看似并不起眼的一些信息都算是信息搜集,这些看似微乎其微的信息,对于渗透测试而言就关乎到成功与否了。
信息搜集的重要性信息搜集是渗透测试的最重要的阶段,占据整个渗透测试的60%,可见信息搜集的重要性。根据收集的有用信息,可以大大提高我们渗透测试的成功率。
信息搜集的分类 1、主动式信息搜集(可获取到的信息较多,但易被目标发现) 2、通过直接发起与被测目标网络之间的互动来获取相关信息,如通过Nmap扫描目标系统。 3、被动式信息搜集(搜集到的信息较少,但不易被发现) 4、通过第三方服务来获取目标网络相关信息。如通过搜索引擎方式来搜集信息。 搜集什么信息 1、whois信息(微步) 2、网站架构 3、dns信息(通过查询dns我们可以检测是否存在dns域传送漏洞) 4、子域名搜集 5、敏感目录及敏感信息、源码泄露(搜索引擎+工具) 6、脆弱系统(网络空间) 7、旁站查询 8、C端查询 9、指纹信息 10、端口服务 11、备案信息 12、真实ip 13、探测waf 14、社工(朋友圈、微博、qq空间、求职、交易等社交平台) 15、企业信息(天眼查、企业信用信息公示系统、工业和信息化部ICP/IP地址/域名信息备案管理系统) 信息搜集的流程上面我已经列举了需要搜集的信息,然后我给它们分了一下类。
我考虑到一个网站的组成是由域名、服务器、网站程序组成的。
因此:
首先入手域名方面:whois、子域名、备案信息;
其次是入手服务器方面:dns信息、端口服务、真实ip;
然后入手网站程序(web层)方面:网站架构、敏感目录及敏感信息、源码泄露(搜索引擎+工具)、脆弱系统(网络空间)、旁站查询、C端查询、指纹信息、探测waf;
最后入手企业方面:天眼查、企业信用信息公示系统
归了类之后,我做了一张脑图。
脑图如下图所示:
Whois信息和Whois反查
whois是用来查询域名的IP以及所有者等信息的传输协议。 whois信息可以获取关键注册人的信息,包括注册商、联系人、联系邮箱、联系电话、创建时间等,可以进行邮箱反查域名,爆破邮箱,社工,域名劫持等等。
查询方式1、 http://whois.chinaz.com/
2、 微步
3、 https://who.is/
4、Linux whois命令
5、其他工具
这里需要注意的是国际域名可以设置隐私保护,但像国内.cn等域名是不可以设置隐私保护的。
当然我们得比较一下这几种方式哪一种比较适合自己。
站长之家查询whois信息这里我用360.cn为例。可以看到下图我们搜集到了注册商、联系人、联系邮箱等信息。
可以看到很直观,很中国,而且我们还可以通过联系人和联系邮箱反查。
我们通过联系人反查,搜集到更多信息,效果如下图
我们也可以通过邮箱反查,效果如下图
微步查询whois信息
下图通过微步查询whois信息的效果,和站长之家一样很中国,想要反查whois需要复制邮箱
图是反查邮箱的效果,微步需要登录才可以查看更多的信息。
因此相较于站长之家就显得有些麻烦了。
who.is查询whois信息下图是通过who.is网站查询到的whois信息,可以看到中文字符竟还有乱码,很外国,且不能whois反查。
Linux whois命令查询whois信息
需要注意的是并不是所有Linux系统都自带whois命令的。
我这里就用CentOS7来演示安装whois客户端。
具体命令的话可以看下图
安装完成之后,我们来查询一下360.cn。可以看到下图的效果,同样出现了乱码。
其他工具查询whois信息
查询whois信息的工具,我这里不做讲解了,工具实质上还是调用了网站接口的。
因此通过比较,我们针对国内网站的whois信息,我们使用站长之家和微步来查询whois信息效率会比较高。
子域名搜集子域名收集可以发现更多目标,以增加渗透测试成功的可能性,探测到更多隐藏或遗忘的应用服务,这些应用往往可导致一些严重漏洞。当一个主站坚不可摧时,我们可以尝试从分站入手。
查询方式1、layer子域名挖掘机
2、 https://phpinfo.me/domain/
3、subDomainsBrute
4、搜索引擎语法(site:xxx.com)
layer子域名挖掘机下载地址: https://www.webshell.cc/6384.html
我们运行这款工具需要安装.net framework 4.0以上,否则会出现像下图一样的错误信息
我就以安装4.5.2为例
安装完毕后会出现下图
现在可以成功运行工具了
以360.cn为例,爆破的效果如下图,这款软件的好处是还可以进行扫描端口和探测服务器类型
https://phpinfo.me/domain/
这是Lcy大佬的在线子域名爆破工具,我们可以测试一下爆破360.cn的子域名的效果,如下图所示,作为在线工具,它的爆破速度很可观。
subDomainsBrute
这是lijiejie大佬用python写的子域名爆破工具,不用说运行的话需要先安装python,对于懒惰的人,直接拖进kali里直接就可以运行。
github下载地址: https://github.com/lijiejie/subDomainsBrute
下图是以360.cn为例,用这款工具爆破出来的子域名,可以看到比较少,这是因为字典比较小的原因。
搜索引擎语法(site:xxx.com)
我们也可以通过搜索引擎的语法搜索,但是搜索到的子域名比较少。
下图是通过百度搜索360.cn子域名的效果图,当然谷歌也是同样的语法。
备案信息
备案信息分为两种,一种是IPC备案信息查询,一种是公安部备案信息查询。如果是国外的服务器是不需要备案的,因此可以忽略此步骤,国内的服务器是需要备案的,因此可以尝试获取信息。
查询方式1、 ICP备案查询
2、 公安部备案查询
ICP备案查询下图是通过网站查询ICP备案信息
公安部备案查询
下图是通过全国公安机关互联网安全管理服务平台查询公安部备案信息
DNS信息搜集
通过查询DNS信息,我们可能可以发现网站的真实ip地址,也可以尝试测试是否存在DNS域传送漏洞。
查询方式 1、Kali(host、big命令) 2、windows(nslookup命令) 3、在线工具 Kali命令host查询DNS信息,如下图所示:
big查询DNS信息,如下图所示
windows命令
nslookup命令效果如下图,比较low。
在线工具
地址:
http://tool.chinaz.com/dns/
https://tool.lu/dns/
这里就不做讲解了,和查whois信息一样。
探测端口服务 查询方式Nmap
个人觉得用Nmap足矣
Nmap扫描扫描结果如下图所示,可以看到我们可以扫描到操作系统类型、端口信息和端口对应的服务信息。
下图是详细端口对应服务图
获取网站真实ip
现在大多数的网站都开启了CDN加速,导致我们获取到的IP地址不一定是真实的IP地址。
CDN的全称是ContentDelivery Network,即内容分发网络。其基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳定。通过在网络各处放置节点服务器所构成的在现有的互联网基础之上的一层智能虚拟网络,CDN系统能够实时地根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上。其目的是使用户可就近取得所需内容,解决 Internet网络拥挤的状况,提高用户访问网站的响应速度。
1、二级域名法 一般网站不会所有的二级域名放CDN,因此我们可以利用这点来获取网站的真实ip
2、 多地ping法 由CDN的原理,不同的地方去Ping服务器,如果IP不一样,则目标网站肯定使用了CDN
3、nslookup法 找国外的比较偏僻的DNS解析服务器进行DNS查询,因为大部分CDN提供商只针对国内市场,而对国外市场几乎是不做CDN,所以有很大的几率会直接解析到真实IP
4、查看邮件法 通过查看邮件原文来确定ip地址,CDN总不会发送邮件吧
5、RSS订阅法 RSS原理于邮件法差不多
6、 查看历史解析记录法 查找域名历史解析记录,域名在上CDN之前用的IP,很有可能就是CDN的真实源IP地址
7、利用网站漏洞(XSS、命令执行、SSRF、php探针、phpinfo页面等) 可以通过一些页面和漏洞获取到服务器ip地址也