
50以上の収集モジュール、DNSブルートフォース、パッシブDNS分析、証明書透過性、検索エンジンスクラピング、およびサブドメイン乗っ取り検出を備えた、偵察用のマルチソースサブドメイン列挙ツール。
👊OneForAllは強力なサブドメイン収集ツールです 📝英語ドキュメント
📢 このドキュメントを必ずお読みください。OneForAllを素早く使いこなす助けになります!
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 cloneで最新のコードリポジトリをクローンしてください。これにより後の更新も容易になります。Releasesからのダウンロードは推奨しません。Releasesのバージョン更新は遅く、更新も不便だからです。このプロジェクトは码云(Gitee)にミラーされています。国内の方はGiteeからクローンする方が速いです:
git clone https://gitee.com/shmilylty/OneForAll.git
または:
git clone https://github.com/shmilylty/OneForAll.git
pip3を使ってOneForAllの依存関係をインストールできます。以下はWindowsシステムでpip3を使って依存関係をインストールする例です:注意:Python3がシステムのProgram Filesディレクトリ(例:C:\Program Files\Python36)にインストールされている場合は、管理者としてコマンドプロンプト(cmd)を実行して以下のコマンドを実行してください!
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
他のプラットフォームについては依存関係のインストールを参照してください。依存関係のインストール中に特定のライブラリのコンパイルに失敗した場合は、よくある質問と回答.mdの解決方法を参照してください。それでも解決しない場合は、グループに参加してフィードバックしてください。
以下のコマンドを実行してプロジェクトを更新します(/config/setting.pyとへの変更は保持されます):
まず設定ファイルをダウンロードして編集し、自分自身のapiと個別設定を追加し、元のファイル構造を保持します。
config
├── api.py
├── default.py
├── __init__.py
├── log.py
└── setting.py
イメージをプルして実行します。~/.configは自分の設定ファイルが置かれているフォルダのパスに置き換えてください。
docker pull shmilylty/oneforall
docker run -it --rm -v ~/results:/OneForAll/results -v ~/.config:/OneForAll/config shmilylty/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ディレクトリに対応する結果が生成されます:

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のようなテーブルには前回のサブドメイン収集結果が保存されます(2回以上収集すると生成されます)。
example_com_now_resultのようなテーブルには現在のサブドメイン収集結果が保存されます。通常はこのテーブルを確認すれば十分です。
コマンドライン引数は一般的なものだけを提供しています。より詳細なパラメータ設定はsetting.pyを参照してください。コマンドラインでよく使うパラメータが不足しているなどの問題があれば、フィードバックをお願いします。周知の理由により、一部の収集インターフェースがブロックされている場合、setting.pyでプロキシを設定してください。一部の収集モジュールではAPIの提供が必要です(ほとんどはアカウント登録で無料で取得できます)。使用する場合はapi.pyでAPI情報を設定してください。使用しない場合は関連するエラーを無視してください。(詳細なモジュールは収集モジュール説明を参照)
OneForAllのコマンドラインインターフェースはFireに基づいています。Fireのより高度な使い方についてはFire CLIの使用を参照してください。
oneforall.pyがメインプログラムのエントリです。oneforall.pyはbrute.py、takerover.py、dbexport.pyなどのモジュールを呼び出せます。サブドメインのブルートフォースを容易にするためにbrute.pyが独立しており、サブドメインの乗っ取りリスクチェックのためにtakerover.pyが独立しており、データベースエクスポートのためにdbexport.pyが独立しています。これらのモジュールは個別に実行でき、より多くのパラメータを受け付けます。個別に使用する場合は使用ヘルプを参照してください。
❗注意:使用中に問題や疑問が生じた場合は、まずIssuesで検索して答えを探し、よくある質問と回答も参照してください。
oneforall.pyの使い方
以下のヘルプ情報は最新ではない可能性があります。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)
プロジェクトURL:https://github.com/shmilylty/OneForAll
ペネトレーションテストにおける情報収集の重要性は言うまでもありません。サブドメイン収集は情報収集に不可欠で非常に重要な要素です。現在、インターネット上には多くのサブドメイン収集ツールがオープンソースとして公開されていますが、以下のような問題が常に存在しています:
これらの問題点を解決するために、このプロジェクトが生まれました。その名の通り、OneForAllがさまざまな長所を集めた、強力で包括的かつ高速なサブドメイン収集の究極のツールであることを願っています🔨。
現在OneForAllは開発中であり、多くの問題や改善点があることは間違いありません。ぜひIssuesやPRを提出してください。気に入ったらスター✨をください。現在、OneForAllの交流とフィードバックのためのQQグループ👨👨👦👦があります:824414244(グループ参加時の認証:情報収集)。
censys_api、certspotter、crtsh、entrust、google、spyse_api)axfr、クロスドメインポリシーファイルcdxのチェック、HTTPS証明書certのチェック、コンテンツセキュリティポリシーcspのチェック、robotsファイルrobotsのチェック、sitemapファイルsitemapのチェック、NSECレコードによるDNSドメイン走査dnssec、今後NSEC3レコードなどのモジュールを追加予定)archivecrawl、。このモジュールはまだテスト中で、追加と改善の余地あり)他にも素晴らしいアイデアがあればぜひ教えてください!😎
詳細はディレクトリ構造の説明を参照してください。
このプロジェクトのdocsディレクトリには、サブドメイン辞書の出典説明やワイルドカード解決判断フローなどのヘルプと説明が用意されています。
これらの素晴らしいPythonライブラリに感謝します!
このプロジェクトはSemVer形式を使用してバージョン管理を行っています。過去の変更履歴は変更履歴説明を参照してください。
詳細は今後の開発計画を参照してください。
このプロジェクトを一緒に改善してくださる皆様を大歓迎します!
全コントリビューターとその貢献はコントリビューター用ドキュメントで確認できます。OneForAllをより強力で使いやすくしてくれたことに感謝します。
このプロジェクトが役に立ったと感じたなら、コーヒー1杯分の寄付で応援できます:)

