信息收集——域名信息获取

一、域名介绍

1. 域名定义

域名(Domain Name),又称网域,是由一串用点分隔的名字组成的Internet上某一台计算机或计算机组的名称,用于在数据传输时对计算机的定位标识。

2. 域名与IP

当我们访问一个网址时,我们既可以通过它的域名进行访问,也可以通过直接输入它的服务器的IP地址进行访问,那么为什么我们大多数都是用的域名而不是用IP地址呢?
这是因为IP地址不方便记忆,且不能显示地址组织的名称和性质。因此人们设计出了域名,并通过网域名称系统(DNS,Domain Name System)来将域名和IP地址相互映射,使人更方便地访问互联网,而不用去记住能够被机器直接读取的IP地址数串。
举个例子:
当我们访问www.baidu.com这个域名时,我们的电脑会向DNS查询百度的IP地址。然后我们再通过百度的IP地址进行访问百度。因此我们在输入网址时,实质上也是通过IP地址访问的服务器,只是从域名到IP地址的转换阶段对我们屏蔽了。

二、收集域名信息

当我们需要对一个网站进行渗透测试时,我们需要用到大量的信息。因此收集这些网站的信息是一件极其重要的事。

1. 利用whois查询

whois是一个用来查询域名是否已经被注册,以及注册域名的详细信息的数据库(如域名所有人、域名注册商)。不同域名后缀的whois信息需要到不同的whois数据库查询。
例如如.com的whois数据库和.edu的whois数据库就不相同。
查询接口:

  1. https://whois.aliyun.com
  2. https://www.whois365.com/cn
  3. http://whois.chinaz.com
  4. https://whois.aizhan.com
  5. 在Kali中,可以在终端输入whois 目标网址进行查询

2. ICP备案查询

ICP(Internet Content Provider)即为网络内容服务商,即向广大用户综合提供互联网信息业务和增值业务的电信运营商。其必须具备的证书即为ICP证。ICP证是指各地通信管理部门核发的《中华人民共和国电信与信息服务业务经营许可证》。
根据《互联网信息服务管理办法》指出互联网信息服务分为经营性和非经营性两类。国家对经营 性互联网信息服务实行许可制度;对非经营性互联网信息服务实行备案制度。未取得许可或 者未履行备案手续的,不得从事互联网信息服务。
对于国内网站,我们可以通过查询ICP来得到相应的信息。
查询接口:

  1. 工业和信息化部ICP/IP地址/域名信息备案管理系统
  2. 站长之家
  3. http://icp.alexa.cn/
  4. http://www.beianbeian.com/

三、收集子域名

对于一个网站的管理员来说,他在自己的顶级域名设下的防护相对于其子域名来说要强的多。
因此我们在对网站进行渗透测试时,往往是从其子域名入手。因此收集其子域名也是信息收集的一项重要工作。

子域名挖掘工具:

  1. Maltego CE(该工具需要登注册登陆才能使用,有条件的可以使用)Maltego CE
  2. 搜索引擎挖掘:
    在互联网如此发达的今天,你在网络上泄漏的任何信息都可以在搜索引擎挖掘到,用好搜索引擎也是一项重要技能。
    搜索子网语法:site:目标网站
  3. wydomain挖掘:
    wydomain是猪猪侠开发的一款基于Python语言开发的子域名信息搜集工具,因其枚举速度快,结果准确,成为不少白帽居家旅行的必备神器。工具主要分为两个模块,dnsburte模块和wydomain模块,dnsburte模块通过用户自定义字典发送dns查询,最后筛选出符合条件的域名。而wydomain模块则是通过调用多个第三方网站的公开api获取子域名数据。
    在Kali上可以直接终端上执行git clone https://github.com/ring04h/wydomain.git克隆到本地。
    GitHub地址https://github.com/ring04h/wydomain
  4. 第三方网站挖掘:
    a. http://tool.chinaz.com/subdomain
    b. https://dnsdumpster.com
    c. https://phpinfo.me/domain/

四、IP地址收集

在讲收集域名IP地址前,我们先来了解一个东西——CDN。

1. CDN简介

