背景痛点
资产攻击面梳理是FOFA的核心使用场景之一。无论是 甲方、乙方或者白帽子 的FOFA工程师们,攻击面梳理都是使用FOFA必不可少的技能。
但是在进行攻击面梳理的过程中,不管是查询语句的编写还是线索的收集都需要耗费大量的时间和精力,自己编写脚本用FOFA收集耗时又耗力,需要考虑准确性、实效性、数据清洗等很多问题,还需要具备一定的开发能力,往往又会出现时间紧任务重的情况,那么一种
高效率、以上帝视角 进行资产梳理的工具就是我们要探索的方向。
功能展示
我们直接通过视频直观感受一下这个全新的视角。
整体流程很快,我们把视频中的流程可以拆分为主要的三部分。
第一步:辅助用户完成资产线索的查找
根据主域名的搜索结果,将信息聚类由点到面、从0到1扩充结果。提取出了最容易产生线索信息的几个大类: 证书组织、证书内所包含的域名、IP
C段、域名信息和ASN组织 ,并将它们进行聚类展示,直接向用户提供结果线索。
第二步:线索自动聚合,完成线索结果的整合
根据输入的线索,可以通过资产聚类的形式快速地提取其相关联的资产线索,不管是 证书 还是关联性极强的 IP C段
,我们通过添加线索即可。要注意的是,这些线索不单单可以作为聚合目标所使用,也可以作为 资产画像
存在,所以所有确认的线索都存储在左侧的线索框中,用户可以 下载 所有已选择的线索。
第三步:完成元数据到业务数据的转化
也就是下载!因为可能会有泛解析和重复的情况,我们的下载添加了去重功能,视频中选用了默认的第二档,这个是可选的,下载的数据去重分为三挡:
• 第一档:不去重;需要所有的数据;
• 第二档:去重泛域名资产和服务/协议类的重复资产;
• 第三档:直接获取搜索结果中的IP和子域名资产;
三步走,就可以快速的完成资产的梳理,相信通过视频也看到了,整个流程非常的简单:输入域名、添加线索、下载资产,就可以了,接下来我们就进行实战检验!
实战对比
我们取Hackerone上的一个案例来进行实战一下。以Paypal为例子,通过它的主域名paypal.com进行实战演示,对该企业的资产进行梳理。
对比资产梳理后的结果和从Chaos Db下载的数据集:
chaos-Add代表chaos Db多出来的域名数量,fofa-add代表FOFA多出来的域名数量,Same代表相同的。
root-domains表示根域名数量,图中能看出FOFA比chaos
Db的数据多了196个根域名,在根域名的关联发现上,FOFA具有绝对优势,会将更多的信息进行关联,扩大线索面。
但是子域名的数量chaos数据集多出来很多,这是因为FOFA下载的数据是经过一系列的清洗处理过的资产,chaos
Db的数据集有些还是无法解析的子域名,所以我们再次对chaos Db和FOFA的数据进行子域名解析处理,再进行比较,这样就去掉了无法解析的无效资产:
从上图能看到经过DNS解析后,chaos db的数据中部分域名的损失率比较高:
比如paypal的损失率为61%,xoom.com的损失率高达81%。
paypal.com | (3876-1502)/3876 | 61% |
---|---|---|
xoom.com | (788-149)/788 | 81% |
损失率 = (解析前的域名数量 - 解析后的域名数量)/ 解析前的域名数量
FOFA的数据基本没什么变化,所以在有效性方面,FOFA的效果是十分突出的。但是我们可以看到,chaos db的子域名数据量还是非常多的。
这是因为在正常的使用过程中,域名经过dns解析后还需要检测http请求,来找到目标站点,所以我们再来一层http请求检测,我们来看一下检测后的结果:
注意:这里使用httpx基于原始的域名数据(不是经过dnsx过滤后的),并且只检测了httpx默认的80,443端口的web请求,其它端口被忽略,虽然FOFA提供的有其它端口,但是对于chaos
db的数据集需要更多的主动扫描才能发现,这里实际上还缺少了一个针对域名上的ip进行端口扫描的过程。为了方便比较,FOFA的数据也是只使用域名列表,然后使用httpx进行过滤,只比较端口80,443上有效的域名数量。
大部分的情况下,FOFA的数据量是比较多的,但是在paydiant.com和venmo.com的根域名数据上,发现数据量差距极大,查看子域名列表,发现chaosdb有很多的泛域名解析或者网页内容一样的站点,在实际的赏金任务过程中,针对这些站点也会做清洗过滤,所以我们继续进行数据清洗,下面是针对http请求内容相似的网站过滤后的对比:
根据上图可以看到,去掉相似的http请求内容后的数据里,大部分情况下FOFA的数据量都是领先的。
使用chaos
db的数据集,需要进行一步步的手工处理。比如说本次处理消耗总共耗时将近2小时,但是FOFA的数据获取只在聚合视角下点了点,只花费了几分钟,就能收集到相关的资产,最终得到的有效域名数量,也非常有优势。
当然也有OneForAll这样的工具自动化的完成整套流程,结果也包含了title、地理位置等更多的字段,但它只能针对指定的根域名进行资产发现,以下是针对paypal.com,使用OneForAll结果中的request=1的数据,并经过去除http重复数据的对比,注意也是使用默认参数,只检测了80,443端口:
使用oneforall可以自动化的处理上面的手动DNS解析、http请求的步骤,但也需要半个小时才能跑完paypal的一个根域名。从效率上,FOFA的操作过程也是更快更简单。
当然最好的情况是结合各种工具的结果,提供完整全面的数据,这就需要更多的手工操作,如果需要轻量的,快速的获取一个目标的相关资产,FOFA的
攻击面梳理快捷、高效、结果丰富,并且是被动的收集,这就是我们的选择和解决的痛点。
工具/特点| fofa攻击面梳理| 使用chaos db数据集,然后经过dnsx,httpx的处理|
使用amass收集子域名,然后经过dnsx,httpx的处理| OneForAll
—|—|—|—|—
关联资产发现能力| 4 发现更多关联子域名,但也会出现有不是目标的域名| 2 可以发现一个组织的根域名,但只能下载列表里有的数据| 1 手动指定单个根域名|
1 手动指定单个根域名
子域名发现能力| 4 子域名较多,但也会有一些遗漏| 3 有效子域名并没有那么多| 4 子域名较多,但也会有一些遗漏| 4 子域名较多,但也会有一些遗漏
数据质量| 4 数据有效性比较高,但也会有一些过期数据| 1 较差,损失率比较高| 1 较差,损失率比较高| 5 数据有效性比较高
数据深度| 5 提供较多的额外字段| 1 只有域名| 1 只有域名| 3 提供较多的额外字段
效率| 5 简单、快速,被动收集| 1 下载后还要经过一系列处理| 1 执行时间较长、执行完后需要一系列处理| 3
主动收集、针对单一域名自动完成数据获取、速度比较快
易用性| 4 web界面直接操作| 4 直接下载、但是还需要后续处理| 3 命令行操作| 3 命令行操作
通过结果来看,对比市面上获取子域名列表,然后通过域名解析检查,再通过http检测web可访问性的工具一步步进行梳理的过程,使用FOFA的攻击面梳理有以下优点:
1. 效率优势
不同于其他工具,在获取资产后需要人工进一步的处理,费时费力。FOFA的攻击面梳理可以快速地提升攻击面梳理的效率,大大地缩减时间成本。
2. 数据广度优势
在原始数据收集、DNS解析和HTTP访问的每个阶段,FOFA都显现出了广大的数据收集能力。
相比开源工具,基于FOFA的工具可以从一个根域名线索中发掘出更多相关根域名,可以利用 证书组织、ASN组织、IPC段
等信息,收集到更多相关IP地址而开源工具通常只以单一域名为起点。
开源工具可能无法提供如此全面的IP信息。在示例中只对比了子域名。
3. 数据质量和有效性优势
FOFA在资产梳理过程中更加注重数据的有效性,能够提供更为准确的、可访问的网络资产信息。
与开源数据相比,基于FOFA的工具仅提供有效访问的数据,而开源工具收集的域名可能包含无法解析、内网IP或无法访问的情况,需要额外过滤。
比如braintree和paypal的域名,尽管在原始数据获取阶段,FOFA的数据量相较于Chaos
DB略显不足,但在进一步的DNS解析和HTTP访问后,FOFA确保的有效数据量却超过了Chaos DB。
4. 数据丰富度优势
基于FOFA的攻击面梳理提供了更多的资产特征数据,比如asn,地理位置,title,body,cert等
关于用到的对比工具已开源至Github,有对比需要的师傅可以自取,可以尝试对比其它数据
地址:https://github.com/FofaInfo/fofa_assets_diff
总结
我们通过分析用户资产收集的痛点,经过探索从三个方面出发:辅助用户完成资产线索的查找;线索自动聚合,完成线索结果的整合;完成元数据到业务数据的转化;完成了基于上帝视角的资产梳理方式。可以大大简化资产探索的流程,提高梳理效率,帮助企业或组织及个人更好地管理和保护自己的外部安全威胁。
当然,这个功能目前还是在Beta阶段,需要消耗F点才能使用。我们未来会持续优化该功能,包括其中下载的数据清洗功能,并会根据情况调整使用成本,欢迎大家提供使用反馈,提供反馈给bot还可以获得F点奖励哦。
小彩蛋:在URL后面加上?&fid&icon_hash&sdk_hash,也就是https://fofa.info/extensions/assets?&fid&icon_hash&sdk_hash可以解锁我们在探索过程中加入的更多聚类线索信息哦~
ps://fofa.info/extensions/assets?&fid&icon_hash&sdk_hash](https://fofa.info/extensions/assets?&fid&icon_hash&sdk_hash)可以解锁我们在探索过程中加入的更多聚类线索信息哦~
学习计划安排
我一共划分了六个阶段,但并不是说你得学完全部才能上手工作,对于一些初级岗位,学到第三四个阶段就足矣~
这里我整合并且整理成了一份【282G】的网络安全从零基础入门到进阶资料包,需要的小伙伴可以扫描下方CSDN官方合作二维码免费领取哦,无偿分享!!!
如果你对网络安全入门感兴趣,那么你需要的话可以
点击这里👉网络安全重磅福利:入门&进阶全套282G学习资源包免费分享!
①网络安全学习路线
②上百份渗透测试电子书
③安全攻防357页笔记
④50份安全攻防面试指南
⑤安全红队渗透工具包
⑥HW护网行动经验总结
⑦100个漏洞实战案例
⑧安全大厂内部视频资源
⑨历年CTF夺旗赛题解析