公司动态

信息收集之真实IP查询

2019-10-14



01
前言


常见的渗透过程中,获取到目标的真实IP之后对于我们渗透会启到事半功倍的效果。

我们来认识下真实IP隐藏方法“内容分发网络(CDN)”。

CDN是Content Delivery Network或Content Distribution Network的缩写, CDN是构建在网络之上的内容分发网络,靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。


02
判断是否为真实IP

1.使用nslookup查询
Win下使用nslookup命令进行查询。
若返回域名解析结果为多个IP,多半使用了CDN,是不真实的IP。如下图:


解析为单个IP 可能为真实IP 如下图:

 



    2.多地PING

使用不同区域ping,查看ping的ip结果是否唯一。

网站有:ping www.baidu.com, ip结果不唯一,目标网站可能存在CDN

 一般常用多地ping网站:

    http://ping.chinaz.com/  

    http://ping.aizhan.com/

3.使用工具直接查询

工具大致原理通过查找网站IP查找他的域名,子域名,服务,定位是否为常见cdn服务商的服务器等,来判断是否为真实IP。可以参考以下网站

   https://www.cloudflare.com

   https://www.IPIP.net/IP.html


03

 绕过CDN寻找真实IP




1.子域名


      CDN 有些是收费的,且价格并不便宜,所以很多只会对主站或者流量大的子站点做了 CDN,而很多小站子站点又跟主站在同一台服务器或者同一个C段内,此时就可以通过查询子域名对应的 IP 来辅助查找网站的真实IP。

      查询子域名的工具网站有subDomainsBrute、Sublist3r、Google hack,Dnsdb查询网站https://dnsdb.io/zh-cn/ 输入baidu.com type:A就能收集百度的子域名和IP了。SubDomainsBrute利用 Subdomainbrute.py qq.com --full即可收集百度的子域名

 

       2.利用网站漏洞


      如果目标站点存在漏洞,这无法避免了。例如phpinfo敏感信息泄露、Apache status和Jboss status敏感信息泄露、网页源代码泄露、svn信息泄露信、github这类代码管理站上信息泄露等。

 若存在web漏洞,服务器主动与我们发起请求连接,我们也能获取目标站点真实ip。例如xss盲打、ssrf、命令执行反弹shell等。

利用社工或其他手段,获取真实IP地址。


  3.历史记录 


通过DNS缓存查询,查看IP与域名绑定的历史记录,可能会存在使用CDN之前的记录,从而得到IP。

查询网站有:

https://dnsdb.io/zh-cn/

https://x.threatbook.cn/

http://toolbar.netcraft.com/site_report?url=

http://viewdns.info/

http://www.17ce.com/

https://community.riskiq.com/

http://www.crimeflare.com/cfssl.html/

 

