一、什么是信息收集

渗透的本质就是信息收集(也叫资产收集),收集是渗透的前期主要工作,只有收集到足够多的信息才能方便接下来的渗透测试。
信息收集包括:域名的注册信息、子域名信息、目标网站的信息、网站真实IP、敏感目录和文件、开放端口和中间件信息等等。收集这些信息有助于我们找到渗透点和突破口。

二、信息收集的方法

通过一个域名可以获得很多有用的信息:

2.1 查询注册信息

域名在注册的时候需要填写个人或者企业信息,如果没有设置隐藏属性,就能查询出来。
还能通过备案号查询个人或者企业信息。
也可以通过whois反查注册人、邮箱、电话、机构获得更多信息。
有以下网站可以在线查询:

站长之家: http://whois.chinaz.com/
爱站网: https://whois.aizhan.com/
腾讯云: https://whois.cloud.tencent.com/
万网: https://whois.aliyun.com/
新网: http://whois.xinnet.com/domain/whois/index.jsp
新网互联: http://www.dns.com.cn/show/domain/whois/index.do
国外WHOIS:信息查询地址 https://who.is/ 该站可查询完整邮箱(国内网站查到的结果会隐藏注册邮箱)

比如随便搜索一个域名

可以得到注册人的名字,通过这个名字反查其名下还有哪些域名

也可以通过kali查询

whois nstf.cn

除此之外,还能通过网站备案机构查询备案信息

1. 天眼查: https://www.tianyancha.com/
2. ICP备案查询网:https://beian.miit.gov.cn/
3. 爱站备案查询:https://icp.aizhan.com/
4. 域名助手备案信息查询: http://cha.fute.com/index

2.2 子域名查询

域名分为根域名和子域名。比如baiud.com就是根域名也叫顶级域名,而www.baidu.com和tieba.baidu.com 叫二级域名
通过收集子域名可以扩大渗透测试的范围。
子域名中的常见资产类型一般包括办公系统,邮箱系统,论坛,商城,其他管理系统,网站管理后台也有可能出现子域名中。
首先找到目标站点,在官网中可能会找到相关资产(多为办公系统,邮箱系统等),关注一下页面底部,也许有管理后台等收获。

2.2.1 在线查询

# 子域名在线查询
https://phpinfo.me/domain/
https://www.t1h2ua.cn/tools/
https://dnsdumpster.com/
https://site.ip138.com/moonsec.com/domain.htm
# FOFA查询
网站:https://fofa.so/
语法:domain=”baidu.com”
  • 提示:以上两种方法无需爆破,查询速度快,需要快速收集资产时可以优先使用。
    Hackertarget

    https://hackertarget.com/find-dns-host-records/
    注意:通过该方法查询子域名可以得到一个目标大概的ip段,接下来可以通过ip来收集信息。

    2.2.2 工具查询

    Layer子域名挖掘机

    使用方法很简单,输入域名,点击开始即可。
    注:字典在软件根目录下。该软件会暴力枚举字典里的二级域名

    subDomainsBrute

    工具GIthub地址:https://github.com/lijiejie/subDomainsBrute

    --version:显示版本号并退出
    -f FILE:指定暴力猜解字典,默认使用subnames.txt.
    –full: 全扫描,使用subnames_full.txt
    -i:忽略不想采集的IP地址
    -t:扫描线程数,默认200
    -p:扫描进程数,默认为6
    -o:输出文件名称 {target}.txt
    #安装依赖
    pip install dnspython gevent
    #扫描
    python subDomainsBrute.py changtu.com
    Sublist3r

    sublist3r也是一款收集子域名的python脚本
    Python 2 的推荐版本是2.7.x
    Python 3 的推荐版本是3.4.x
    https://github.com/aboul3la/Sublist3r

    -h :帮助
    -d :指定主域名枚举子域名
    -b :调用subbrute暴力枚举子域名
    -p :指定tpc端口扫描子域名
    -v :显示实时详细信息结果
    -t :指定线程
    -e :指定搜索引擎
    -o :将结果保存到文本
    -n :输出不带颜色 
    # 安装依赖
    pip install -r requirements.txt
    # 默认参数扫描子域名
    python sublist3r.py -d baidu.com
    # 使用暴力枚举子域名
    python sublist3r -b -d baidu.com

    2.3 隐藏的子域名

    很多时候目标资产的IP时,返回错误401、403、404、500,但是用域名请求却能返回正常的业务系统,这是因为网站配置了禁止IP直接访问,域名删除了域名解析,通过信任服务器的反向代理访问。我们可以通过修改本机的hosts文件,加上域名,也能访问域名,通常这种二级域名都是非常重要的内部系统

    2.3.1 扫描隐藏子域名

    脚本:https://github.com/fofapro/Hosts_scan
    脚本原理:在发送http请求的时候,对域名和IP列表进行配对,然后遍历发送请求 (就相当于修改了本地的hosts文件一样),并把相应的title和响应包大小拿回 来做对比,即可快速发现一些隐蔽的资产。
    使用方法参照以下:
    https://mp.weixin.qq.com/s/fuASZODw1rLvgT7GySMC8Q

