2.1 IP资源
2.1.1 真实IP获取
为了保证网络的稳定和快速传输,网站服务商会在网络的不同位置设置节点服务器,通过CDN(Content Delivery Network,内容分发网络)技术,将网络请求分发到最优的节点服务器上面。如果网站开启了CDN加速,就无法通过网站的域名信息获取真实的IP,要对目标的IP资源进行收集,就要绕过CDN查询到其真实的IP信息。
1.如何判断是否是CDN
在对目标IP信息收集之前,首先要判断目标网站是否开启了CDN,一般通过不同地方的主机ping域名和nslookup域名解析两种方法,通过查看返回的IP是否是多个的方式来判断网站是否开启了CDN,如果返回的IP信息是多个不同的IP,那就有可能使用了CDN技术。
1)使用不同主机ping域名判断是否有CDN
如果自己在多地都有主机可以ping域名,就可以根据返回的IP信息进行判断。如图2-1和图2-2所示,使用两地不同的主机ping域名“***.com”,返回的IP信息是“39.156.**.79”和“220.181.**.148”两个不同的IP,说明“***.com”可能使用了CDN。
图2‑1 A地主机ping域名
图2‑2 B地主机ping域名
互联网有很多公开的服务可以进行多地ping来判断是否开启了CDN,比较常用的有以下几个:
(1)站长工具:http://ping.chinaz.com/。
(2)爱站网:https://ping.aizhan.com/。
(3)国外ping探测:https://asm.ca.com/en/ping.php。
如图2-3所示是用站长工具对“***.com”多地探测返回的结果,发现有“39.156.**.79”和“220.181.**.148”两个不同的IP,说明“***.com”可能使用了CDN。
图2‑3 站长工具ping检测
2)使用nslookup域名解析判断是否有CDN
通过系统自带的“nslookup”命令对域名解析,发现有“39.156.**.79”和“220.181.**.148”两个不同的IP,说明“***.com”可能使用了CDN,如图2-4所示。
图2‑4 nslookup域名解析
2.如何绕过CDN获取真实IP
1)查询子域名
由于CDN加速需要支付一定的费用,很多网站只对主站做了CDN加速,子域名没有做CDN加速,子域名可能跟主站在同一个服务器或者同一个C段网络中,可以通过子域名探测的方式,收集目标的子域名信息,通过查询子域名的IP信息来辅助判断主站的真实IP信息。
子域名查询有枚举发现子域名、搜索引擎发现子域名、第三方聚合服务发现子域名、证书透明性信息发现子域名、DNS域传送漏洞发现子域名等多种方式,在接下来的“2.2域名发现”一节中会详细介绍。
2)查询历史DNS记录
通过查询DNS与IP绑定的历史记录就有可能发现之前的真实IP信息,一般都是通过第三方服务网站进行查询。常用的第三方服务网站有:
(1)Dnsdb:https://dnsdb.io/zh-cn/。
(2)微步在线:https://x.threatbook.cn/。
如图2-5所示是在微步在线查询的“www.***.com”这个域名的历史DNS解析信息,然后分析哪些IP不在现在的CDN解析IP里面,就有可能是之前没有用CDN加速的真实IP。
3)使用国外主机解析域名
部分国内的CDN加速服务商只对国内的线路做了CDN加速,但是国外的线路没有做加速,这样就可以通过国外的主机来探测真实的IP信息。
探测的方式也有两种,可以利用已有的国外主机直接进行探测;如果没有国外主机,可以利用公开的多地ping服务(多地ping服务有国外的探测节点),可以利用国外的探测节点返回的信息来判断真实的IP信息。
4)网站漏洞
利用网站存在的漏洞和信息泄露的敏感信息、文件(如:phpinfo文件、网站源码文件、Github泄露的信息等)获取真实的IP信息。
图2‑5 微步在线查询结果
通过如图2-6所示的phpinfo信息可以判断“***.com”真实的IP为“49.235.**.208”。
图2‑6 phpinfo信息
5)邮件信息
邮件信息中会记录邮件服务器的IP信息,有些站点有类似于RSS邮件订阅的功能,可以利用其发送的邮件,通过查看源码的方式查看真实服务器的IP信息。
如图2-7所示,单击“查看邮件源码”,获取服务器的真实IP如图2-8所示,服务器的真实IP为“59.111.**.141”。
图2‑7 查看邮件源码
图2‑8 获取服务器的真实IP
2.1.2 旁站信息收集
旁站是与攻击目标在同一服务器上的不同网站,在攻击目标没有漏洞的情况下,可以通过查找旁站的漏洞攻击旁站,然后再通过提权拿到服务器的最高权限,拿到服务器的最高权限后攻击目标也就拿下了。
旁站信息收集主要有以下方式。
1.Nmap扫描获取旁站信息
使用命令“nmap -sV -p 1-65535 IP”,对目标IP进行全端口扫描,确保每个可能开放的端口服务都能识别到。
通过命令“nmap -sV -p 1-65535 192.168.88.21”对“192.168.88.21”地址的1~65535端口进行扫描并进行服务识别,发现除了80端口运行了Apache的网站外,在800端口还运行了IIS服务的网站,800端口的网站就是80端口的旁站。
在80端口没有漏洞的情况下,就可以通过800端口运行IIS服务的旁站进行攻击,通过IIS服务的漏洞,获取到“192.168.88.21”服务器的最高权限,那么运行在“192.168.88.21”服务器80端口的Apache服务的所有权限也就拿到了。
2.第三方服务获取旁站信息
旁站信息可以通过第三方服务进行收集,比较常用的有“站长工具”“Bing搜索”“ZoomEye”“Shodan”等。
(1)站长工具可以进行“同IP网站查询”,如图2-9所示,网址为“http://s.tool.chinaz.com/ same”。通过查询“www.***.net”网站后发现此服务器一共存在3个网站,共有两个旁站。
图2‑9 同IP网站查询
(2)通过Bing搜索,链接为“https://cn.bing.com/search?q=ip:x.x.x.x”。
通过Bing搜索对“x.x.x.x”进行搜索后,发现此IP服务器一共开启了3个Web网站,与“站长工具”查询的结果相同,Bing搜索旁站如图2-10所示。
图2‑10 Bing搜索旁站
2.1.3 C段主机信息收集
C段主机是指与目标服务器在同一C段网络的服务器。攻击目标的C段存活主机是信息收集的重要步骤,很多企业的内部服务器可能都会在一个C段网络中。在很难找到攻击目标服务器互联网漏洞的情况下,可以通过攻击C段主机,获取对C段主机的控制权,进入企业内网,在企业的内网安全隔离及安全防护不如互联网防护健全的情况下,可以通过C段的主机进行内网渗透,这样就可以绕过互联网的防护,对目标进行攻击。
C段主机信息收集主要有以下方式。
1.Nmap扫描获取C段信息
使用命令“nmap -sn IP/24”,对目标IP的C段主机进行存活扫描,根据扫描的结果可以判断目标IP的C段还有哪些主机存活,然后对存活的主机进行渗透,拿到最高权限后进行内网渗透。
通过命令“nmap -sn 192.168.91.0/24”扫描“192.168.91”这个网段的C段,“Host is up”表示主机存活,发现“192.168.91.1”“192.168.91.2”“192.168.91.142”等多个主机存活。
“nmap -Pn”这个命令在实际工作中的使用也比较多,主要用于针对防火墙开启的情况,该命令不会通过ICMP等协议进行主机存活判断,会直接对端口进行扫描。这样在开启了防火墙禁止Ping的情况下,也可以利用这个命令正常扫描目标是否存活及对外开启的相关服务。
2.搜索引擎收集C段信息
通过Google搜索引擎的“site:x.x.x.*”,可以对“x.x.x.*”的C段主机进行信息收集。
在Google搜索引擎中输入“site:61.x.x62.*”,对“61.x.x62.*”网段的C段进行信息收集,发现“61.x.x62.70”“61.x.x62.76”“61.x.x62.147”等多个C段主机存活,并且都运行了Web服务,Google搜索获取C段信息如图2-11所示。
图2‑11 Google搜索获取C段信息