一、什么是信息收集
渗透的本质就是信息收集(也叫资产收集),收集是渗透的前期主要工作,只有收集到足够多的信息才能方便接下来的渗透测试。
信息收集包括:域名的注册信息、子域名信息、目标网站的信息、网站真实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”
- 提示:以上两种方法无需爆破,查询速度快,需要快速收集资产时可以优先使用。
Hackertargethttps://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 扫描敏感文件和目录
通过扫描网站的敏感文件和目录,可以大致了解网站的结构,寻找突破点。比如后台、文件备份、上传点等
评论(0)