一款功能强大的子域收集工具

功能强大的子域收集工具:OneForAll

简介

OneForAll 收集能力强大、支持子域爆破、支持子域验证、支持子域爬取、支持子域置换、支持子域接管、处理功能强大、速度极快、体验良好,是一款集百家之长,功能强大的全面快速子域收集工具。

picture.image

使用

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)`
 


      

安装步骤(git 版)

  1. 下载

由于该项目处于开发中,会不断进行更新迭代,下载时请使用git clone克隆最新代码仓库,国内推荐使用码云进行克隆比较快:


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


      

或者:


        
 `git clone https://github.com/shmilylty/OneForAll.git` 
 


      
  1. 安装

通过pip3安装OneForAll的依赖


        
  `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`
 


      
  1. 更新

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


        
  `git stash # 暂存本地的修改`
  `git fetch --all # 拉取项目更新`
  `git pull # 下载覆盖`
  `git stash pop # 释放本地修改`
 


      

安装步骤(docker 版)

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


        
  `config`
  `├── api.py`
  `├── log.py`
  `└── setting.py`
 


      

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


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


      

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

使用演示

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


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


      

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

picture.image

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

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

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

picture.image

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

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

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

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

OneForAll 作为一个命令行工具,它的所有参数如下:


        
  `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)`
 


      

工具获取方式:

https://github.com/shmilylty/OneForAll

如有侵权,请联系删除

推荐阅读

实战|记一次奇妙的文件上传getshell

「 超详细 | 分享 」手把手教你如何进行内网渗透

神兵利器 | siusiu-渗透工具管理套件

一款功能全面的XSS扫描器

实战 | 一次利用哥斯拉马绕过宝塔waf

BurpCrypto: 万能网站密码爆破测试工具

快速筛选真实IP并整理为C段 -- 棱眼

自动探测端口顺便爆破工具t14m4t

渗透工具|无状态子域名爆破工具(1秒扫160万个子域)

查看更多精彩内容,还请关注 橘猫学安全:

每日坚持学习与分享,觉得文章对你有帮助可在底部给点个“ 再看”

0
0
0
0
评论
未登录
暂无评论