采集工具免责说明(全面快速子域收集终极神器-Python和pip3安装步骤(git版) )
优采云 发布时间: 2021-11-18 05:13采集工具免责说明(全面快速子域收集终极神器-Python和pip3安装步骤(git版)
)
一体机
OneForAll 是一款强大的子域采集工具英文文档
项目描述
项目地址:
信息采集在渗透测试中的重要性不言而喻。子域采集是信息采集中不可或缺且非常重要的一部分。目前网上已经开源了很多子域采集的工具,但是一直存在以下问题:
为了解决以上痛点,本项目应用应运而生。顾名思义,希望OneForAll是一款强大、全面、强大的快速子域采集终极神器。
目前 OneForAll 仍在开发中。一定有很多问题和需要改进的地方。欢迎大佬提交问题和 PR。给个小星星就可以了✨,目前有一个QQ群专门用于OneForAll交流反馈::824414244(加群验证:我的英雄学院)。
特征
如果您有其他很棒的想法,请告诉我!
入门
请务必花点时间阅读本文档,以帮助您快速熟悉 OneForAll!
安装要求
OneForAll基于Python3.8.0开发测试,请使用高于Python3.8.0的稳定发布版本,其他版本可能有问题(Windows平台必须使用3.8.0及以上)安装Python环境以供参考。运行以下命令检查 Python 和 pip3 版本:
python -V
pip3 -V
如果看到如下类似的输出,说明Python环境没有问题:
Python 3.8.0
pip 19.2.2 from C:\Users\shmilylty\AppData\Roaming\Python\Python38\site-packages\pip (python 3.8)
✔安装步骤(git版)
下载
由于项目正在开发中,会不断更新迭代。下载的时候用git clone克隆最新的代码仓库,也方便后续的更新。不建议从Release下载,因为Release里面的版本更新慢,更新不方便。这个项目已经被我在 Gitee 上镜像了一份。国内推荐使用Gitee克隆更快:
git clone https://gitee.com/shmilylty/OneForAll.git
或者:
git clone https://github.com/shmilylty/OneForAll.git
安装
您可以通过 pip3 安装 OneForAll 的依赖项。下面是Windows系统下使用pip3安装依赖的例子: 注意:如果你的Python3安装在系统的Program Files目录下,如:C:\Program Files\Python38,那么请使用管理员运行命令提示符cmd作为身份执行以下命令!
cd OneForAll/
python -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/
python oneforall.py --help
其他系统平台请参考依赖安装。如果在安装过程中发现依赖库编译失败,可以参考 Troubleshooting.md 解决方案。如果还没有解决,请加群反馈。
更新
❗注意:如果之前已经克隆过项目,请将修改后的文件备份到项目外的地方(如config.py),然后执行如下命令更新项目:
git fetch --all
git reset --hard origin/master
git pull
✔安装步骤(docker版)
docker pull shmilylty/oneforall
docker run -it --rm -v ~/results:/OneForAll/results oneforall
结果会输出到本地目录~/results
✨使用演示
如果您通过 pip3 安装依赖项,请使用以下命令运行示例:
python3 oneforall.py --target example.com run
如果您通过 pipenv 安装了依赖项,请使用以下命令运行示例:
pipenv run python oneforall.py --target example.com run
结果说明
我们以 python3 oneforall.py --target run 命令为例。正常执行默认参数后,OneForAll会在results目录下生成相应的结果:
.csv是各个主域下子域的采集结果。
all_subdomain_result_1583034493.csv是OneForAll每次运行时采集的子域汇总结果,包括.csv,方便批量采集场景下获取所有结果。
result.sqlite3 是 SQLite3 结果数据库,存储每次运行 OneForAll 时采集的子域。数据库结构如下:
其中,类似于example_com_origin_result的表存储了各个模块的初始子域采集结果。
其中,类似于example_com_resolve_result的表存储了子域解析的结果。
其中,类似于example_com_last_result的表存储了最后一次子域采集的结果(需要采集两次以上才能生成)。
其中,类似于example_com_now_result的表存储了当前子域的采集结果。一般来说,关注这张表就足够了。
使用帮助
命令行参数只提供了一些常用的参数。更详细的参数配置请参考config.py。如果您认为某些参数在命令界面中经常使用或缺少参数,非常欢迎反馈。由于众所周知的原因,如果您想使用一些被围墙的集合接口,请到 config.py 中配置代理。部分采集模块需要提供API(大部分可以通过注册账号免费获得)。如果您需要使用它们,请到 api.py 配置 API。信息,如果你不使用它,请忽略错误信息。(详细模块请阅读采集模块说明)
OneForAll 命令行界面基于 Fire。有关 Fire 的更高级使用方法,请参阅使用 Fire CLI。
oneforall.py 是主程序入口,oneforall.py 可以调用brute.py、takerover.py 和dbexport.py 模块。为了方便子域爆破,brute.py是独立生成的,为了方便子域接管风险独立排查。takerover.py,为了方便数据库导出,dbexport.py是独立的,这些模块可以单独运行,接受的参数要丰富一些,如果要单独使用这些模块,请参考帮助
❗注意:当您在使用过程中遇到一些问题或疑问,请先在Issue中搜索答案。您还可以参考常见问题和解答。
oneforall.py 使用帮助
以下帮助信息可能不是最新的,可以使用 python oneforall.py --help 获取最新的帮助信息。
python oneforall.py --help
NAME
oneforall.py - OneForAll帮助信息
SYNOPSIS
oneforall.py COMMAND | --target=TARGET
DESCRIPTION
OneForAll是一款功能强大的子域收集工具
Example:
python3 oneforall.py version
python3 oneforall.py --target example.com run
python3 oneforall.py --target ./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 --format 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配置
参数format可选格式有'rst', 'csv', 'tsv', 'json', 'yaml', 'html',
'jira', 'xls', 'xlsx', 'dbf', 'latex', 'ods'
参数path默认None使用OneForAll结果目录生成路径
ARGUMENTS
TARGET
单个域名或者每行一个域名的文件路径(必需参数)
FLAGS
--brute=BRUTE
使用爆破模块(默认False)
--dns=DNS
DNS解析子域(默认True)
--req=REQ
HTTP请求子域(默认True)
--port=PORT
请求验证子域的端口范围(默认只探测80端口)
--valid=VALID
只导出存活的子域结果(默认False)
--format=FORMAT
结果保存格式(默认csv)
--path=PATH
结果保存路径(默认None)
--takeover=TAKEOVER
检查子域接管(默认False)
目录结构
项目目录结构的描述请参考directory_structure。
子域字典出处注意事项:
开源子域采集工具中高频子域名字典的一部分。相关在线服务提供商发布的最受欢迎的子域列表。互联网相关安全研究人员对全网公共子域的研究成果。互联网相关安全研究人员在证书透明性中提取公共子域的结果。常用业务命名规则:公司或 DevOps 中常用的工具和软件名称。汉语常用词和英语常用词的拼音。上面得到的字典针对排序和脏数据去除处理进行了优化。非常欢迎您贡献一本更好的词典。使用的框架
感谢这些伟大而优秀的 Python 库!
贡献
非常热烈欢迎大家一起改进这个项目!
⌛后续计划
更多细节请阅读 todo.md。
版本控制
该项目使用 SemVer 语言版本格式进行版本管理。您可以在 Releases 中查看可用版本,并且可以检查 changes.md 以了解历史更改。
贡献者
您可以在contributors.md 中查看参与该项目的所有开发人员。
☕ 欣赏
如果你认为这个项目对你有帮助,你可以奖励你一杯咖啡作为鼓励:)