OneForAll

OneForAll

全面高效的子域名收集工具

OneForAll是一款功能全面的子域名收集工具。它整合了多种收集模块,包括证书透明度、常规检查和API查询等方法。该工具具有收集能力强、自动化程度高和可定制性强等优点,能够快速全面地获取目标域名的子域名信息。OneForAll基于Python开发,支持多平台使用,并提供了简洁的命令行界面。作为信息收集阶段的有力工具,OneForAll可显著提高渗透测试的效率。

OneForAll子域收集信息收集渗透测试Python工具Github开源项目

OneForAll

Build Status codecov Maintainability License python python

👊OneForAll是一款功能强大的子域收集工具 📝English Document

Example

🚀上手指南

📢 请务必花一点时间阅读此文档,有助于你快速熟悉OneForAll!

<details> <summary><b>🐍安装要求</b></summary>

OneForAll基于Python 3.6.0开发和测试,OneForAll需要高于Python 3.6.0的版本才能运行。 安装Python环境可以参考Python 3 安装指南。运行以下命令检查Python和pip3版本:

python -V pip3 -V

如果你看到类似以下的输出便说明Python环境没有问题:

Python 3.6.0 pip 19.2.2 from C:\Users\shmilylty\AppData\Roaming\Python\Python36\site-packages\pip (python 3.6)
</details> <details> <summary><b>✔安装步骤(git 版)</b></summary>
  1. 下载

由于该项目处于开发中,会不断进行更新迭代,下载时请使用git clone克隆最新代码仓库,也方便后续的更新,不推荐从Releases下载,因为Releases里版本更新缓慢,也不方便更新, 本项目已经在码云(Gitee)镜像了一份,国内推荐使用码云进行克隆比较快:

git clone https://gitee.com/shmilylty/OneForAll.git

或者:

git clone https://github.com/shmilylty/OneForAll.git
  1. 安装

你可以通过pip3安装OneForAll的依赖,以下为Windows系统下使用pip3安装依赖的示例:注意:如果你的Python3安装在系统Program Files目录下,如:C:\Program Files\Python36,那么请以管理员身份运行命令提示符cmd执行以下命令!

cd OneForAll/ python3 -m pip install -U pip setuptools wheel -i https://mirrors.aliyun.com/pypi/simple/ pip3 install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/ python3 oneforall.py --help

其他系统平台的请参考依赖安装,如果在安装依赖过程中发现编译某个依赖库失败时可以参考常见问题与回答.md文档中解决方法,如果依然不能解决欢迎加群反馈问题。

  1. 更新

执行以下命令更新项目(可保存对/config/setting.py/config/api.py的修改):

git stash # 暂存本地的修改 git fetch --all # 拉取项目更新 git pull # 下载覆盖 git stash pop # 释放本地修改
</details> <details> <summary><b>✔安装步骤(docker 版)</b></summary>

首先下载并编辑配置文件,添加自己的api和个性化设置,并保留原始文件结构

config
├── api.py
├── default.py
├── __init__.py
├── log.py
└── setting.py

拉取镜像并执行,其中~/.config替换为你自己配置文件所在文件夹的路径

docker pull shmilylty/oneforall docker run -it --rm -v ~/results:/OneForAll/results -v ~/.config:/OneForAll/config shmilylty/oneforall --target example.com run

参数直接加在指令末尾,结果会输出在本地目录~/results,如需保存到其他位置,可以自行修改

</details> <details> <summary><b>✨使用演示</b></summary>

如果你是通过pip3安装的依赖则使用以下命令运行示例:

python3 oneforall.py --target example.com run python3 oneforall.py --targets ./example.txt run

Example

</details> <details> <summary><b>🧐结果说明</b></summary>

我们以python3 oneforall.py --target example.com run命令为例,OneForAll在默认参数正常执行完毕会在results目录生成相应结果:

Result

example.com.csv是每个主域下的子域收集结果。

all_subdomain_result_1583034493.csv是每次运行OneForAll收集到子域的汇总结果,包含example.com.csv,方便在批量收集场景中获取全部结果。

