信息收集
前言
在渗透测试过程前,应先获取对应的授权,然后甲方会将需要进行渗透测试的资产信息详细罗列出来,但也不排除会遇到直接给你个域名/ip的甲方,那么就需要我们自己对给出的域名/ip进行信息收集。
1、收集域名信息
1.1. Whois查询
whois查询可以查到注册域名的时候留下的信息。比如注册商、注册人、邮箱、DNS解析服务器、注册人联系电话及更多的域名等,因为域名注册人可能是网站管理员,可以尝试社工、套路,查询是不是注册了其他域名扩大攻击范围。根据这些信息可以尝试制作社工密码,或者查出更多的资产等等。还有域名服务商、域名服务器、域名拥有者等。
1 |
|
1.2. 子域名收集
进行子域名收集可以扩大攻击范围、还可以发现隐藏的资产以及了解目标网络的结构情况,也可以在主站点没有web安全漏洞或者设置了WAF等安全产品等情况导致无法进行边界突破时,可以考虑对子域名进行渗透测试。
1 |
|
1.3. ICP 备案查询
ICP 备案查询可以找到目标的备案信息,还能知道目标可能不止备案了一个域名,收集目标的其他域名,若看到ICP 备案是XXXX-1
,这里-1
就是说明这个备案下不单单只有这一个域名,还有其他的域名。
1 |
|
1.4. SSL 证书查询
SSL/TLS证书通常包含域名、子域名和邮件地址、证书状态等信息,结合证书中的信息,可以更快速地定位到目标资产,获取到更多目标资产的相关信息。
1 |
|
1.5.DNS记录查询
可以查看 IP 与 域名绑定的历史记录所有历史记录,扩大资产搜索范围,若目标有做cdn加速,也可用来寻找绕过cdn的方法。
1 |
|
2、寻找收集真实ip
在测试过程中需要获取真实的IP
,如果目标有做cdn加速,获取到的是CDN
地址,是没什么意义的,比如你获取到的真实的 IP,就可以直接测试那些端口开放了,同时针对这些端口所开放的服务,采取不同的手段来进行测试。一般都是大型企业会做,小企业不会做。
2.1识别cdn
2.1.1get请求
GET 请求页面/文件地址,查看 HTTP 响应头中是否存在 “cache xxx” 的值,若存在,则表示有走 CD
2.1.2Ping域名
默认情况下你去 ping 一个地址的时候,返回的地址应该是差不多的,但是当变成很长一段的时候,大概率是经过跳转加速的,那么就可能存在CDN
。
2.1.3nslookup解析
若解析结果有多个,多半可能存在CDN,相反,若解析结果只有一个,可能不存在CDN(不能肯定)
2.1.4使用在线网站搜索
采用各地 dns 解析的方式来判断是否存在cdn,如果ip一致则不存在相反就是存在的。
2.2绕过cdn
2.2.1查目标网站的子域名
使用CDN
是需要花钱的,所以一般厂商都会在主站上实施CDN
,所以可以尝试找其他子域名,来绕过CDN
。同时绕 CDN 有时候是需要运气的,不是百分百能够绕过。
2.2.2HTML 页面信息匹配
在网站首页的源码中找到标题titie,然后到fofa来进行titie搜索匹配,然后逐个查看。
2..2.3利用证书序列号
网站证书是一串16进制字符,先通过在线网站将其调整为10进制,然后在fofa中使用cert 语法进行查询,域名和ip能够都访问网站就为真实ip。
2..2.4利用邮件去查
接收目标网站的邮件,通过邮件头信息获取真实IP地址。
2.2.5.DNS历史解析记录
有一些网站可以查询到DNS历史解析记录,可能在很多网站并未采用cdn时候的解析记录就被记录了下来,之后也并未更换服务器,此时就能查询到真实IP地址。
1 |
|
2.2.6国外地址请求
如果CDN仅在国内加速,可以尝试从国外服务器访问,可能会暴露真实IP。
1 |
|
3、收集旁站或 C 段 IP
有时候主站我们测试不了,我们就可以对旁站进行测试,由于某些大厂业务较多,可能会买很多的公网IP
,而且这些厂商在购买公网IP
的时候,不太可能会去说某一个网段买一个IP
,另外一个网段再买一个IP
的,基本上都是在一个网段中挑几个连续的或者直接买一个网段。
1 |
|
3.1、旁站
同服务器不同站点
旁站指的是网站所在服务器上部署的其他网站,同IP网站,一个IP上布置了多个网站 从同台服务器上的其他网站入手,获取到服务器权限,自然就获取到了目标网站的权限
3.2、 c段
同网段不同的服务器
C 段嗅探指的是拿下同一C段下的服务器,也就是说是c段1-255中的一台服务器,再通过内网横向移动获取你想要的服务器权限。
注意:一般情况下云服务器C段的IP都是相互独立的,这些服务器分属不同用户,没有渗透的必要
注意:探测C段时一定要确认ip是否归属于目标,因为一个C段中的所有ip不一定全部属于目标。
4、收集端口及服务
通过IP
地址获取到上面的端口,如何通过端口判断服务,通过服务的版本等等信息获取相关历史漏洞或者密码爆破等。
4.1、主机发现
主机发现可以发现的信息包括目标主机的存活状态、IP地址、端口开放情况等。
4.2、端口扫描
可以发现目标主机的端口开放情况。
4.3、版本探测
可以发现目标主机的邮件、系统版本、服务器版本。有一个精确的版本号对了解服务器有什么漏洞有巨大的帮助。
4.1、工具
nmap、masscan、御剑等
4.2、插件探测
Fofa Pro view
shodan
5、收集网站指纹
在渗透测试中,对目标服务器进行指纹识别是非常有必要的,因为只有识别出相应的web
容器或者CMS
,才能查看与其相关的漏洞,然后利用可用的漏洞进行相应的渗透测试。
5.1识别对象:
1、CMS信息:比如大汉CMS、织梦、帝国CMS、phpcms、ecshop等;
2、前端技术:比如HTML5、jquery、bootstrap、pure、ace等;
3、Web服务器:比如Apache、lighttpd, Nginx, IIS等;
4、应用服务器:比如Tomcat、Jboss、weblogic、websphere等;
5、开发语言:比如PHP、Java、Ruby、Python、C#等;
6、操作系统信息:比如linux、win2008、win7、kali、centos等;
7、CDN信息:是否使用CDN,如cloudflare、360cdn、365cyd、yunjiasu等;
8、WAF信息:是否使用waf,如Topsec、safedog、Yundun等;
9、IP及域名信息:IP和域名注册信息、服务商信息等;
10、端口信息:有些软件或平台还会探测服务器开放的常见端口。
5.2工具
WAF识别: wafw00f:https://github.com/EnableSecurity/wafw00f
在线工具:
1 |
|
5.3插件
6、收集敏感信息
由于发布网站时,服务器配置问题,导致目录能够在浏览器中打开,从而引起信息泄露,造成安全隐患。例如你在网站目录下放置1.txt
,而这个1.txt
中存放网站的密码,那么这样攻击者通过该手段这样就能够直接登录网站了。
6.1.robots.txt
Robots协议(Robots Exclusion Protocol)“网络爬虫排除标准”,网站通过Robots协议告诉搜索引擎哪些页面可以抓取,哪些页面不能抓取,同时也记录网站所具有基本的目录
6.2. 目录信息收集
通过扫描目录和文件,大致了解同站的的结构,获取突破点,比如后台,文件备份,上传点等。
目录扫描,主要扫描敏感信息、隐藏的目录和api、代码仓库、备份文件等。工具有:各种御剑,dirmap,Dirsearch,dirbuster,7kbstorm,gobuster等等。
6.3. 代码管理工具信息泄露
主要是出现在搭建网站的时候会出现源码泄露的情况,很多情况下我们都是对网站进行黑盒测试,而如果获取到源码后,那么漏洞相当于自己送过来。
https://zhuanlan.zhihu.com/p/110389472
6.4网站扫描
网站漏洞扫描,各种扫描器了。如:nessus,极光,xray,AWVS,goby,AppScan,各种大神团队自己编写的扫描器等等。
6.5.JS信息收集
在JS中可能会存在大量的敏感信息,包括但不限于:
某些服务的接口,可以测试这些接口是否有未授权等
子域名,可能包含有不常见或者子域名收集过程中没收集到的目标
密码、secretKey等敏感数据
1
2
3https://gitee.com/kn1fes/JSFinder jsfinder
https://github.com/rtcatc/Packer-Fuzzer Packer-Fuzzer
https://gitee.com/mucn/SecretFinder SecretFinder
7、综合性信息收集
这里的收集就相对来说收集的更全面,同时也是更多的都是采用网络,想要很好的进行信息收集,那么一定需要会 FQ,
7.1搜索引擎
学会他们的搜索语法
fofa
1 |
|
360Quake
奇安信鹰图
google语法
1 |
|
bing语法
1 |
|
7.2网盘搜索
直接百度网盘搜索,就可搜到很多在线网盘,然后进入网盘搜索关键词,如单位名、单位别称等。
1 |
|