红蓝对抗之信息收集
这篇文章发表在了朋友的公众号上,大家也可以移步公众号阅读,今天想起来备份到博客上
https://mp.weixin.qq.com/s?__biz=Mzg5NzY1NTI2OQ==&mid=2247483751&idx=1&sn=d3b2ffcd2134e6d66d4935bf56c8115d&chksm=c06fc9edf71840fb5072f905e9ae8444a242cbb865bff2436c0d74818530e923adfb4f3343d4&token=1058397600&lang=zh_CN#rd
简介
随着网络攻防技术的提升,通常的对单一系统的渗透测试已逐渐满足不了客户市场。现在企业内部的红蓝对抗,各个地区的护网行动如雨后春笋一般飞速发展。
这篇文章是针对这红蓝对抗项目的第一步“资产信息收集”进行一个总结和方法技巧的梳理。
企业信息收集
红蓝对抗中往往只会给你目标企业的名称,以及对应的靶标系统地址,而很少有直接从靶标系统入手获取权限的情况,这时候我们需要进行对企业的信息进行收集。
天眼查 https://www.tianyancha.com/
企查查 https://www.qcc.com/
启信宝 https://www.qixin.com/
以天眼查为例
首先我们需要收集一个企业的从属企业,如子公司,分支,甚至供应商,因为子公司分支公司可能与我们目标的内网有所连接,供应商的系统中拥有着我们目标的数据,比如人员信息,账号等方便下一步利用
查询子公司,一般控股在51%以上就可以算隶属于该目标的资产
查询分支公司
查供应商,供应商我们需要着重关注采购占比高的供应商,因为比例高说明该供应商的产品大部分都是我们靶标的
查了完了从属公司后我们下一步是去查对应公司的资产,也就是我们要从这些资产中去发现漏洞
查询公众号
查询app
查备案,备案有时候是ip的形式,有时候是域名的形式,我们拿到域名可以进行子域名收集,拿到ip可进行归纳,看看是不是大多属于同一个网段,如果是则可以对该网段进行一个收集
备案号查询
工信部备案号查询地址 https://beian.miit.gov.cn/#/Integrated/recordQuery
icp备案信息查询工具 https://www.icplist.com/
在有些较小的目标时,天眼查这类不一定能够搜索到备案信息
我们通过百度还是能找到南京卫健委的官网的
接下来我们可以看到在官网底部存在备案信息
我们把-7去掉,查询就是支持单位的备案域名,这里南京卫健委的网站是南京市信息中心统一管理的,那么有一定的概率南京市信息中心其他站点与卫健委站点内网相连
子域名
子域名收集无非是2种途径,一种是通过api接口如shodan,fofa之类的去查询,一种是通过dns解析去爆破子域名
这里推荐几个工具
subfinder(api收集子域名)
https://github.com/projectdiscovery/subfinder
# 单目标
subfinder -all -o doamin_result.txt -d xxx.com
# 多目标
subfinder -all -o results.txt -dL target.txt
shuffledns(子域名爆破)
需要先安装massdns
https://github.com/projectdiscovery/shuffledns
words.txt为爆破子域名字典,resolver.txt为dns服务器ip文件
shuffledns -massdns /usr/local/bin/massdns -w words.txt -r resolver.txt -o result.txt -d vivo.com
subfinder与shuffledns组合使用
结果保存在results.txt里面
#bash脚本,多目标
subfinder -all -dL $1 -o tmp/subfinder_$1.txt
shuffledns -massdns /usr/local/bin/massdns -w words.txt -r resolver.txt -list $1 -o shufflendns_$1.txt
cat tmp/subfinder_$1.txt | tee -a tmp/shufflendns_$1.txt
sort -u tmp/subfinder_$1.txt -o results.txt
rm -rf tmp/subfinder_$1.txt tmp/shufflendns_$1.txt
echo 'subscan over'
使用方法
sh scan.sh qq.com
集成工具oneforall
这里贴个连接,oneforall集合了很多资产收集工具,它的github文档写的很详细,读者可自行了解下
https://github.com/shmilylty/OneForAll
ip资产收集
现在有些企业的系统更新迭代迅速,往往有些目标的系统没有域名,并且为了免去备案过程的繁琐,它往往会把系统开在非80,443端口,备案信息也查不到
这时候思路一般是通过fofa,钟馗之眼这类的资产查询平台去收集,当然fofa上的资产不一定是及时有效的,我们拿到目标ip还可以进行一次全端口扫描,往往也可以发现一些fofa上没有记载的端口
直接搜索关键字
以江苏移动为例
(title="中国移动" || body="中国移动") && region="Jiangsu"
打开第一个链接,即为目标资产
当然该种方法任然会有很多其他的资产,这时候根据实际情况进行过滤
(title="中国移动" || body="中国移动") && region="Jiangsu" && (body="江苏" || title="江苏")
当然也会遗漏一些数据,这个就需要自己进行一个取舍了
根据已有资产去搜集c段
在初步信息收集结束后,手上会有备案过的ip地址,子域名解析对应的ip地址,进行归纳整理后,对其c段进行收集
我们根据备案信息,发现183.207.100.1/24 或者说183.207.100.1/16网段中多个ip都是属于目标资产的
我们可以对该网段进行一个信息收集
ip="183.207.100.223/16" && (title="中国移动" || body="中国移动")
根据证书收集资产
在通过fofa收集目标资产的时候,在左边就有证书信息
我们可以点击该链接,他会自动帮我们自动填写语法
cert.subject="中国移动通信集团江苏有限公司"
通过iconhash来收集
有些企业会将favicon.ico弄成相同的,比如移动的icon
https://github.com/Becivells/iconhash
我们通过iconhash工具进行计算
iconhash http://www.10086.cn/favicon.ico
也可以保存下来进行hash计算
iconhash -file favicon.ico
fofa需要高级会员才能使用icon进行搜索
根据header特征收集
比如有些站点他的Set-Cookie有对应特征字段,或者csp信息有域名等等,以tencent为例
header="tencent.com"
或者说搜索set-cookie
header="Domain=.cloud.tencent.com"
小结
上述几种方法读者可根据情况自行的进行组合使用,但也不排除有些资产web确实没有特征
资产确认
fofa扫C段有个问题是在于,确实发现漏洞了,但是怎么向红蓝对抗的裁判去证明该站点是我们的目标站点
可以从以下几个途径入手
站长之家-ip信息查询 http://ip.tool.chinaz.com/
该方法可以查到该ip的地理位置,如果是国外的话,那么一般可以排除
查询网-ip反查询 https://site.ip138.com/
我们不知道ip地址对应的域名是什么,但不代表他没有域名,我们可以通过该方法对ip地址进行反查
下图jscmcc.cn是江苏移动的域名,则可以推断出该ip就是江苏移动资产
威胁情报中心(微步) https://x.threatbook.cn/
威胁情况中心一般是用来应急响应溯源ip用的,他甚至包含了该ip的历史dns解析记录,在ip反查查不到的情况下用威胁情报中心进行一次反查往往能够有意想不到的收获
端口扫描
在红蓝对抗高强度,时间短的情况下,拿nmap去扫全端口等到天荒地老都不一定有结果,这里推荐2个快速扫描端口的工具
naabu
https://github.com/projectdiscovery/naabu
如果探测端口服务需要安装nmap,很慢建议可在vps上运行,下面是全端口扫描的命令
# 多目标全端口
naabu -p - -nmap-cli "nmap -sT -Pn -T4 -o result.txt" -iL target.txt
# 单目标全端口
naabu -p - -nmap-cli "nmap -sT -Pn -T4 -o result.txt" -host xxx.com
masscan
https://github.com/robertdavidgraham/masscan
#在linux下
apt-get install masscan
yum install masscan
#在mac下
brew install masscan
运行
masscan -p 1-65535 ip --rate 10000
服务识别
在端口扫描的时候就能帮我们识别一些服务了,比如mysql,http,ssh等等
但是有些存在非常用端口存在web站点而nmap识别出来是unknown的情况,而web通常是我们的常见突破口
httpx
https://github.com/projectdiscovery/httpx
我们可以使用httpx来识别web服务
httpx -status-code -content-length -title -l target.txt
我们的target.txt文件每行只需要域名或者ip,如果探测其他端口可以带上端口
在识别到存在web了之后我们可以进一步去识别目标的服务,在红蓝对抗中往往一些通用组件的漏洞是突破口
Ehole
https://github.com/EdgeSecurityTeam/EHole
和whatweb这种指纹识别工具比起来,一般可以识别出各种oa,各种国内用的系统等等,在国内红蓝对抗中往往更加有效果,文件一般是web的url连接(带http协议的写法)
Ehole -l 1.txt
结语
资产收集的方法还有很多,比如从apk中提取url地址,从dns服务器上查询解析记录等等方式。
如今在红蓝对抗中掉点率是越来越高,并且大部分资产都有设备waf等等,稍微扫一下路径就被封ip,而信息收集收集到防守方没有梳理归纳划入防守方的资产的时候,这种信息差往往会成为进入内网的突破口。