更新和调整说明文档

This commit is contained in:
Jing Ling
2020-05-11 22:18:59 +08:00
parent 26fe3e4e4d
commit f08f60d9b7
3 changed files with 49 additions and 63 deletions
+6 -10
View File
@@ -7,14 +7,12 @@
[![python](https://img.shields.io/badge/python-3.8-blue)](https://github.com/shmilylty/OneForAll/tree/master/) [![python](https://img.shields.io/badge/python-3.8-blue)](https://github.com/shmilylty/OneForAll/tree/master/)
[![python](https://img.shields.io/badge/release-v0.2.0-brightgreen)](https://github.com/shmilylty/OneForAll/releases) [![python](https://img.shields.io/badge/release-v0.2.0-brightgreen)](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)
![Example](./docs/usage_example.svg) ![Example](./docs/usage_example.svg)
## 🎉项目简介 ## 🎉项目简介
项目主页:[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可选值10None分别表示导出有效,无效,全部子域 参数alive可选值TrueFalse分别表示导出存活,全部子域结果
参数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)
``` ```
## 🌲目录结构 ## 🌲目录结构
+43 -53
View File
@@ -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)
![Example](./docs/usage_example.svg) ![Example](../usage_example.svg)
## 🎉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
``` ```
![Example](./docs/usage_example.svg) ![Example](../usage_example.svg)
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:
![Result](./images/Result.png) ![Result](../../images/Result.png)
`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:
![Database](./images/Database.png) ![Database](../../images/Database.png)
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