result.sqlite3是存放每次运行OneForAll收集到子域的SQLite3结果数据库,其数据库结构如下图:

Database

其中类似example_com_origin_result表存放每个模块最初子域收集结果。

其中类似example_com_resolve_result表存放对子域进行解析后的结果。

其中类似example_com_last_result表存放上一次子域收集结果(需要收集两次以上才会生成)。

其中类似example_com_now_result表存放现在子域收集结果,一般情况关注这张表就可以了。

更多信息请参阅字段解释说明

</details> <details> <summary><b>🤔使用帮助</b></summary>

命令行参数只提供了一些常用参数,更多详细的参数配置请见setting.py,如果你认为有些参数是命令界面经常使用到的或缺少了什么参数等问题非常欢迎反馈。由于众所周知的原因,如果要使用一些被墙的收集接口请先到setting.py配置代理,有些收集模块需要提供API(大多都是可以注册账号免费获取),如果需要使用请到api.py配置API信息,如果不使用请忽略有关报错提示。(详细模块请阅读收集模块说明

OneForAll命令行界面基于Fire实现,有关Fire更高级使用方法请参阅使用Fire CLI

oneforall.py是主程序入口,oneforall.py可以调用brute.pytakerover.pydbexport.py等模块,为了方便进行子域爆破独立出了brute.py,为了方便进行子域接管风险检查独立出了takerover.py,为了方便数据库导出独立出了dbexport.py,这些模块都可以单独运行,并且所接受参数要更丰富一点,如果要单独使用这些模块请参考使用帮助

❗注意:当你在使用过程中遇到一些问题或者疑惑时,请先到Issues里使用搜索找找答案,还可以参阅常见问题与回答

oneforall.py使用帮助

以下帮助信息可能不是最新的,你可以使用python oneforall.py --help获取最新的帮助信息。

python oneforall.py --help
NAME oneforall.py - OneForAll帮助信息 SYNOPSIS oneforall.py COMMAND | --target=TARGET <flags> DESCRIPTION OneForAll是一款功能强大的子域收集工具 Example: python3 oneforall.py version python3 oneforall.py --target example.com run python3 oneforall.py --targets ./domains.txt run python3 oneforall.py --target example.com --valid None run python3 oneforall.py --target example.com --brute True run python3 oneforall.py --target example.com --port small run python3 oneforall.py --target example.com --fmt csv run python3 oneforall.py --target example.com --dns False run python3 oneforall.py --target example.com --req False run python3 oneforall.py --target example.com --takeover False run python3 oneforall.py --target example.com --show True run Note: 参数alive可选值True,False分别表示导出存活,全部子域结果 参数port可选值有'default', 'small', 'large', 详见config.py配置 参数fmt可选格式有 'csv','json' 参数path默认None使用OneForAll结果目录生成路径 ARGUMENTS TARGET 单个域名(二选一必需参数) TARGETS 每行一个域名的文件路径(二选一必需参数) FLAGS --brute=BRUTE s --dns=DNS DNS解析子域(默认True) --req=REQ HTTP请求子域(默认True) --port=PORT 请求验证子域的端口范围(默认只探测80端口) --valid=VALID 只导出存活的子域结果(默认False) --fmt=FMT 结果保存格式(默认csv) --path=PATH 结果保存路径(默认None) --takeover=TAKEOVER 检查子域接管(默认False)
</details>

🎉项目简介

项目地址:https://github.com/shmilylty/OneForAll

在渗透测试中信息收集的重要性不言而喻,子域收集是信息收集中必不可少且非常重要的一环,目前网上也开源了许多子域收集的工具,但是总是存在以下部分问题:

  • 不够强大,子域收集的接口不够多,不能做到对批量子域自动收集,没有自动子域解析,验证,FUZZ以及信息拓展等功能。
  • 不够友好,固然命令行模块比较方便,但是当可选的参数很多,要实现的操作复杂,用命令行模式就有点不够友好,如果有交互良好,高可操作的前端那么使用体验就会好很多。
  • 缺少维护,很多工具几年没有更新过一次,issues和PR是啥,不存在的。
  • 效率问题,没有利用多进程,多线程以及异步协程技术,速度较慢。

为了解决以上痛点,此项目应用而生,正如其名,我希望OneForAll是一款集百家之长,功能强大的全面快速子域收集终极神器🔨。

目前OneForAll还在开发中,肯定有不少问题和需要改进的地方,欢迎大佬们提交IssuesPR,用着还行给个小星星✨吧,目前有一个专门用于OneForAll交流和反馈QQ群👨‍👨‍👦‍👦::824414244(加群验证:信息收集)。

👍功能特性

  • 收集能力强大,详细模块请阅读收集模块说明
    1. 利用证书透明度收集子域(目前有6个模块:censys_apicertspottercrtshentrustgooglespyse_api
    2. 常规检查收集子域(目前有4个模块:域传送漏洞利用axfr,检查跨域策略文件cdx,检查HTTPS证书cert,检查内容安全策略csp,检查robots文件robots,检查sitemap文件sitemap,利用NSEC记录遍历DNS域dnssec,后续会添加NSEC3记录等模块)

编辑推荐精选

Vora

Vora

免费创建高清无水印Sora视频

Vora是一个免费创建高清无水印Sora视频的AI工具

Refly.AI

Refly.AI

最适合小白的AI自动化工作流平台

无需编码,轻松生成可复用、可变现的AI自动化工作流

酷表ChatExcel

酷表ChatExcel

大模型驱动的Excel数据处理工具

基于大模型交互的表格处理系统,允许用户通过对话方式完成数据整理和可视化分析。系统采用机器学习算法解析用户指令,自动执行排序、公式计算和数据透视等操作,支持多种文件格式导入导出。数据处理响应速度保持在0.8秒以内,支持超过100万行数据的即时分析。

AI工具酷表ChatExcelAI智能客服AI营销产品使用教程
TRAE编程

TRAE编程

AI辅助编程,代码自动修复

Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。

AI工具TraeAI IDE协作生产力转型热门
AIWritePaper论文写作

AIWritePaper论文写作

AI论文写作指导平台

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

AI辅助写作AI工具AI论文工具论文写作智能生成大纲数据安全AI助手热门
博思AIPPT

博思AIPPT

AI一键生成PPT,就用博思AIPPT!

博思AIPPT,新一代的AI生成PPT平台,支持智能生成PPT、AI美化PPT、文本&链接生成PPT、导入Word/PDF/Markdown文档生成PPT等,内置海量精美PPT模板,涵盖商务、教育、科技等不同风格,同时针对每个页面提供多种版式,一键自适应切换,完美适配各种办公场景。

AI办公办公工具AI工具博思AIPPTAI生成PPT智能排版海量精品模板AI创作热门
潮际好麦

潮际好麦

AI赋能电商视觉革命,一站式智能商拍平台

潮际好麦深耕服装行业,是国内AI试衣效果最好的软件。使用先进AIGC能力为电商卖家批量提供优质的、低成本的商拍图。合作品牌有Shein、Lazada、安踏、百丽等65个国内外头部品牌,以及国内10万+淘宝、天猫、京东等主流平台的品牌商家,为卖家节省将近85%的出图成本,提升约3倍出图效率,让品牌能够快速上架。

iTerms

iTerms

企业专属的AI法律顾问

iTerms是法大大集团旗下法律子品牌,基于最先进的大语言模型(LLM)、专业的法律知识库和强大的智能体架构,帮助企业扫清合规障碍,筑牢风控防线,成为您企业专属的AI法律顾问。

SimilarWeb流量提升

SimilarWeb流量提升

稳定高效的流量提升解决方案,助力品牌曝光

稳定高效的流量提升解决方案,助力品牌曝光

Sora2视频免费生成

Sora2视频免费生成

最新版Sora2模型免费使用,一键生成无水印视频

最新版Sora2模型免费使用,一键生成无水印视频

下拉加载更多