OneForAll项目收集模块详解与技术应用指南
一、项目概述
OneForAll是一款强大的子域名收集工具,它集成了多种收集技术和方法,能够帮助安全研究人员、渗透测试工程师和网络管理员全面发现目标系统的子域名资产。本文将详细介绍OneForAll中的各类收集模块及其技术原理。
二、模块配置基础
在使用OneForAll前,需要了解基本的模块配置方法:
- 模块启用控制:
enable_all_module = False # 关闭所有模块
enable_partial_module = [('modules.search', 'ask'), ('modules.search', 'baidu')] # 仅启用ask和baidu搜索引擎
- 代理设置:
enable_proxy = True # 启用代理
proxy_all_module = False # 不代理所有模块
proxy_partial_module = ['GoogleQuery', 'AskSearch'] # 仅代理指定模块
三、证书透明度收集模块
证书透明度(Certificate Transparency)是现代SSL/TLS证书的重要特性,这些模块通过查询公开的CT日志发现子域名:
-
技术原理:当CA机构签发SSL证书时,会将记录提交到公共日志服务器,这些日志包含了证书关联的所有域名信息。
-
模块对比:
censys_api
/spyse_api
:提供API访问的商用服务,数据全面但需要注册certspotter
/crtsh
:免费公开的CT日志查询服务google
:需代理访问,数据来自Google的CT日志
-
应用场景:快速发现目标组织使用的所有HTTPS服务子域名
四、常规安全检查模块
这些模块通过检查各种网络协议和文件来发现子域名:
-
核心模块:
axfr
:检测DNS区域传输配置,可直接获取完整DNS记录cdx
:分析跨域策略文件(xml/policy),发现允许跨域访问的子域cert
:直接从HTTPS证书中提取SAN(Subject Alternative Name)字段csp
:解析内容安全策略头中的域名信息
-
技术要点:
- 域传输配置检查需要目标DNS服务器配置不当
- 证书检查无需建立完整HTTPS连接,只需获取证书信息
五、网络爬虫档案模块
利用互联网档案馆和公共爬虫项目的历史数据:
-
模块特点:
archivecrawl
:访问Wayback Machine等存档服务commoncrawl
:使用Common Crawl项目的海量网页数据
-
技术价值:可以发现已下线但曾存在过的历史子域名
六、DNS数据集模块
这些模块查询各类DNS数据库和搜索引擎:
-
分类说明:
- 商业API:
binaryedge_api
、securitytrails_api
等 - 免费服务:
hackertarget
、dnsdumpster
等 - 特定区域:
cebaidu
、chinaz
专注于中文互联网
- 商业API:
-
数据来源:
- 被动DNS记录
- 历史DNS查询日志
- 全球DNS解析数据
七、DNS查询技术模块
- SRV记录枚举:
- 通过查询
_ldap._tcp
、_sip._tcp
等常见服务记录发现子域 - 特别适用于企业内网服务发现
- 通过查询
八、威胁情报平台模块
整合多家威胁情报数据:
-
平台特点:
virustotal
:聚合多家安全厂商的扫描数据riskiq_api
:提供专业的被动DNS和SSL证书数据threatbook
:微步在线的威胁情报API
-
应用价值:可以发现与恶意软件、C&C服务器相关的隐蔽子域
九、搜索引擎模块
利用主流搜索引擎的站点检索功能:
-
技术实现:
- 自动构造高级搜索语法
- 支持分页抓取和结果去重
- 可设置递归搜索深度
-
特殊说明:
- Google/Bing等需要处理反爬机制
- API版本有请求频率限制但更稳定
github
模块专门搜索代码仓库中的域名信息
十、模块选择建议
- 基础扫描:证书透明度+常规检查+DNS查询
- 全面收集:增加DNS数据集和搜索引擎
- 深度探测:启用威胁情报和爬虫档案
- 规避检测:合理配置代理和请求间隔
十一、最佳实践
- 对于重要目标,建议分阶段运行不同模块组合
- API类模块建议设置合理的请求间隔
- 定期更新工具以获取最新的模块改进
- 结果需要人工验证去除误报
通过合理配置和组合这些模块,OneForAll可以成为网络资产发现和子域名枚举的强大工具。各模块采用的技术互补,能够最大程度地发现目标系统的所有子域名资产。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考