信息收集
一、什么是信息收集
信息收集就是尽可能的收集目标的信息,包括端口信息、DNS信息、IP信息等等都是信息收集。信息收集是渗透测试的最重要的阶段,根据收集的有用信息,可以大大提高渗透测试的成功率。
域名信息收集
顶级域名/一级域名:
1 | 顶级域(或顶级域名,也称为一级域名),是互联网DNS等级之中的最高级的域,它保存于DNS根域的名字空间中。顶级域名是域名的最后一个部分,即是域名最后一点之后的字母,例如在http://www.example.com这个域名中,顶级域是.com。 |
二级域名:
1 | 除了顶级域名,还有二级域名,就是最靠近顶级域名左侧的字段。例如在http://www.example.com这个域名中,example就是二级域名。 |
子域名:
1 | 子域名(Subdomain)是在域名系统等级中,属于更高一层域的域。比如,mail.example.com和calendar.example.com是example.com的两个子域,而example.com则是顶级域.com的子域。凡顶级域名前加前缀的都是该顶级域名的子域名,而子域名根据技术的多少分为二级子域名,三级子域名以及多级子域名。 |
Whois 查询
1 | whois 是用来查询域名的IP以及所有者等信息的传输协议。简单说,whois就是一个用来查询域名是否已经被注册,以及注册域名的详细信息的数据库(如域名所有人、域名注册商),不同域名后缀的Whois信息需要到不同的Whois数据库查询。通过whois来实现对域名信息的查询,可以得到注册人的姓名和邮箱信息通常对测试个人站点非常有用,因为我们可以通过搜索引擎和社交网络挖掘出域名所有人的很多信息。 |
(1)在线查询
如今网上出现了一些网页接口简化的线上查询工具,可以一次向不同的数据库查询。网页接口的查询工具仍然依赖whois协议向服务器发送查询请求,命令列接口的工具仍然被系统管理员广泛使用。whois通常使用TCP协议43端口。每个域名/IP的whois信息由对应的管理机构保存。
常见的网站包括:
1 | Whois站长之家查询:http://whois.chinaz.com/ |
示例:下面是使用站长之家Whois查询youku.com域名的相关信息:
(2)使用kali中的whois工具查询
在Kali Linux下自带的Whois查询工具,通过命令Whois查询域名信息,只需输入要查询的域名即可,如下图所示。
备案信息查询
网站备案信息是根据国家法律法规规定,由网站所有者向国家有关部门申请的备案,是国家信息产业部对网站的一种管理途径,是为了防止在网上从事非法网站经营活动,当然主要是针对国内网站。
在备案查询中我们主要关注的是:单位信息例如名称、备案编号、网站负责人、法人、电子邮箱、联系电话等。
常用的备案信息查询网站有以下几个:
1 | ICP/IP地址/域名信息备案管理系统:http://beian.miit.gov.cn/publish/query/indexFirst.actionICP |
子域名信息收集
子域名收集可以发现更多渗透测试范围内的域名/子域名,以增加漏洞发现机率;探测到更多隐藏或遗忘的应用服务,这些应用往往可导致一些严重漏洞。
常用的工具有:子域名挖掘机Layer、subDomainsBrute、Dnsenum、Dnsmap …
收集子域名的方法有以下几种:
1 | 利用在线工具查询子域名爆破:https://phpinfo.me/domain/ |
利用工具枚举子域名
kali上的工具在kali中的信息收集模块的DNS分析中,有很多工具可以进行域名信息收集。
站点信息收集
接下来我们进行web网站站点信息收集,主要收集如下信息:
1 | CMS指纹识别 |
CMS指纹识别CMS(内容管理系统)又称为整站系统或文章系统,用于网站内容管理。用户只需要下载对应的CMS软件包,就能部署搭建,并直接利用CMS。但是各种CMS都具有其独特的结构命名规则和特定的文件内容,因此可以利用这些内容来获取CMS站点的具体软件CMS与版本。
在渗透测试中,对进行指纹识别是相当有必要的,识别出相应的CMS,才能查找与其相关的漏洞,然后才能进行相应的渗透操作。
常见的CMS有Dedecms(织梦)、Discuz、PHPWEB、PHPWind、PHPCMS、ECShop、Dvbbs、SiteWeaver、ASPCMS、帝国、Z-Blog、WordPress等。
首先要知道的一点,并不是所有网站都用了CMS,所以这一块在信息收集中起的是一个辅助作用,能收集到信息最好,收不到也无所谓。
(1)在线识别
如今,网上一些在线的网站查询CMS指纹识别,如下所示:
1 | BugScaner: http://whatweb.bugscaner.com/look/ |
(2)利用工具识别
常见的CMS指纹识别工具有WhatWeb、WebRobo、椰树、御剑Web指纹识别等,可以快速识别一些主流CMS。
例如,我们利用kali上的WhatWeb工具识别目标站点的cms:
如上图,WhatWeb将目标站点的服务器、中间节、cms等都识别了出来。当我们得知了一个站点的cms类型后,我们可以在网上查找与其相关的漏洞并进行相应的测试。
(3)火狐插件wappalyzer 它是一款能够分析目标网站所采用的平台构架、网站环境、服务器配置环境、JavaScript框架、编程语言等参数的chrome网站技术分析插件。
服务器信息收集
服务器信息包括服务器用的操作系统:Linux 还是 Windows 。
知道了服务器的操作系统之后,还需要知道操作系统使用的具体版本。 因为很多低版本的操作系统都存在已知的漏洞。
操作系统判断方法:
1、大小写 Windows操作系统不区分大小写,Linux系统大小写敏感,用此方法能够判断是Windows还是Linux系统。
2、ping 判断是Linux还是Windows最简单就是通过ping来探测,Windows的TTL值都是一般是128,Linux则是64。 所以大于100的是Windows,而几十的则是Linux。
但是,通过TTL值来判断服务器类型也不是百分之百准确的,有些windows服务器的TTL值也是几十,而且有的服务器禁止ping。
中间件信息收集
我们可以收集网站用的web服务器是什么类型的:Apache、Nginx、Tomcat 还是 IIS。 知道了web服务器是哪种类型后,我们还需要探测web服务器具体的版本。 比如Ngnix版本<0.83会有解析漏洞 ,IIS6.0会有文件名解析漏洞、IIS7.0会有畸形解析漏洞等。 不同的web服务器版本,存在着不同漏洞。
敏感目录/文件收集
在web渗透中,探测Web目录结构和隐藏的敏感文件是一个十分重要的环节,从中可以获取网站的后台管理页面、文件上传界面、robots.txt,甚至可能扫描出备份文件从而得到网站的源代码。
常见的网站目录的扫描工具主要有:
1 | 御剑后台扫描工具 |
例如:
Waf识别
Web应用防护系统(Web Application Firewall)。利用国际上公认的一种说法:Web应用防火墙是通过执行一系列针对HTTP/HTTPS的安全策略来专门为Web应用提供保护的一款产品。
Waf识别工具
wafw00f是一个Web应用防火墙(WAF)指纹识别的工具。
wafw00f的工作原理:
- 发送正常的HTTP请求,然后分析响应,这可以识别出很多WAF。
- 如果不成功,它会发送一些(可能是恶意的)HTTP请求,使用简单的逻辑推断是哪一个WAF
- 如果这也不成功,它会分析之前返回的响应,使用其它简单的算法猜测是否有某个WAF或者安全解决方案响应了我们的攻击。
kali上内置了该工具:
wafw00f支持非常多的WAF识别。要查看它能够检测到哪些WAF,请使用-l 选项:
简单使用如下:wafw00f https://www.xxx.com/
敏感信息收集
1、Google hacking(谷歌黑语法)常用搜索语法
1 | intext:寻找正文中含有关键字的网页 |
2、FOFA
FOFA可以搜索网络组件,例如地区,端口号,网络服务,操作系统,网络协议等包括各种开发框架、安全监测平台、项目管理系统、企业管理系统、视频监控系统、站长平台、电商系统、广告联盟、前端库、路由器、SSL证书、服务器管理系统、CDN、Web服务器、WAF、CMS等。还可以绕过cdn找真实IP,如果知道一个有cdn防护的域名,在fofa上可以直接找到它的真实IP,在FOFA上搜索到了该域名的相关信息,并且可以找到真实IP的信息,还有找摄像头,矿机等等。
3、Zoomeye(钟馗之眼)ZoomEye是一款针对网络空间的搜索引擎,收录了互联网空间中的设备、网站及其使用的服务或组件等信息。
搜索语法:
1 | app:nginx 组件名 |
端口信息收集
扫描端口可以使用Nmap,masscan进行扫描探测,尽可能多的搜集开启的端口好已经对应的服务版本,得到确切的服务版本后可以搜索有没有对应版本的漏洞。 常见的端口信息及渗透方法:
1 | tcp 20,21 FTP 允许匿名的上传下载,爆破,嗅探,win提权,远程执行(proftpd 1.3.5),各类后门(proftpd,vsftp 2.3.4)tcp 22 SSH 可根据已搜集到的信息尝试爆破,v1版本可中间人,ssh隧道及内网代理转发,文件传输等等 |
真实IP识别
CDN的全称是Content Delivery Network,即内容分发网络。CDN是构建在现有网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。但在安全测试过程中,若目标存在CDN服务,将会影响到后续的安全测试过程。
如何判断目标网站是否使用了CDN 服务.
我们可以利用超级ping,ping这个网站域名,如果在每个地区ping的IP地址相同,则该服务器不存在CDN服务,如果在每个地区ping的IP地址不相同,则该服务器存在CDN服务
例如我们ping百度
每个地区的IP地址不同,说明百度使用了CDN服务。
CDN绕过技术
1、子域名查找
很多时候,一些重要的站点会做CDN,而一些子域名站点并没有加入CDN,而且跟主站在同一个C段内,这时候,就可以通过查找子域名来查找网站的真实IP。
一些在线查询工具,如:
1 | http://tool.chinaz.com/subdomain/ |
为了方便用户访问,我们常常将www.test.com 和 test.com 解析到同一个站点,而CDN只配置了www.test.com,通过访问test.com,就可以绕过 CDN了.
2、邮件服务查询
比如说,邮箱注册,邮箱找回密码、RSS邮件订阅等功能场景,通过网站给自己发送邮件,从而让目标主动暴露他们的真实的IP,查看邮件头信息,获取到网站的真实IP。
3、网络引擎搜索
通过关键字或网站域名,就可以找出被收录的IP,很多时候获取到的就是网站的真实IP。
1 | 钟馗之眼:https://www.zoomeye.org |
4、国外主机解析域名
大部分 CDN 厂商因为各种原因只做了国内的线路,而针对国外的线路可能几乎没有,此时我们使用国外的DNS查询,很可能获取到真实IP。
5、扫描全网
通过Zmap、masscan等工具对整个互联网发起扫描,针对扫描结果进行关键字查找,获取网站真实IP。
(1)ZMap号称是最快的互联网扫描工具,能够在45分钟扫遍全网。
1 | https://github.com/zmap/zmap |
(2)Masscan号称是最快的互联网端口扫描器,最快可以在六分钟内扫遍互联网。
1 | https://github.com/robertdavidgraham/masscan |
6、DNS历史解析记录
查询域名的历史解析记录,可能会找到网站使用CDN前的解析记录,从而获取真实ip。
相关查询的网站有:
1 | https://viewdns.info/iphistory/ |
7、配置不当绕过
在配置CDN的时候,需要指定域名、端口等信息,有时候小小的配置细节就容易导致CDN防护被绕过。
案例1:为了方便用户访问,网站管理员常常将www.test.com 和 test.com 解析到同一个站点,而CDN只配置了www.test.com,通过访问test.com,就可以绕过CDN了。
案例2:站点同时支持http和https访问,CDN只配置 https协议,那么这时访问http就可以轻易绕过。
数据库类型收集
几种常见数据库的区别:
1、Access小型数据库,当数据库达到100M左右的时候性能就会下降。数据库后缀名: .mdb一般是asp的网页文件用access数据库。
2、SQL Server是由Microsoft开发和推广的关系数据库管理系统(DBMS),是一个比较大型的数据库。端口号为1433。数据库后缀名 .mdf
3、MySQL 是一个关系型数据库管理系统,是最流行的关系型数据库管理系统,在WEB 应用方面MySQL是最好的应用软件之一,MySQL数据库大部分是php的页面。默认端口是3306
4、Oracle又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。常用于比较大的网站。默认端口是1521
常见搭配:
1 | ASP 和 ASPX:ACCESS、SQL Server |
互联网信息泄露收集
1、GitHub敏感信息泄露
2、网盘、文库、贴吧等信息泄露
3、乌云等平台历史漏洞信息及资产信息
4、微博、论坛、QQ群等信息泄露
社会工程学
社会工程学(Social Engineering)是一种通过人际交流的方式获得信息的非技术渗透手段。
社会工程学收集的常见信息包括:姓名、性别、出生日期、身份zheng号、身份zheng家庭住址、身份zheng所在公安局、快递收货地址、大致活动范围、qq、手机号、邮箱、银行card号(银行开户行)、支付宝、贴吧、百度、微博、微信、常用ID、学历(小/初/高/大学/履历)、目标性格详细分析、常用密码、照片等信息。