CDN(Content Delivery Network)即内容分发网络,主要解决因传输距离和不同运营商节点造成的网络速度性能低下的问题。
简单来说,就是一组在不同运营商之间的对接点上的高速缓存服务器,把用户经常访问的静态数据资源直接缓存到节点服务器上,当用户再次请求时,会直接分发到离用户近的节点服务器上响应给用户,当用户有实际数据交互时才会从远程Web服务器上响应,这样可以大大提高网站的响应速度及用户体验。
带有CDN的网站访问方式和普通网站是不一样的:
普通网站:用户访问域名–>解析服务器IP–>访问目标主机
带有CDN的网站:用户访问域名–>CDN节点–>真实服务器IP–>访问目标主机
我们可以发现,当我们访问带有CDN的网站时,解析到的IP并非真实服务器IP,而是CDN的IP。
在渗透测试中,为了要知道网站服务器的真实IP,我们必须绕过CDN查找出网站的真实ip地址。

1. 判断网站是否有CDN

由于CDN是分布在不同地区的,因此当从不同地区ping网站时会得到不同的CDN地址。因此我们可以通过从多个地区ping网站的方式判断网站是否有CDN。
可以ping测试的网站:

2. 绕过CDN

当我们确定一个网站确实具有CDN服务后,我们就需要想办法绕过CDN去获得真实服务器IP。

  1. 查询子域名:由于CDN需要在不同地区部署服务器,因此CDN的价格必定不会便宜。正所谓“好钢要用到刀刃上”,大多数站长都只会对主站或者流量大的子站点做了 CDN,而很多小站子站点又跟主站在同一台服务器或者同一个C段内,此时就可以通过查询子域名对应的 IP 来辅助查找网站的真实IP。
  2. 查询主域名:很多网站为了在维护网站时更方便,不用等cdn缓存,就只让www域名使用CDN,而秃域名使用CDN。因此我们可以尝试把网站的www去掉,只使用秃域名。
  3. 邮件服务器:一般的邮件系统都在内部,没有经过CDN的解析,通过目标网站用户注册或者RSS订阅功能,查看邮件,寻找邮件头中的邮件服务器域名IP,ping这个邮件服务器的域名,就可以获得目标的真实IP(必须是目标自己的邮件服务器,第三方或者公共邮件服务器是没有用的)。
  4. 查看域名历史解析记录:也许目标很久之前没有使用CDN,所以可能会存在使用 CDN 前的记录。所以可以通过网站https://www.netcraft.com来观察域名的IP历史记录。
  5. 国外访问:国内的CDN往往只对国内用户的访问加速,而国外的CDN就不一定了。因此,通过国外在线代理网站https://asm.ca.com/en/ping.php访问 ,可能会得到真实的IP。
  6. Nslookup查询:查询域名的NS记录、MX记录、TXT记录等很有可能指向的是真实ip或同C段服务器。
  7. 网站漏洞:利用网站自身存在的漏洞,很多情况下会泄露服务器的真实IP地址
  8. Censys查询SSL证书找到真实IP:利用“Censys网络空间搜索引擎”搜索网站的SSL证书及HASH,在https://crt.sh上查找目标网站SSL证书的HASH,然后再用Censys搜索该HASH即可得到真实IP地址。

五、开发端口收集

当我们获得目标网站真实服务器IP后,就需要查询服务器上开发端口,根据不同端口进行不同的测试方案。

1. 开发端口收集

  • 使用nmap进行探测:
    在Kali上执行下列语句即可开启nmap服务进行端口探测。
nmap -A -v -T4 目标

2. 端口攻击

常用
更多端口信息和攻击方式参考:传送门

3. 防御措施

  • 修改默认远程端口3389/22
  • 修改默认FTP端口21
  • 修改默认Mysql/Mssql端口3306/1433
  • 关闭易入侵端口:88、137、138、139、389、445、464、593、636、1025、3001-3003、3095-3097等
  • 关闭影子账号端口:4899
  • 关闭易提权端口:123
  • 关闭imail激活的两个IP,限制连接所有端口156.21.1.171、156.21.1.22
  • 使用安全策略进行协同防护
  • 配置并开启防火墙
  • 配置服务器安全狗软件
  • 如不使用UDP端口,封闭所有UDP。

猜你喜欢

转载自blog.csdn.net/qq_43580193/article/details/104219351