1. 杨CC有话说

介绍: 一个老牌并且非常强大的子域名收集工具并且开源.

2. 安装要求

  • python3.6 及以上
  • pip 19.2.0 及以上
  • git (和docker二选一)
  • docker (和git二选一)

3. 下载安装

3.1 通过git 安装

  • 注意:需要准备git命令
1
2
3
git clone https://github.com/shmilylty/OneForAll.git
# 如果上面这个下载太慢,就用下面这个
git clone https://gitee.com/shmilylty/OneForAll.git
  • 安装

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

1
2
3
4
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
  • 更新
    执行以下命令更新项目(可保存对/config/setting.py和/config/api.py的修改):
1
2
3
4
git stash        # 暂存本地的修改
git fetch --all # 拉取项目更新
git pull # 下载覆盖
git stash pop # 释放本地修改

3.2 docker 安装

  • 首先下载并编辑配置文件,添加自己的api和个性化设置,并保留原始文件结构
1
2
3
4
5
6
config
├── api.py
├── default.py
├── __init__.py
├── log.py
└── setting.py
  • 拉取镜像并执行,其中~/.config替换为你自己配置文件所在文件夹的路径
1
2
docker pull shmilylty/oneforall
docker run -it --rm -v ~/results:/OneForAll/results -v ~/.config:/OneForAll/config shmilylty/oneforall --target example.com run

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

4. 使用

  • 使用git下载的使用教程
1
2
python3 oneforall.py --target example.com run
python3 oneforall.py --targets ./example.txt run
  • 以下帮助信息可能不是最新的,你可以使用python oneforall.py --help获取最新的帮助信息。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
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)

5. 项目简介-OneForAll官方github项目简介

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

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

  • 不够强大,子域收集的接口不够多,不能做到对批量子域自动收集,没有自动子域解析,验证,FUZZ以及信息拓展等功能。

  • 不够友好,固然命令行模块比较方便,但是当可选的参数很多,要实现的操作复杂,用命令行模式就有点不够友好,如果有交互良好,高可操作的前端那么使用体验就会好很多。

  • 缺少维护,很多工具几年没有更新过一次,issues和PR是啥,不存在的。

  • 效率问题,没有利用多进程,多线程以及异步协程技术,速度较慢。
    为了解决以上痛点,此项目应用而生,正如其名,我希望OneForAll是一款集百家之长,功能强大的全面快速子域收集终极神器🔨。

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

6. 结束语

  • 一个老牌且强大的子域名信息收集工具,非常牛.
  • CTRl+D 将本网站:ycc77.com添加到书签栏哦~
  • 需要资源,记得将ycc77.cn 添加到书签栏哦~
  • QQ交流群:660264846(最新开展免杀担保等业务)
  • B站: 疯狂的杨CC
  • 抖音: 疯狂的杨CC
  • 快手: 疯狂的杨CC
  • 公众号:SGY安全
  • 91: 疯狂的杨CC
  • p站: 疯狂的杨CC