利用SecurityTrails平台(https://securitytrails.com/),攻击者就可以精准的找到真实原始IP,只需在搜索字段中输入网站域名,然后按Enter键即可,这时“历史数据”就可以在左侧的菜单中找到。

除了过去的DNS记录,即使是当前的记录也可能泄漏原始服务器IP。例如,MX记录是一种常见的查找IP的方式。如果网站在与web相同的服务器和IP上托管自己的邮件服务器,那么原始服务器IP将在MX记录中

 

  4.CDN本身


若从CDN本身入手,当你碰巧获得CDN管理员账号,或是通过社工或积累的字典,得到控制面板的账号密码,那真实ip就很轻易能获取到了。


  5.Mx记录或邮件


很多站点都有发送邮件sendmail的功能,如RSS邮件订阅,很多网站都自带 sendmail,会发邮件给我们,此时查看邮件源码里面就会包含服务器的真实IP了。

 

  6.国外请求

国内很多 CDN 厂商因为各种原因只做了国内的线路,而针对国外的线路可能几乎没有,此时我们使用国外的主机直接访问可能就能获取到真实IP。查询网站:https://asm.ca.com/en/ping.php建议利用VPN登录)。


7.扫描探测  

       通过信息收集,缩小扫描范围,通过http指纹特征和keyword等做综合判断。可使用工具如下:

https://github.com/zmap/zgrab/

http://www.ipdeny.com/ipblocks/


      zgrab 是基于zmap无状态扫描的应用层扫描器,可以自定义数据包,以及ip、domain之间的关联。可用于快速指纹识别爆破等场景。Zmap全网扫描,ZMap是一种“无状态”的工具,有些工具会向一台主机发出请求,随后等待接到请求的主机作出回应。ZMap不会保留未获回复请求的清单,而是在传出的数据包中对识别信息进行编码,这样一来该工具就能对回复进行鉴别。利用Zmap快速的特征,搜索全部host为目标域名的IP,利用筛选条件找到真实IP。

   

  可参考这篇文章:利用Zgrab绕CDN找真实IP 

  

      首先从apnic网络信息中心获取ip段,然后使用Zmap的 banner-grab 对扫描出来 80 端口开放的主机进行banner抓取,最后在 http-req中的Host写我们需要寻找的域名,然后确认是否有相应的服务器响应。

      我们使用www.wooyun.org 作为案例。

      首先从www.wooyun.org 服务多次挂的页面可以看出,  wooyun 使用了 baidu 的 cdn 服务, 从 wooyun 的漏洞案例上也可以知道 wooyun 使用了 ucloud 的服务, 我们可以大胆假设 wooyun 服务器的 ip 在中国内.

0x1. 获取 CN IP

从apnic获取亚洲区域所分配到的IP, 过滤出 CN 的 IP.

0x2. 端口扫描

使用 zmap 对全 CN 的 IP 的 80 端口进行扫描.

0x3. 获取 banner

使用 zmap 的 banner-grab 对扫描出来80 端口开放的主机进行 banner 抓取。

嗯, 在 http-req 中的 Host 写 www.wooyun.org, 并且使用 ulimit 将最大文件描述符数修改为一个较大的值。

直接开扫:

0x4. 数据处理

使用关键字 "80sec" 对获取的数据进行简单过滤

这 400+ 的服务器, 一般可以分为三种:

* baidu cdn server

* http proxy server

* www.wooyun.com server

      可以对这 400+ 服务器再进行一次 banner 获取,不设置 Host, 过滤掉 baidu cdn 错误页面、空页面、超时等乱七八糟的页面,然后就可以得到结果了。

 

8.网络空间搜索引擎法


      常见的有钟馗之眼,shodan(https://www.shodan.io/),fofa搜索(https://fofa.so/)。以fofa为例,只需输入:title:“网站的title关键字”或者body:“网站的body特征”就可以找出fofa。

网络空间搜索引擎就是将互联网上公开的网络资产收集和整理,以此方便人们进行查阅和利用。常见的有zoomeye、fofa、shodan通过这些公开的安全搜索引擎爬取得历史快照,收录的有这些关键字的ip域名,很多时候能获取网站的真实ip。主要得一些特征总结如下:

(1)特有的http头部(如server类型、版本、cookie等信息)、

(2)特定keyword(如title、css、js、url等)、

(3)特定的IP段搜索(如fofa支持C段搜索),

有些时候爬取的时候不一定含有上面那些特征,但是我们仍然需要仔细排查。


 9.查询HTTPS证书  

  查询网站:https://censys.io/

      这个网址会将互联网所有的ip进行扫面和连接,以及证书探测。若目标站点有https证书,并且默认虚拟主机配了https证书,我们就可以找所有目标站点是该https证书的站点。

当我们的域名假如是www.123.com 原始IP地址为132.295.202.2,我们将域名托管给cdn管理,cdn提供DDOS防御,内容发布cdn加速等服务,web服务器与cdn进行安全通信会支持https、ssl并具有证书,通信过程中可能会安全,但443端口连接地址时会暴露证书。利用Censys设置参数搜索:

443.https.tls.validation.browser_trusted: true parsed.names: www.baidu.com

逐个点开,在右上角有Explore可以挑选证书与ID,设置证书各类设置:

挑选证书与ID相同,筛选后点击Certificate查看OpenSSL:


  10.LTM负载均衡解码获取真实IP  


负载均衡就是将负载(工作任务)进行平衡、分摊到多个操作单元上进行执行,例如Web服务器、FTP服务器、企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务。负载均衡建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。

具体流程:F5修改cookie机制

F5 LTM做负载均衡时,有多种机制实现会话保持。其中用到很多的一种是通过修改cookie来实现的。F5在获取到客户端第一次请求时,会使用set cookie头,给客户端埋入一个特定的cookie。

比如:Set-Cookie: BIGipServerpool_8.29_8030=487098378.24095.0000

后续再接到客户端请求时,F5会查看cookie里面的字段,判断应该交给后续哪台服务器。F5当然不会直接把服务器IP address写入到cookie里面。而是很巧妙的把server的真实IP address做了两次编码,然后再插入cookie。所以,只要依据解码流畅,解开487098378.24095.0000的内容,就拿到了server的真实IP address。

解码思路:

首先,把第一小节的十进制数取出来,也即,487098378

第二,将其转为十六进制数1d08880a

第三,从后至前,以此取四位数出来,也即,0a;88;08;1d;

第四,依次把他们转为十进制数:10;136;8;29

最后,得到真实内网IP:10.136.8.29

 


04

 
对抗思路


 

保护服务器,删除敏感信息,不要轻易暴露真实IP,在使用CDN的同时先确认IP历史记录中,是否存在真实IP,记得更换IP后再开启CDN。若网站有订阅邮件或发邮件的需求,可选择独立的服务器发取。子域名的IP同时也记得隐匿,或者采取与主服务不同c段的服务器。甚至对全站开启CDN服务。


 

05

  Reference


https://www.e-https://threathunter.org/topic/5940c85d9c58e020408a79fe

http://www.52bug.cn/hacktool/5225.html

https://zhuanlan.zhihu.com/p/33440472



备注:部分案例及截图来自于互联网,如有侵权,请联系告知。