このプロジェクトはGPL-3.0ライセンスの下で提供されています。詳細はLICENSEを参照してください。
オープンソースのサブドメイン収集プロジェクトに感謝します!
A-Teamの皆様の熱心で無私な質問回答に感謝します!
このツールは、十分な合法的な許可を得た企業のセキュリティ構築においてのみ使用できます。このツールを使用する際、お客様はすべての行動が現地の法令に準拠していることを確認する必要があります。このツールの使用中に違法行為があった場合、お客様はすべての結果を自己負担するものとし、本ツールのすべての開発者およびコントリビューターは一切の法的責任および連帯責任を負いません。本契約のすべての条項を十分に読み、完全に理解し、同意しない限り、本ツールをインストールおよび使用しないでください。お客様の使用行為、またはその他の明示的もしくは黙示的な方法で本契約を受け入れた場合、本契約を読み、その拘束に同意したものとみなされます。
/config/api.pygit stash # ローカルの変更を一時保存
git fetch --all # プロジェクトの更新を取得
git pull # ダウンロードして上書き
git stash pop # ローカルの変更を復元
詳細はフィールド説明を参照してください。
commoncrawlbevigil_api, binaryedge_api, bufferover, cebaidu, chinaz, chinaz_api, circl_api, cloudflare, dnsdb_api, dnsdumpster, hackertarget, ip138, ipv4info_api, netcraft, passivedns_api, ptrarchive, qianxun, rapiddns, riddler, robtex, securitytrails_api, sitedossier, threatcrowd, wzpc, ximcx)srv、およびMX、NS、SOA、TXTレコードのDNSクエリによる収集)alienvault、riskiq_api、threatbook_api、threatminer、virustotal、virustotal_api。このモジュールはまだ追加・改善の余地あり)ask, baidu, bing, bing_api, duckduckgo, exalead, fofa_api, gitee, github, github_api, google, google_api, shodan_api, so, sogou, yahoo, yandex, zoomeye_api)。検索モジュールでは、特殊な検索エンジンを除き、一般的な検索エンジンは自動除外検索、全量検索、再帰検索をサポートしています。txt、csv、jsonです。