信息收集
信息收集思路
判断网站操作系统
【Linux大小写敏感,Windows大小写不敏感】
扫描敏感文件
«首先判断网站有没有CDN和Waf再扫描敏感文件» 【敏感文件比如:robots.txt,crossdomain.xml,sitemap.xml,xx.tar.gz,xx.bak,等】
3.确定网站采用的语言 【如PHP / Java / Python等】 【找后缀,比如php/asp/jsp来判断采用语言】 注意:不同语言开发,对应不同漏洞。
4.前端框架 【如jQuery / BootStrap / Vue / React / Angular等前端框架】 【查看源代码判断前端框架】
中间服务器
【如 Apache / Nginx / IIS 等中间件】 【通过查看header中的信息,或者 根据报错信息判断,或者 根据默认页面判断】
6.Web容器服务器 【如Tomcat / Jboss / Weblogic等容器】
7.后端框架 【根据Cookie判断】【根据CSS / 图片等资源的hash值判断】【根据URL路由判断,如wp-admin】【根据网页中的关键字判断】【根据响应头中的X-Powered-By】
8.CDN信息 【常见的有Cloudflare、yunjiasu】
9.探测有没有WAF,如果有,什么类型的 【有WAF,找绕过方式】 【没有,进入下一步】
10.扫描敏感目录,看是否存在信息泄漏 【扫描之前先自己尝试几个的url,人为看看反应】 【使用爬虫爬取网站信息】 【拿到一定信息后,通过拿到的目录名称,文件名称及文件扩展名了解网站开发人员的命名思路,确定其命名规则,推测出更多的目录及文件名】
11.常见入口目标 【关注度低的系统】 【业务线较长的系统】
被动方式
Google Hacking
Google、baidu、bing等搜索引擎有许多搜索技巧。Google hacking是利用谷歌搜索引擎来查找黑客们想找到的信息。例如查找某人信息、网站后台,寻找网站代码中的相关配置和安全漏洞。
Google 基本语法
site: site:thief.one将返回所有和这个站有关的URL。
inurl: 搜索我们指定的字符是否存在于URL中。
intitle: 将返回所有网页标题中包含关键词的网页。
intext: 将返回所有在网页正文部分包含关键词的网页。
cache: 搜索google里关于某些内容的缓存。
define: 搜索某个词语的定义。
filetype: 搜索指定的文件类型,如:.bak,.mdb,.inc等。
info: 查找指定站点的一些基本信息。
Link: link:thief.one可以返回所有和thief.one做了链接的URL。
index of: 找目录遍历会用到
+ 强制包含某个字符进行查询
-查询的时候忽略某个字符
"" 查询的时候精确匹配双引号内的字符
. 匹配某单个字符进行查询
* 匹配任意字符进行查询
| 或者,多个选择,只要有一个关键字匹配上即可
在操作符、冒号、搜索项之间没有空格
主动方式
网络空间搜索引擎
网络空间搜索引擎是对全球网络空间基础设施或网络设备进行扫描,并可以对指纹特征检索的平台。简单的说可在上面对网络空间上的在线网络设备(联网设备)进行检索。例如服务器、路由器、交换机、公共IP的打印机、网络像头等等。它是通过扫描全网设备并抓取解析各个设备返回的信息
域名信息收集
whois可以获得注册人的相关信息。对于中小站点,域名所有者往往是IT运维人员。那么就可以根据获得的部分信息进行深入挖掘
whois查询注意:whois得到的是域名托管商那么是查询时域名被屏蔽了
kali下的whois命令
备案信息查询
ICP的英文全称为Internet Content Provider,中文意思为网络内容服务商。
ICP备案可以说是网站备案或域名备案,具体是指网站在信息产业部提交网站信息进行官方认可。对国内各大小网站(包括企业及个人站点)的严格审查工作,对于没有合法备案的非经营性网站或没有取得ICP许可证的经营性网站,根据网站性质,将予以罚款,严重的关闭网站,以此规范网络安全,打击一切利用网络资源进行不法活动的犯罪行为。
•ICP备案查询:http://www.beianbeian.com/
•企查查:https://www.qichacha.com/
•天眼查:https://www.tianyancha.com/
子域名收集
子域名可以让我们发现目标在互联网上更多资产与服务,扩大攻击面,更容易找到薄弱点
子域名枚举
基于字典对子域名进行爆破枚举
subDomainsBrute
可以高并发DNS暴力枚举,对子域名进行爆破,用小字典递归发现三到五级域名
工具地址:https://github.com/lijiejie/subDomainsBrute
搜索引擎-site: site:www.baidu.com
第三方聚合应用:
DNSdumpster:https://dnsdumpster.com/
VirusTotal:https://www.virustotal.com/#/home/search
Netcraft:https://searchdns.netcraft.com/
证书透明度
CT日志查询平台
CSP
DNS区域传送漏洞
sublist3r
OneForAll
IP收集
CDN介绍:内容分发网络
CDN是将媒体资源,动静态图片(Flash),HTML,CSS,JS等等内容缓存到距离你更近的节点,从而让用户进行共享资源,实现缩减站点间的响应时间等等需求,提高用户访问的响应速度和成功率。解决因分布、带宽、服务器性能带来的访问延迟问题,适用于站点加速、点播、直播等场景。
有些站可能会上CDN,那么我们就无法获得真实的IP地址
判断是否存在CDN
使用站长工具的ping测试,会从许多节点去ping目标服务器,如果是不同IP地址可能上了CDN。注意对IP归属地进行解析。
使用在线平台或工具判断
子域名获得真实IP
大多数情况下,企业在互联网上的网站资产较多,不会对所有站点都使用CDN进行加速。那么我们可以从子域名入手,获取真实IP。
利用站点功能主动发起请求
网站中的注册或找回密码功能中会发送邮件验证,或者RSS订阅、邮件订阅等这些功能就会让服务器主动发起请求,我们可以获得对方服务器的IP地址。但大多数时候获取的是邮件服务器地址。
查询SSL证书
利用DNS记录
查询域名与IP的历史记录,可能会发现使用CDN之前的目标IP地址。
利用冷门的DNS请求
某些CDN对国外的覆盖面不广,那么可以利用这种特性进行探测。使用国外的代理或DNS解析来查看IP。
利用站点漏洞
利用某些漏洞,让服务器得到信息泄露,或者主动对我们发起请求,则可以获得域名真实IP例如phpinfo,SSRF漏洞。
操作系统类型
使用Nmap,你可以检测远程主机上运行的操作系统和版本。nmap -O192.168.0.101
端口扫描
使用Nmap探测主机的端口开放情况。 nmap 192.168.0.101
主机服务信息
查找主机服务版本号。 nmap -sV 192.168.0.101
网站架构
服务器类型
服务器类型包括常用的操作系统:Linux还是Windows,使用nmap能够辨别。
指令: nmap -A -T4 -v IP地址
网站服务组件和脚本类型
网站服务组件和脚本而理性可以利用linux的网站指纹识别工具:whatweb和浏览器插件
Wappalyzer一款Chrome浏览器的插件,可以查询网站是用什么技术进行编写的。
CMS安装检测
CMS是一个内容管理系统,允许用户将内容直接发布到Web的接口
主流的cms有drupal,joomla,wordpress,dedecms判断出目标网站CMS,可以根据对应的CMS类型的漏洞进行攻击。目标网站的CMS识别和CMS安全检测,可以利用onlinetools工具分析。
防火墙识别
WAF(防火墙)是WEB应用的保护措施。目标网站的防火墙信息可以使用nmap和WAFW00F获取。
nmap
指令:nmap -p 80–script http-waf-detect.nse 域名
旁站和C段
旁站:和目标网站在同一台服务器上的其它的网站。
C段:和目标服务器IP地址处在同一个C段的其它服务器。可以利用onlinetools工具和在线网站http://www.webscan.cc获取。
目标搜集
扫描网站的目录结构,收集铭感信息,利于对目标网站的渗透,部分敏感信息如下表:
御剑目录扫描器
7kbstorm:
使用方法:在扫描目录输入目标域名,点击开始即可。下载地址
Github地址:https://github.com/7kbstorm/7kb
漏洞扫描
AWVS
Nessus