mirror of
https://github.com/shmilylty/OneForAll.git
synced 2026-08-26 04:47:48 +08:00
更新和调整说明文档
This commit is contained in:
@@ -7,14 +7,12 @@
|
|||||||
[](https://github.com/shmilylty/OneForAll/tree/master/)
|
[](https://github.com/shmilylty/OneForAll/tree/master/)
|
||||||
[](https://github.com/shmilylty/OneForAll/releases)
|
[](https://github.com/shmilylty/OneForAll/releases)
|
||||||
|
|
||||||
👊**OneForAll是一款功能强大的子域收集工具** 📝[English Document](https://github.com/shmilylty/OneForAll/tree/master/README.en.md)
|
👊**OneForAll是一款功能强大的子域收集工具** 📝[English Document](https://github.com/shmilylty/OneForAll/tree/master/docs/en-us/README.md)
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
## 🎉项目简介
|
## 🎉项目简介
|
||||||
|
|
||||||
项目主页:[https://shmilylty.github.io/OneForAll/](https://shmilylty.github.io/OneForAll/)
|
|
||||||
|
|
||||||
项目地址:[https://github.com/shmilylty/OneForAll](https://github.com/shmilylty/OneForAll)
|
项目地址:[https://github.com/shmilylty/OneForAll](https://github.com/shmilylty/OneForAll)
|
||||||
|
|
||||||
在渗透测试中信息收集的重要性不言而喻,子域收集是信息收集中必不可少且非常重要的一环,目前网上也开源了许多子域收集的工具,但是总是存在以下部分问题:
|
在渗透测试中信息收集的重要性不言而喻,子域收集是信息收集中必不可少且非常重要的一环,目前网上也开源了许多子域收集的工具,但是总是存在以下部分问题:
|
||||||
@@ -43,7 +41,7 @@
|
|||||||
* **支持子域接管**,默认开启子域接管风险检查,支持子域自动接管(目前只有Github,有待完善),支持批量检查。
|
* **支持子域接管**,默认开启子域接管风险检查,支持子域自动接管(目前只有Github,有待完善),支持批量检查。
|
||||||
* **处理功能强大**,发现的子域结果支持自动去除,自动DNS解析,HTTP请求探测,自动筛选出有效子域,拓展子域的Banner信息,最终支持的导出格式有`rst`, `csv`, `tsv`, `json`, `yaml`, `html`, `xls`, `xlsx`, `dbf`, `latex`, `ods`。
|
* **处理功能强大**,发现的子域结果支持自动去除,自动DNS解析,HTTP请求探测,自动筛选出有效子域,拓展子域的Banner信息,最终支持的导出格式有`rst`, `csv`, `tsv`, `json`, `yaml`, `html`, `xls`, `xlsx`, `dbf`, `latex`, `ods`。
|
||||||
* **速度极快**,[收集模块](https://github.com/shmilylty/OneForAll/tree/master/collect.py)使用多线程调用,[爆破模块](https://github.com/shmilylty/OneForAll/tree/master/brute.py)使用[massdns](https://github.com/blechschmidt/massdns),默认配置下速度最少能达到10000pps,子域验证中DNS解析和HTTP请求使用异步多协程,多线程检查[子域接管](https://github.com/shmilylty/OneForAll/tree/master/takeover.py)风险。
|
* **速度极快**,[收集模块](https://github.com/shmilylty/OneForAll/tree/master/collect.py)使用多线程调用,[爆破模块](https://github.com/shmilylty/OneForAll/tree/master/brute.py)使用[massdns](https://github.com/blechschmidt/massdns),默认配置下速度最少能达到10000pps,子域验证中DNS解析和HTTP请求使用异步多协程,多线程检查[子域接管](https://github.com/shmilylty/OneForAll/tree/master/takeover.py)风险。
|
||||||
* **体验良好**,日志和终端输出全使用中文,各模块都有进度条,异步保存各模块结果。
|
* **体验良好**,各模块都有进度条,异步保存各模块结果。
|
||||||
|
|
||||||
如果你有其他很棒的想法请务必告诉我!😎
|
如果你有其他很棒的想法请务必告诉我!😎
|
||||||
|
|
||||||
@@ -187,7 +185,7 @@ DESCRIPTION
|
|||||||
python3 oneforall.py --target example.com --show True run
|
python3 oneforall.py --target example.com --show True run
|
||||||
|
|
||||||
Note:
|
Note:
|
||||||
参数valid可选值1,0,None分别表示导出有效,无效,全部子域
|
参数alive可选值True,False分别表示导出存活,全部子域结果
|
||||||
参数port可选值有'default', 'small', 'large', 详见config.py配置
|
参数port可选值有'default', 'small', 'large', 详见config.py配置
|
||||||
参数format可选格式有'rst', 'csv', 'tsv', 'json', 'yaml', 'html',
|
参数format可选格式有'rst', 'csv', 'tsv', 'json', 'yaml', 'html',
|
||||||
'jira', 'xls', 'xlsx', 'dbf', 'latex', 'ods'
|
'jira', 'xls', 'xlsx', 'dbf', 'latex', 'ods'
|
||||||
@@ -207,15 +205,13 @@ FLAGS
|
|||||||
--port=PORT
|
--port=PORT
|
||||||
请求验证子域的端口范围(默认只探测80端口)
|
请求验证子域的端口范围(默认只探测80端口)
|
||||||
--valid=VALID
|
--valid=VALID
|
||||||
导出子域的有效性(默认None)
|
只导出存活的子域结果(默认False)
|
||||||
--format=FORMAT
|
--format=FORMAT
|
||||||
导出文件格式(默认csv)
|
结果保存格式(默认csv)
|
||||||
--path=PATH
|
--path=PATH
|
||||||
导出文件路径(默认None)
|
结果保存路径(默认None)
|
||||||
--takeover=TAKEOVER
|
--takeover=TAKEOVER
|
||||||
检查子域接管(默认False)
|
检查子域接管(默认False)
|
||||||
--show=SHOW
|
|
||||||
终端显示导出数据(默认False)
|
|
||||||
```
|
```
|
||||||
|
|
||||||
## 🌲目录结构
|
## 🌲目录结构
|
||||||
|
|||||||
@@ -9,12 +9,10 @@
|
|||||||
|
|
||||||
👊**OneForAll is a powerful subdomain collection tool** 📝[中文文档](https://github.com/shmilylty/OneForAll/tree/master/README.md)
|
👊**OneForAll is a powerful subdomain collection tool** 📝[中文文档](https://github.com/shmilylty/OneForAll/tree/master/README.md)
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
## 🎉Project profile
|
## 🎉Project profile
|
||||||
|
|
||||||
Project home:[https://shmilylty.github.io/OneForAll/](https://shmilylty.github.io/OneForAll/)
|
|
||||||
|
|
||||||
Project address :[https://github.com/shmilylty/OneForAll](https://github.com/shmilylty/OneForAll)
|
Project address :[https://github.com/shmilylty/OneForAll](https://github.com/shmilylty/OneForAll)
|
||||||
|
|
||||||
The importance of information collection in penetration testing is self-evident. Subdomain collection is an essential and very important part of information collection. At present, there are many open source tools for subdomain collection on the Internet, but there are always some of the following problems:
|
The importance of information collection in penetration testing is self-evident. Subdomain collection is an essential and very important part of information collection. At present, there are many open source tools for subdomain collection on the Internet, but there are always some of the following problems:
|
||||||
@@ -121,7 +119,7 @@ output will be saved in`~/results`
|
|||||||
python3 oneforall.py --target example.com run
|
python3 oneforall.py --target example.com run
|
||||||
```
|
```
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
2. If you install dependencies through pipenv, run the example using the following command:
|
2. If you install dependencies through pipenv, run the example using the following command:
|
||||||
```bash
|
```bash
|
||||||
@@ -132,7 +130,7 @@ pipenv run python oneforall.py --target example.com run
|
|||||||
|
|
||||||
Let's take the command `python3 oneforall.py-- target example.com run` as an example. After the default parameters are executed normally, OneForAll will generate the corresponding results in the results directory:
|
Let's take the command `python3 oneforall.py-- target example.com run` as an example. After the default parameters are executed normally, OneForAll will generate the corresponding results in the results directory:
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
`example.com.csv` is the result of subdomain collection under each primary domain.
|
`example.com.csv` is the result of subdomain collection under each primary domain.
|
||||||
|
|
||||||
@@ -140,7 +138,7 @@ Let's take the command `python3 oneforall.py-- target example.com run` as an exa
|
|||||||
|
|
||||||
`result.sqlite3` is the SQLite3 result database that stores the sub-domain collected by OneForAll each time you run SQLite3. The database structure is shown below:
|
`result.sqlite3` is the SQLite3 result database that stores the sub-domain collected by OneForAll each time you run SQLite3. The database structure is shown below:
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
A table like `example_com_origin_result` stores the initial subdomain collection results of each module.
|
A table like `example_com_origin_result` stores the initial subdomain collection results of each module.
|
||||||
|
|
||||||
@@ -156,7 +154,7 @@ The command line parameters only provide some common parameters. For more detail
|
|||||||
|
|
||||||
The OneForAll command line interface is based on [Fire](https://github.com/google/python-fire/). For more advanced usage of Fire, please refer to [using the Fire CLI](https://github.com/google/Python-fire/blob/master/docs/using-cli.md), if you have any doubts during the use, please feel free to give me feedback.
|
The OneForAll command line interface is based on [Fire](https://github.com/google/python-fire/). For more advanced usage of Fire, please refer to [using the Fire CLI](https://github.com/google/Python-fire/blob/master/docs/using-cli.md), if you have any doubts during the use, please feel free to give me feedback.
|
||||||
|
|
||||||
[oneforall.py](https://github.com/shmilylty/OneForAll/tree/master/oneforall.py) is the main program entry, and oneforall.py can call [brute.py](https://github.com/shmilylty/OneForAll/tree/master/brute.py), [takerover.py](https://github.com/shmilylty/OneForAll/tree/master/takerover.py) and [dbexport.py ](https://github.com/shmilylty/OneForAll/tree/master/dbexport.py) and other modules, in order to facilitate the sub-field blasting, brute.py is isolated independently, in order to facilitate the subdomain takeover risk check independently takeover.py, in order to facilitate the database export independently dbexport.py, these modules can be run separately, and the parameters accepted are more abundant, if you want to use these modules separately, please refer to the [usage help](https://github.com/shmilylty/OneForAll/tree/master/docs/usage_help.en.md).
|
[oneforall.py](https://github.com/shmilylty/OneForAll/tree/master/oneforall.py) is the main program entry, and oneforall.py can call [brute.py](https://github.com/shmilylty/OneForAll/tree/master/brute.py), [takerover.py](https://github.com/shmilylty/OneForAll/tree/master/takerover.py) and [dbexport.py ](https://github.com/shmilylty/OneForAll/tree/master/dbexport.py) and other modules, in order to facilitate the sub-field blasting, brute.py is isolated independently, in order to facilitate the subdomain takeover risk check independently takeover.py, in order to facilitate the database export independently dbexport.py, these modules can be run separately, and the parameters accepted are more abundant, if you want to use these modules separately, please refer to the [usage help](https://github.com/shmilylty/OneForAll/tree/master/docs/en-us/usage_help.md).
|
||||||
|
|
||||||
❗ Note: When you encounter some problems or doubts during use, please use [Issues](https://github.com/shmilylty/OneForAll/issues) to search for answers. Also see [Q&troubleshooting.md](https://github.com/shmilylty/OneForAll/tree/master/docs/Q&troubleshooting.md).
|
❗ Note: When you encounter some problems or doubts during use, please use [Issues](https://github.com/shmilylty/OneForAll/issues) to search for answers. Also see [Q&troubleshooting.md](https://github.com/shmilylty/OneForAll/tree/master/docs/Q&troubleshooting.md).
|
||||||
|
|
||||||
@@ -169,62 +167,54 @@ python oneforall.py --help
|
|||||||
```
|
```
|
||||||
```bash
|
```bash
|
||||||
NAME
|
NAME
|
||||||
oneforall.py - OneForAll help Information
|
oneforall.py - OneForAll help summary page
|
||||||
|
|
||||||
SYNOPSIS
|
SYNOPSIS
|
||||||
oneforall.py --target=TARGET <flags>
|
oneforall.py COMMAND | --target=TARGET <flags>
|
||||||
|
|
||||||
DESCRIPTION
|
DESCRIPTION
|
||||||
OneForAll is a powerful subdomain collection tool
|
OneForAll is a powerful subdomain collection tool
|
||||||
|
|
||||||
Example:
|
Example:
|
||||||
python3 oneforall.py version
|
python3 oneforall.py version
|
||||||
python3 oneforall.py --target example.com run
|
python3 oneforall.py --target example.com run
|
||||||
python3 oneforall.py --target ./domains.txt run
|
python3 oneforall.py --target ./domains.txt run
|
||||||
python3 oneforall.py --target example.com --valid None run
|
python3 oneforall.py --target example.com --alive False run
|
||||||
python3 oneforall.py --target example.com --brute True 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 --port medium run
|
||||||
python3 oneforall.py --target example.com --format csv 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 --dns False run
|
||||||
python3 oneforall.py --target example.com --req 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 --takeover False run
|
||||||
python3 oneforall.py --target example.com --show True run
|
python3 oneforall.py --target example.com --show True run
|
||||||
|
|
||||||
Note:
|
Note:
|
||||||
Parameter valid optional value 1, 0, none indicates that the export is
|
--alive True/False Only export alive subdomains or not (default False)
|
||||||
valid, invalid, and all subdomains, respectively.
|
--port default/small/large See details in ./config/setting.py(default port 80)
|
||||||
Parameter port have optional values 'default' 'small', 'large',
|
--format rst/csv/tsv/json/yaml/html/jira/xls/xlsx/dbf/latex/ods (result format)
|
||||||
See config.py configuration for details.
|
--path Result directory (default directory is ./results)
|
||||||
Parameter format have optional values 'rst', 'csv', 'tsv', 'json',
|
|
||||||
'yaml', 'html', 'jira', 'xls', 'xlsx', 'dbf', 'latex', 'ods'.
|
|
||||||
If the parameter path is None, the appropriate file is generated in the
|
|
||||||
project result directory based on the format parameter and the domain
|
|
||||||
name.
|
|
||||||
Parameter path default None uses the OneForAll result directory generation path
|
|
||||||
|
|
||||||
ARGUMENTS
|
ARGUMENTS
|
||||||
TARGET
|
TARGET
|
||||||
Single domain name or file path for one domain name per line (required)
|
One domain or File path of one domain per line (required)
|
||||||
|
|
||||||
FLAGS
|
FLAGS
|
||||||
--brute=BRUTE
|
--brute=BRUTE
|
||||||
Use blasting module (default False)
|
Use brute module (default False)
|
||||||
--dns=DNS
|
--dns=DNS
|
||||||
DNS resolve subdomain (default True)
|
Use DNS resolution (default True)
|
||||||
--req=REQ
|
--req=REQ
|
||||||
HTTP request subdomain (default True)
|
HTTP request subdomains (default True)
|
||||||
--port=PORT
|
--port=PORT
|
||||||
Port range for request authentication (default 80 port)
|
The port range request to the subdomains (default port 80)
|
||||||
--valid=VALID
|
--alive=ALIVE
|
||||||
Export validity of subdomains (default None)
|
Only export alive subdomains (default False)
|
||||||
--format=FORMAT
|
--format=FORMAT
|
||||||
Export format (default xls)
|
Result format (default csv)
|
||||||
--path=PATH
|
--path=PATH
|
||||||
Export path (default None)
|
Result directory (default None)
|
||||||
--takeover=TAKEOVER
|
--takeover=TAKEOVER
|
||||||
Check subdomain takeover (default False)
|
Scan subdomain takeover (default False)
|
||||||
--show=SHOW
|
|
||||||
Terminal display exported data (default False)
|
|
||||||
```
|
```
|
||||||
|
|
||||||
## 🌲Directory structure
|
## 🌲Directory structure
|
||||||
Reference in New Issue
Block a user