OneForALL

概述

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

下载地址:https://github.com/shmilylty/OneForAll

1.收集能力强大。
①利用证书透明度收集子域(目前有6个模块:censys_api、certspotter、crtsh、entrust、google、spyse_api)
②常规检查收集子域(目前有4个模块:域传送漏洞利用axfr、检查跨域策略文件cdx、检查HTTPS证书cert、检查内容安全策略csp、检查robots文件robots、检查sitemap文件sitemap、利用NSEC记录遍历DNS域dnssec、NSEC3记录等模块)
③利用网上爬虫档案收集子域(目前有2个模块:archivecrawl、commoncrawl)
④利用DNS数据集收集子域(目前有23个模块:binaryedge_api、 bufferover,、cebaidu、 chinaz、 chinaz_api、 circl_api、dnsdb_api,、dnsdumpster, hackertarget、 ip138、ipv4info_api、netcraft、passivedns_api、 ptrarchive、qianxun、rapiddns、riddler, robtex、 securitytrails_api、 sitedossier、 threatcrowd、wzpc、ximcx)
⑤利用DNS查询收集子域(目前有5个模块:通过枚举常见的SRV记录并做查询来收集子域srv、以及通过查询域名的DNS记录中的MX、NS、SOA、TXT记录来收集子域)
⑥利用威胁情报平台数据收集子域(目前有6个模块:alienvault、riskiq_api、threatbook_api、threatminer、virustotal、virustotal_api)
⑦利用搜索引擎发现子域(目前有18个模块:ask、 baidu、 bing、 bing_api、 duckduckgo、 exalead、 fofa_api、 gitee、github、 github_api、 google、 google_api、 shodan_api、 so、 sogou、 yahoo、 yandex、 zoomeye_api),在搜索模块中除特殊搜索引擎,通用的搜索引擎都支持自动排除搜索、全量搜索、递归搜索。
2.支持子域爆破,该模块有常规的字典爆破,也有自定义的fuzz模式,支持批量爆破和递归爆破,自动判断泛解析并处理。
3.支持子域验证,默认开启子域验证,自动解析子域DNS,自动请求子域获取title和banner,并综合判断子域存活情况。
4.支持子域接管,默认开启子域接管风险检查,支持子域自动接管(目前只有Github,有待完善),支持批量检查。
5.处理功能强大,发现的子域结果支持自动去除,自动DNS解析,HTTP请求探测,自动筛选出有效子域,拓展子域的Banner信息,最终支持的导出格式有rst、 csv,、 tsv、 json、 yaml、 html、 xls、 xlsx、 dbf、 latex、 ods。
6.速度极快,收集某块使用多线程调用,爆破模块使用massdns,默认配置下速度最少能达到10000pps,子域验证中DNS解析和HTTP请求使用异步多协程,多线程检查子域接管风险。
7.体验良好,各模块都有进度条,异步保存各模块结果。

用法

SYNOPSIS

1
oneforall.py --target=TARGET <flags>

DESCRIPTION
Version: 0.0.4
Project: https://git.io/fjHT1

1
2
3
4
5
6
7
8
python3 oneforall.py --target Example Domain run
python3 oneforall.py --target ./domains.txt run
python3 oneforall.py --target example.com --brute True run
python3 oneforall.py --target Example Domain --verify False run
python3 oneforall.py --target Example Domain --valid None 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 --show True run
Note:  
    参数valid可选值1,0,None分别表示导出有效,无效,全部子域  
    参数verify为True会尝试解析和请求子域并根据结果给子域有效性打上标签  
    参数port可选值有'small', 'medium', 'large', 'xlarge',详见config.py配置  
    参数format可选格式有'txt', 'rst', 'csv', 'tsv', 'json', 'yaml', 'html',  
                        'jira', 'xls', 'xlsx', 'dbf', 'latex', 'ods'  
    参数path为None会根据format参数和域名名称在项目结果目录生成相应文件

ARGUMENTS
TARGET
单个域名或者每行一个域名的文件路径(必需参数)

FLAGS
–brute=BRUTE
使用爆破模块(默认False)
–verify=VERIFY
验证子域有效性(默认True)
–port=PORT
请求验证的端口范围(默认medium)
–valid=VALID
导出子域的有效性(默认1)
–path=PATH
导出路径(默认None)
–format=FORMAT
导出格式(默认xlsx)
–show=SHOW
终端显示导出数据(默认False)