米斯特白帽培训讲义 信息收集

讲师:gh0stkey

整理:飞龙

协议:CC BY-NC-SA 4.0

收集什么?

  • Whois信息
    • 注册人名字、邮箱等
  • IP信息(服务器的IP)
    • 判断是否为CDN节点,查询同IP网站,端口扫描
  • 目录信息
    • 判断WEB应用,获取网站后台目录,获取其他
  • 服务信息
    • 判断服务,例如:IIS、Apache
  • 脚本信息
    • ASP、PHP、aspx(asp.net)
  • 框架信息
    • ThinkPHP、Struts等
  • 应用信息
    • 应用,dedecms、phpcms等
  • 子域名信息
    • xxx.xx.comxxx.xxx.xx.com

WHOIS

查询工具:http://whois.chinaz.com

IP 信息

我们可以ping某个 URL:

C:\Users\asus> ping www.hi-ourlife.com

正在 Ping www.hi-ourlife.com.cname.yunjiasu-cdn.net [162.159.209.78] 具有 32 字节的数据:
来自 162.159.209.78 的回复: 字节=32 时间=215ms TTL=52
来自 162.159.209.78 的回复: 字节=32 时间=217ms TTL=52
来自 162.159.209.78 的回复: 字节=32 时间=218ms TTL=52
来自 162.159.209.78 的回复: 字节=32 时间=222ms TTL=52

162.159.209.78 的 Ping 统计信息:
    数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
    最短 = 215ms,最长 = 222ms,平均 = 218ms

但显然,这里的 IP 是 CDN 的 IP。

我们可以使用多地ping工具来判断:

一般来说,使用了 CDN 的网站在不同地点的ping结果是不一样的。不过这里它直接写出了百度云加速节点。

那么如何找出源站 IP 呢?

  1. 查询子域:许多情况下只有主站使用了 CDN,二级站点并没有,所以我们就可以直接查询分站的 IP。分站的搜索方法见下文。

  2. 国内部分 CDN 服务只针对国内,对国外的访问几乎不使用 CDN。所以我们可以通过国外冷门 DNS 查询域名。比如,nslookup xxx.com 199.89.126.10

    C:\Users\asus\Desktop> nslookup hi-ourlife.com 199.89.126.10
    服务器:  UnKnown
    Address:  199.89.126.10
    
    非权威应答:
    名称:   hi-ourlife.com
    Address:  45.64.65.85
  3. 历史解析记录:CDN 的 IP 地址之前所用的 IP 就是真实 IP。

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

  4. 查询邮件:很多服务器自带邮件发送功能,可以利用它来获取真实 IP。让站点主动发送邮件,然后右键查询源代码,就能获得真实 IP。

这个工具可以检测旁站:http://tool.chinaz.com/same/

端口扫描可以使用 Nmap 进行,请见“工具篇 Nmap”一节。

目录信息

  1. 主动式扫描:爬虫、暴力破解

    • AVWS:根据站点的链接(见“工具篇 AVWS”一节)
    • 御剑:根据固定的字典

  2. 被动式扫描:Burp Spider

  3. Google Hack

    • intitle:搜索网页标题中包含有特定字符的网页
    • inurl:搜索包含有特定字符的 URL
    • intext:搜索网页正文内容中的指定字符
    • filetype:搜索指定类型的文件
    • site:搜索与指定网站有联系的 URL
  4. robots.txt(补充)

    重点看Disallow的部分。

  5. 联网设备搜索

    • 钟馗之眼www.zoomeye.com
    • 傻蛋www.oshadan.com

    联网设备搜索引擎可以检索到许多搜索引擎不收录的页面,通常是后台等页面。

    构造检索关键词时:

    • 系统/后台类,可以搜索“xxx系统/平台/管理”。
    • 企业类,可以搜索“xxx企业/公司/平台”。

    比如我们要挖电信的系统,可以搜索“电信系统/平台/管理”。

    这里使用傻蛋这个平台演示一下,它不仅仅能监控系统,还能搜索到一些内网的系统。比如我们要挖一些电信系统,这里点击全网搜索,可以看到很多外网看不到的内部系统。

    我们点击其中一个“汕尾用电监控系统”,可以看到详细的用电情况,这个就属于一种越权或者绕过。

服务信息

查看返回的数据包的Server头,获取Server信息。如Server:Microsoft-IIS/6.0

GET / HTTP/1.1
Host: www.hi-ourlife.com
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:49.0) Gecko/20100101 Firefox/49.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Cookie: __cfduid=d85643dc07ab45d17ec48c37dde7145d11480308480; PHPSESSID=qfg2unrqvc1adhvcpn8ejhguqulakcd2; CNZZDATA1258769653=1514150716-1480308628-%7C1480308628; timezone=8
X-Forwarded-For: 127.0.0.1
Connection: keep-alive
Upgrade-Insecure-Requests: 1

HTTP/1.1 200 OK
Date: Mon, 28 Nov 2016 05:43:11 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: keep-alive
Product: Z-BlogPHP 1.5 Zero
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Vary: Accept-Encoding
Server: yunjiasu-nginx
CF-RAY: 308b8035114c226a-LAX
Content-Encoding: gzip

这个封包告诉我们服务器是 Nginx。

脚本信息

  1. 查看返回的数据包中的X-Powered-By的值

  2. 查看cookie中的信息

    PHPSESSID
    ASPSESSID

比如上面的封包中出现了PHPSESSID,说明站点很可能使用 PHP 编写。

框架信息

通过报错信息或是URL结构获取网站使用的框架信息。如ThinkPHP,Struts等。

应用信息

目录特征、文件特征、指纹扫描工具、网站特征等。

比如存在wp-login.php就可能是 WordPress。

子域名信息

个人信息

社会工程学:使人们顺从你的意愿、满足你的欲望的一门艺术与学问。

QQ 空间人肉方法的思维导图:

附录