OneForAll使用教程
本文最后更新于526 天前,其中的信息可能已经过时

项目简介

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

  • 不够强大,子域收集的接口不够多,不能做到对批量子域自动收集,没有自动子域解析,验证,FUZZ以及信息拓展等功能。
  • 不够友好,固然命令行模块比较方便,但是当可选的参数很多,要实现的操作复杂,用命令行模式就有点不够友好,如果有交互良好,高可操作的前端那么使用体验就会好很多。
  • 缺少维护,很多工具几年没有更新过一次,issues和PR是啥,不存在的。
  • 效率问题,没有利用多进程,多线程以及异步协程技术,速度较慢。

为了解决以上痛点,此项目应用而生,正如其名,我希望OneForAll是一款集百家之长,功能强大的全面快速子域收集终极神器🔨。

功能特性

  • 收集能力强大,详细模块请阅读收集模块说明
    1. 利用证书透明度收集子域(目前有6个模块:censys_apicertspottercrtshentrustgooglespyse_api
    2. 常规检查收集子域(目前有4个模块:域传送漏洞利用axfr,检查跨域策略文件cdx,检查HTTPS证书cert,检查内容安全策略csp,检查robots文件robots,检查sitemap文件sitemap,利用NSEC记录遍历DNS域dnssec,后续会添加NSEC3记录等模块)
    3. 利用网上爬虫档案收集子域(目前有2个模块:archivecrawlcommoncrawl,此模块还在调试,该模块还有待添加和完善)
    4. 利用DNS数据集收集子域(目前有24个模块:bevigil_apibinaryedge_apibufferovercebaiduchinazchinaz_apicircl_apicloudflarednsdb_apidnsdumpsterhackertargetip138ipv4info_apinetcraftpassivedns_apiptrarchiveqianxunrapiddnsriddlerrobtexsecuritytrails_apisitedossierthreatcrowdwzpcximcx
    5. 利用DNS查询收集子域(目前有5个模块:通过枚举常见的SRV记录并做查询来收集子域srv,以及通过查询域名的DNS记录中的MX,NS,SOA,TXT记录来收集子域)
    6. 利用威胁情报平台数据收集子域(目前有6个模块:alienvaultriskiq_apithreatbook_apithreatminervirustotalvirustotal_api该模块还有待添加和完善)
    7. 利用搜索引擎发现子域(目前有18个模块:askbaidubingbing_apiduckduckgoexaleadfofa_apigiteegithubgithub_apigooglegoogle_apishodan_apisosogouyahooyandexzoomeye_api),在搜索模块中除特殊搜索引擎,通用的搜索引擎都支持自动排除搜索,全量搜索,递归搜索。
  • 支持子域爆破,该模块有常规的字典爆破,也有自定义的fuzz模式,支持批量爆破和递归爆破,自动判断泛解析并处理。
  • 支持子域验证,默认开启子域验证,自动解析子域DNS,自动请求子域获取title和banner,并综合判断子域存活情况。
  • 支持子域爬取,根据已有的子域,请求子域响应体以及响应体里的JS,从中再次发现新的子域。
  • 支持子域置换,根据已有的子域,使用子域替换技术再次发现新的子域。
  • 支持子域接管,默认开启子域接管风险检查,支持子域自动接管(目前只有Github,有待完善),支持批量检查。
  • 处理功能强大,发现的子域结果支持自动去除,自动DNS解析,HTTP请求探测,自动筛选出有效子域,拓展子域的Banner信息,最终支持的导出格式有txtcsvjson
  • 速度极快收集模块使用多线程调用,爆破模块使用massdns,DNS解析速度每秒可解析350000以上个域名,子域验证中DNS解析和HTTP请求使用异步多协程,多线程检查子域接管风险。
  • 体验良好,各模块都有进度条,异步保存各模块结果。

使用教程

可以使用python oneforall.py --help获取最新的帮助信息。

python oneforall.py --help

使用命令

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)

工具安装

Github地址:https://github.com/shmilylty/OneForAll

安装python依赖库

pip install -r requirements.txt

简单使用

python oneforall.py --target example.com run

结果说明

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

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

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

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

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

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

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

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

如果觉得本文对您有所帮助,可以支持下博主,一分也是缘😊
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