前言、我们为什么要进行收集
在渗透测试中对一个目标站点进行测试的第一步就是信息收集,通过各种渠道和手段尽可能的收集到更多的关于这个站点信息,帮助我们更多的去找到渗透点,有的时候成败与否就在于你信息收集如何。
一、CDN识别与判断
CDN是什么?:
CDN又称内容分发网络,通过服务端上传缓存至CDN节点,客户端访问从最近的节点进行响应,从而提供访问速度的结束,如果我们不判断目标开启CDN,那么我们所进行的渗透测试只不过是对节点服务器上的缓存进行测试,和真实服务器一毛钱关系都没有,所以判断目标是否开启CDN服务,对我们渗透测试而言至关重要。
绕过方法:
- 如果存在CDN,由于CDN覆盖面不广泛,我们可以采用多节点Ping的方式来确定服务器真实IP。
- 推荐工具: ping:http://ping.chinaz.com/
- 国内ping:https://x.threatbook.cn/(收费)
- 国外ping:https://asm.saas.broadcom.com/en/ping.php
- 国外ping2:https://get-site-ip.com/ (访问速度慢)
2、DNS历史解析记录
查看 IP 与 域名绑定的历史记录,可能会存在使用 CDN 前的记录
- 相关查询网站有:
- DNS历史查询工具(强力推荐):https://securitytrails.com/
- 微步在线:https://x.threatbook.cn/
- 在线域名信息查询:http://toolbar.netcraft.com/site_report?url=
- DNS、IP等查询:http://viewdns.info/
- CDN查询IP:https://tools.ipip.net/cdn.php
3.子域名绕过CDN
由配置问题导致CDN只对a.xxx.com生效但b.xxx.com不受影响,推荐站点与DNS解析相同。
- 推荐使用工具:Layer子域名挖掘机
4.SSL证书签名查询
查找证书签名对应的站点,通过搜索某盟ssl证书链,查找真实IP。
- 推荐使用工具:censys:https://censys.io
5.邮件获取真实IP:
- 目标站点发送邮件,例如修改密码邮件,注册邮件,确认邮件等
- 打开邮件,显示原文,进行搜索后,发现目标IP地址
6.通过网站ico文件判断:
- 打开网站源代码,搜索ico后缀文件,并复制文件地址
- 打开脚本,填入目标网址+后缀文件地址
- 开始运算,求出hash值
- 打开shodan匹配hash,获取相符的网站地址
- 匹配语句模板:http.favicon.hash:1377518416
脚本代码
import mmh3
import requests
response = requests.get(‘URL/favicon.ico’)
favicon = requests.content.encode(‘base64’)
hash = mmh3.hash(favicon)
print hash
7.查看网站phpinfo.php中的SERVER_ADDR字段
二、CMS类型判断
CMS是什么?
CMS意为”内容管理系统”,就是一个网站开发的工具。很多的网站都是通过cms进行搭建的,虽然功能强大,但只要出现漏洞,那么很多网站都会遭殃,所以我们知道目标的CMS类型后可以针对性的去找漏洞。
CMS类型:
- php类cms系统:dedeCMS、php168、phpCMS、cmstop、discuz、phpwind等
- asp类cms系统:zblog、KingCMS等
- .net类cms系统:EoyooCMS等
- 国外的著名cms系统:joomla、WordPress 、magento、drupal 、mambo等
判断方法:
1、使用网站进行识别:
2、查看robots.txt文件:
robots.txt文件中存放的是一些禁止被爬虫爬取的目录,因此有些robots.txt中就会存放些关于CMS的敏感信息。
例如:robots.txt文件中存在wp-admin目录,那么就表名这个CMS是WordPress。
3、查看网站页面源代码:
有些网页中的源代码中会存放着网站的CMS信息和相应的版本信息,通过查看源代码可以发现使用的CMS类别。
4、通过版权信息:
有些网站底部的版权信息中会包含使用的CMS类别和版本信息。
5、脚本工具识别:
三、WAF识别和判断:
WAF是什么?
WAF是Web应用防火墙的简称,对来自Web客户端的各类请求进行内容检测和验证,确保其安全性与合法性,对非法的请求予以实时阻断,为Web应用提供防护,也称作应用防火墙。
WAF对请求的内容进行规则匹配、行为分析等识别出恶意行为,并执行相关动作,这些动作包括阻断、记录、告警等。
所以知道目标的WAF类型并且快速的绕过WAF,对测试来说省时省力。
判断方法:
- 1、工具链接:https://github.com/EnableSecurity/wafw00f
- 2、通过响应包字段判断WAF的指纹头是否包含X-Powered-By: WAF
四、设备信息和端口识别:
为什么要识别目标开放端口以及设备类型版本?
设备信息中涵括了设备能为服务端提供的技术区间,不同端口在没有做安全配置的情况下,端口的开放与服务端提供的不同服务相对应,所以如果我们能快速识别目标机器的系统,开放端口,那么就能够做到针对性测试。
判断方法:
- 1、nmap集成扫描工具:http://www.nmap.com.cn/
- 2、通过ICMP包的TTL判断
- 3、扫描器识别
- 4、御剑系列
- 5、7K扫描器
扫描器是什么?
扫描器评估软件是一个集合环境,能扫描和检测所有常见的 Web 应用安全漏洞。
例如:SQL注入、跨站点脚本攻击、缓冲区溢出等等Web漏洞,以及对爬取目录结构有很大作用,扫描器虽然好用但是测试目录的前提条件是对方不存在WAF,或者不会拦截目录扫描器发送的测试信息,不然扫描器就不起作用了。
扫描器推荐:
- Appscan:http://wvs.evsino.com/
- AWVS:https://www.cnblogs.com/cainiaotest/p/12091837.html
- Nessus(收费):http://nessus.evsino.com/
五、资产查询:
通过资产查询我们能获得什么?
通过资产信息能了解目标的备案信息,子域名、whois、whois反查询、网站拥有者的个人信息和名下域名等等资产信息对我们信息收集来说,能发现用户更多的站点,从而带来更多的可能性。
判断方法:
- 云悉查询:https://www.yunsee.cn/
- WebScan:https://www.webscan.cc/
- 站长集成查询工具:http://tool.chinaz.com/
- 外网集成工具:http://whatweb.bugscaner.com/
- 微步在线:https://x.threatbook.cn/
子域名和目录的区别:
通常来说,www.domain.com其实是domain.com的一个子域名,只是约定俗成.网站一般以www.domain.com为主URL。
另外子域名网站和主域名网站其实是是两个完全不同的网站,www.domain.com/news 也可以看做是一个新的子域名网站。
子域名和目录的关系也可以理解前缀和后缀的关系 子域名被搜索引擎认为是一个单独的站点。
C段和旁注:
旁注:同服务器下存在多个站点,获取单个站点即可对服务器下所有站点造成影响。
C段:部分同网段下存在多个服务器,获取一台服务器即可对同网段下所有服务器造成威胁。
六、黑暗引擎:
在信息时代,互联网存在着大量的数据,搜索引擎是我们获取信息的道路。
但是我们一般使用的白色引擎存在着大量的限制,但是有白引擎自然也有黑引擎,黑引擎上收录着,许多网站的隐私信息,所以从黑白引擎上获取数据也成了我们信息收集的重要渠道。
- 白色引擎:Baidu、Google、Bing、搜狗、Yohoo
- 搜索引擎命令语句:https://jingyan.baidu.com/article/456c463b42725e0a58314422.html
黑暗引擎:
- Shodan:https://www.shodan.io/
- zooeye:https://www.zoomeye.org/
- fofa:https://fofa.info/
- censys:https://censys.io/
七、其他收集手段:
GIthub 百度网盘 技术博客 TG 社工 物理收集
总结:当信息收集能使你的思路从单点扩展到多点,就是信息收集能为你的测试所带来的最大好处。