2.4 查找真实IP

目前很多网站使用了cdn服务,用了此服务 可以隐藏服务器的真实IP,加速网站静态文件的访问,而且你请求网站服务时,cdn服务会根据你所在的地区,选择合适的线路给予你访问,由此达网站加速的效果,cdn不仅可以加速网站访问,还可以提供waf服务,如防止cc攻击,SQL注入拦截等多种功能,再说使用cdn的成本不太高,很多云服务器也免费提供此服务。在进行黑盒测试的时候,往往成了拦路石,所以掌握cdn找真实ip成了不得不掌握的一项技术。

2.4.1 判断是否CDN

ping 域名,或者用以下网站在线检测

http://ping.chinaz.com/
http://ping.aizhan.com/
https://www.17ce.com/
http://ping.chinaz.com/www.t00ls.net

不同的地区访问有着不同的IP,这样就确定了该域名使用了cdn了。

2.4.2 国外尝试访问

如果网站设置了CDN,我们可以先尝试在国外请求,看看返回的IP是多少。因为有些国内的网站用户群只是国内用户,他们也只设置的国内CDN,所以通过国外访问就能得到服务器真实IP地址了

2.4.3绕过 CDN 查找网站真实 IP

历史解析

很多网站一开始没上CDN,用的是真实的服务器IP,可以通过查询域名的历史解析记录在测试是否为真实IP
查询地址:

https://site.ip138.com/
https://sitereport.netcraft.com/
https://dnsdb.io/zh-cn/
https://x.threatbook.cn/
https://tools.ipip.net/cdn.php
https://viewdns.info/


同样,也可以通过IP反查也看这个服务器解析过的域名

2.4.4 搜索ico图标

我们也可以搜索网站的ico图标也查找这个图标曾经在哪些服务器使用过,通过IP反查,查询这个IP上的站点名

fofa.so
quake.360.cn

2.4.5 搜索网站的敏感文件

有些敏感文件会记录服务器的真实IP
比如phpinfo,这是记录php服务器的运行信息的文件
通过fofa.so搜索tittle:”phpinfo”找到PHP网站

打开搜索到的网站,可以看到phpinfo文件记录的服务器IP地址

2.4.6 脚本获取

使用工具获取CDN后的真实IP地址
https://github.com/superfish9/hackcdn
https://github.com/boy-hack/w8fuckcdn

欧洲:
http://ftp.ripe.net/pub/stats/ripencc/delegated-ripencc-latest
北美:
https://ftp.arin.net/pub/stats/arin/delegated-arin-extended-latest
亚洲:
ftp://ftp.apnic.net/public/apnic/stats/apnic/delegated-apnic-latest
非洲:
ftp://ftp.afrinic.net/pub/stats/afrinic/delegated-afrinic-latest
拉美:
ftp://ftp.lacnic.net/pub/stats/lacnic/delegated-lacnic-extended-latest
获取CN的IP
http://www.ipdeny.com/ipblocks/data/countries/cn.zone

2.4.7 搜索子域名解析

比如,有些网站只设置的www.test.com 的站点做了CDN加速,但是其他子域名比如oa.test.com 没有设置。我们可以通过这个域名返回的IP来判断其服务器真实IP。或者www.test.com 的CDN加速只配置了https没配置http,我们也可以通过请求http获取真实IP

2.5 探测旁站和C段

旁站就是一个服务器上部署了多个网站。我们可以通过IP查询服务器上有没有其他网站
C段:
https://c.webscan.cc
或者用脚本查询

#coding:utf-8
import requests
import json

def get_c(ip):
    print("正在收集{}".format(ip))
    url="http://api.webscan.cc/?action=query&ip={}".format(ip)
    req=requests.get(url=url)
    html=req.text
    data=req.json()
    if 'null' not in html:
        with open("resulit.txt", 'a', encoding='utf-8') as f:
            f.write(ip + '\n')
            f.close()
        for i in data:
            with open("resulit.txt", 'a',encoding='utf-8') as f:
                f.write("\t{} {}\n".format(i['domain'],i['title']))
                print("     [+] {} {}[+]".format(i['domain'],i['title']))
                f.close()

def get_ips(ip):
    iplist=[]
    ips_str = ip[:ip.rfind('.')]
    for ips in range(1, 256):
        ipadd=ips_str + '.' + str(ips)
        iplist.append(ipadd)
    return iplist

ip=input("请你输入要查询的ip:")

ips=get_ips(ip)
for p in ips:
    get_c(p)
pip install requests
python xxx.py

2.6 网络空间搜索引擎

网络空间搜索引擎有:GitHub、google hacking、fofa、sohdan、钟馗之眼等
通过这些引擎可以查找网站或者服务器的信息,进行下一步渗透

2.7 扫描敏感文件和目录

通过扫描网站的敏感文件和目录,可以大致了解网站的结构,寻找突破点。比如后台、文件备份、上传点等

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。