Web渗透测试:信息收集篇
在之前的一系列文章中,我们主要讲了内网渗透的一些知识,而在现实中,要进行内网渗透,一个很重要的前提便是:你得能进入内网啊!所以,从这篇文章开始,我们将开启Web渗透的学习(内网渗透系列还会继续长期更新哦)。
渗透测试,是渗透测试工程师完全模拟黑客可能使用的攻击技术和漏洞发现技术,对目标网络、主机、应用的安全作深入的探测,帮助企业挖掘出正常业务流程中的安全缺陷和漏洞,助力企业先于黑客发现安全风险,防患于未然。
Web应用的渗透测试流程主要分为3个阶段,分别是:信息收集→漏洞发现→漏洞利用。本文我们将对信息收集这一环节做一个基本的讲解。
信息收集介绍
进行web渗透测试之前,最重要的一步那就是就是信息收集了,俗话说“渗透的本质也就是信息收集”,信息收集的深度,直接关系到渗透测试的成败。打好信息收集这一基础可以让测试者选择合适和准确的渗透测试攻击方式,缩短渗透测试的时间。一般来说收集的信息越多越好,通常包括以下几个部分:
域名信息收集
子域名信息收集
站点信息收集
敏感信息收集
服务器信息收集
端口信息收集
真实IP地址识别
社会工程学
下面我们对这几种信息收集分别做相应的讲解。
域名信息收集
域名(英语:Domain Name),又称网域,是由一串用点分隔的名字组成的Internet上某一台计算机或计算机组的名称,用于在数据传输时对计算机的定位标识(有时也指地理位置)。由于IP地址具有不方便记忆并且不能显示地址组织的名称和性质等缺点,人们设计出了域名,并通过网域名称系统来将域名和IP地址相互映射,使人更方便地访问互联网,而不用去记住能够被机器直接读取的IP地址数串。
顶级域名/一级域名:
顶级域(或顶级域名,也称为一级域名),是互联网DNS等级之中的最高级的域,它保存于DNS根域的名字空间中。顶级域名是域名的最后一个部分,即是域名最后一点之后的字母,例如在http://www.example.com这个域名中,顶级域是**.com**。
二级域名:
除了顶级域名,还有二级域名,就是最靠近顶级域名左侧的字段。例如在http://www.example.com这个域名中,example就是二级域名。
子域名:
子域名(或子域;英语:Subdomain)是在域名系统等级中,属于更高一层域的域。比如,mail.example.com和calendar.example.com是example.com的两个子域,而example.com则是顶级域.com的子域。凡顶级域名前加前缀的都是该顶级域名的子域名,而子域名根据技术的多少分为二级子域名,三级子域名以及多级子域名。
一般来说,在做渗透测试之前,渗透测试人员能够了解到的信息有限,一般也就只知道一个域名,这就需要渗透测试人员首先要针对一个仅有的域名进行信息搜集,获取域名的注册信息,包括该域名的DNS服务器信息、子域信息和注册人的联系信息等信息。可以用以下几种方法来收集域名信息。
Whois 查询
whois 是用来查询域名的IP以及所有者等信息的传输协议。简单说,whois就是一个用来查询域名是否已经被注册,以及注册域名的详细信息的数据库(如域名所有人、域名注册商),不同域名后缀的Whois信息需要到不同的Whois数据库查询。通过whois来实现对域名信息的查询,可以得到注册人的姓名和邮箱信息通常对测试个人站点非常有用,因为我们可以通过搜索引擎和社交网络挖掘出域名所有人的很多信息。
(1)在线查询
如今网上出现了一些网页接口简化的线上查询工具,可以一次向不同的数据库查询。网页接口的查询工具仍然依赖whois协议向服务器发送查询请求,命令列接口的工具仍然被系统管理员广泛使用。whois通常使用TCP协议43端口。每个域名/IP的whois信息由对应的管理机构保存。
常见的网站包括:
Whois站长之家查询:http://whois.chinaz.com/
阿里云中国万网查询:https://whois.aliyun.com/
Whois Lookup 查找目标网站所有者的信息:http://whois.domaintools.com/
Netcraft Site Report 显示目标网站上使用的技术:http://toolbar.netcraft.com/site_report?url=
Robtex DNS 查询显示关于目标网站的全面的DNS信息:https://www.robtex.com/
全球Whois查询:https://www.whois365.com/cn/
站长工具爱站查询:https://whois.aizhan.com/
示例:
下面是使用站长之家Whois查询freebuf域名的相关信息:
(2)使用kali中的whois工具查询
在Kali Linux下自带的Whois查询工具,通过命令Whois查询域名信息,只需输入要查询的域名即可,如下图所示。
备案信息查询
网站备案信息是根据国家法律法规规定,由网站所有者向国家有关部门申请的备案,是国家信息产业部对网站的一种管理途径,是为了防止在网上从事非法网站经营活动,当然主要是针对国内网站。
在备案查询中我们主要关注的是:单位信息例如名称、备案编号、网站负责人、法人、电子邮箱、联系电话等。
常用的备案信息查询网站有以下几个:
ICP/IP地址/域名信息备案管理系统:http://beian.miit.gov.cn/publish/query/indexFirst.action
ICP备案查询网:http://www.beianbeian.com/
备案吧吧:https://www.beian88.com/
天眼查:https://www.tianyancha.com/
企业资产查询
天眼查、企查查等查企业的软件也是非常重要的信息收集途径,每次攻防演练的目标名单中总有各种公司,有国企也有私企,其中的小型民营企业相比其他的政府、大型互联网企业、金融、电力等目标要好打得多,因此它们总是首要目标,而天眼查、企查查等作为查企业最牛逼的网站,其重要性也就不言而喻了。
天眼查:https://www.tianyancha.com/
企查查:https://www.qcc.com/
下面以天眼查为例介绍:
天眼查中共有3个地方可能出现目标的资产:
子域名信息收集
子域名(或子域;英语:Subdomain)是在域名系统等级中,属于更高一层域的域。比如,mail.example.com和calendar.example.com是example.com的两个子域,而example.com则是顶级域.com的子域。凡顶级域名前加前缀的都是该顶级域名的子域名,而子域名根据技术的多少分为二级子域名,三级子域名以及多级子域名。
为什么要收集子域名
子域名枚举可以在测试范围内发现更多的域或子域,这将增大漏洞发现的几率。
有些隐藏的、被忽略的子域上运行的应用程序可能帮助我们发现重大漏洞。
在同一个组织的不同域或应用程序中往往存在相同的漏洞
假设我们的目标网络规模比较大,直接从主域入手显然是很不理智的,因为对于这种规模的目标,一般其主域都是重点防护区域,所以不如先进入目标的某个子域,