Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
reconftw — reconFTWは、ターゲットドメインに対して自動偵察を実行するために設計されたツールであり、最適なツール群を実行してスキャンを行い脆弱性を発見します。 | Kitploit
ツール/GitHubGitHub/six2dez/reconftw
OSINT (オープンソースインテリジェンス)偵察脆弱性スキャナーソーシャルエンジニアリング用OSINTポートスキャンDNSおよびサブドメイン列挙スクリプトと自動化情報収集ウェブセキュリティペネトレーションテストクラウドセキュリティサブドメイン列挙
8.0k1.2k518日前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有
メール収集
DNS分析
DNSおよびサブドメイン列挙 第17位
メール収集 第20位
情報収集 第6位
OSINT (オープンソースインテリジェンス) 第20位
ソーシャルエンジニアリング用OSINT 第20位
偵察 第3位
スクリプトと自動化 第1位
サブドメイン列挙 第17位
GitHubsix2dez/reconftw

reconftw

reconFTWは、ターゲットドメインに対して自動偵察を実行するために設計されたツールであり、最適なツール群を実行してスキャンを行い脆弱性を発見します。

リポジトリを見るウェブサイト


reconftw
reconFTW

Release License Closed Issues Discord Telegram Twitter

Docs Bash Script Linux macOS GitHub

GitHub Actions Docker Terraform Ansible Go Python

Buy Me a Coffee GitHub Sponsors PayPal

reconFTW は、セキュリティ研究者やペネトレーションテスター向けに設計された、強力な自動偵察ツールです。サブドメイン列挙、脆弱性スキャン、OSINTなどを実行し、ターゲットに関するインテリジェンス収集のプロセスを効率化します。モジュール設計、豊富な設定オプション、AX Frameworkによる分散スキャン対応を備えたreconFTWは、包括的な結果を効率的に提供するように構築されています。

reconFTWは、パッシブおよびアクティブなサブドメイン発見、Web脆弱性チェック(例:XSS、SSRF、SQLi)、OSINT、ディレクトリファジング、ポートスキャン、スクリーンショット取得など、幅広い技術を活用します。最先端のツールやAPIと統合してカバレッジと精度を最大化し、偵察活動において常に先手を打てるようにします。

主な機能:

  • 包括的なサブドメイン列挙(パッシブ、ブルートフォース、順列、証明書透過性など)
  • XSS、SSRF、SQLi、LFI、SSTIなどの脆弱性スキャン
  • メール、メタデータ、APIリーク、サードパーティの設定ミスに対するOSINT
  • AX Frameworkによる分散スキャンで高速実行
  • 詳細な設定ファイルによるカスタマイズ可能なワークフロー
  • レポート作成と可視化のためのFaradayとの統合
  • Docker、Terraform、Ansibleデプロイメントのサポート

免責事項: 事前の同意なしにターゲットを攻撃するためのreconFTWの使用は違法です。適用されるすべての法律を遵守する責任はユーザーにあります。開発者は、このツールの誤用またはそれによって引き起こされた損害について一切の責任を負いません。責任を持って使用してください。


📔 目次

  • 📔 目次
  • ✨ 機能
    • OSINT
    • サブドメイン
    • ホスト
    • Web分析
    • 脆弱性チェック
    • その他
  • 🏗️ アーキテクチャ
  • 💿 インストール
    • ローカルインストール (PC/VPS/VM)
    • Docker
    • Terraform + Ansible
  • v2ベータ版(Goリライト)の試用
  • ⚙️ 設定
  • 🚀 使用方法
    • ターゲットオプション
    • モードオプション
    • 一般オプション
    • 使用例
  • ☁️ AX Frameworkサポート(旧Axiom)
  • 💻 Faradayサポート
  • 🧠 AI統合
  • 🗂️ データ管理
    • Makefile
    • 手動
  • 🧪 テスト
  • マインドマップ/ワークフロー
  • サンプルビデオ
  • 🤝 貢献方法
  • 🔒 セキュリティ
  • ❓ ヘルプが必要ですか?
  • 💖 このプロジェクトを支援する
  • 🙏 謝辞
  • 📝 変更履歴
  • 🛠️ 開発
  • 📜 ライセンス
  • ⭐ スター履歴

✨ 機能

reconFTWには、偵察を徹底的かつ効率的に行うための機能が満載されています。以下は、スクリプトと設定の最新機能を反映した、その機能の詳細な内訳です。

OSINT

  • ドメイン情報: ドメイン登録詳細のWHOISルックアップ(whois)。
  • メールおよびパスワードリーク: 漏洩したメールと認証情報を検索(emailfinder および LeakSearch)。
  • Microsoft 365/Azureマッピング: Microsoft 365およびAzureテナントを識別(msftrecon)。
  • メタデータ抽出: インデックス化されたOffice文書からメタデータを抽出(metagoofil)。
  • APIリーク: 公開ソース内の露出したAPIを検出(porch-pirate、SwaggerSpy、postleaksNg)。
  • Google Dorking: 機密情報のための自動Google dorkクエリ(dorks_hunter および xnldorker)。
  • GitHub分析: 選択可能なエンジンでGitHub組織のリポジトリとシークレットをスキャン(enumerepo、trufflehog、gitleaks、titus、noseyparker)。
  • GitHub Actions監査(オプション): gato でワークフローアーティファクトとCI/CD露出を監査。
  • サードパーティの設定ミス: 設定ミスのあるサードパーティサービスを識別(misconfig-mapper)。
  • メール衛生: SPF/DMARC設定をレビューし、スプーフィングや配信性の問題をフラグ付け。
  • クラウドストレージ列挙: 露出のため主要プロバイダー間でバケットを調査(cloud_enum)。
  • スプーフィング可能なドメイン: スプーフィングに対して脆弱なドメインをチェック(spoofcheck)。

サブドメイン

  • パッシブ列挙: サブドメイン発見にAPIと公開ソースを使用(subfinder および github-subdomains)。
  • 証明書透過性: 証明書透過性ログを照会(crt)。
  • NOERROR発見: DNS NOERROR応答を持つサブドメインを識別(dnsx、詳細はこちら)。
  • ブルートフォース: カスタマイズ可能なワードリストでDNSブルートフォースを実行(puredns およびカスタムワードリスト)。
  • 順列: AI、正規表現、ツールを使用してサブドメイン順列を生成(単一の順列エンジンとしてのGotator、さらにregulator と subwiz)。
  • Webスクレイピング: パッシブURLソースとライブWebメタデータからサブドメインを抽出(urlfinder、waymore、httpx、csprecon)。
  • DNSレコード: サブドメインのDNSレコードを解決(dnsx)。
  • Google Analytics: Analytics IDを介してサブドメインを識別(AnalyticsRelationships)。
  • TLSハンドシェイク: TLSポートを介してサブドメインを発見(tlsx)。
  • 再帰的検索: 再帰的なパッシブまたはブルートフォース列挙を組み合わせて実行(dsieve)。
  • サブドメインテイクオーバー: 脆弱なサブドメインを検出(nuclei および dnstake)。
  • DNSゾーン転送: 設定ミスのあるDNSゾーン転送をチェック(dig)。
  • : 設定ミスのあるクラウドバケットと露出したストレージ資産を識別( および )。

ホスト

  • IP情報: 地理位置情報とWHOISデータを取得(ipinfo)。
  • CDN検出: CDNの背後にあるIPを識別(cdncheck)。
  • WAF検出: Webアプリケーションファイアウォールを検出(wafw00f)。
  • ポートスキャン: nmap によるアクティブスキャン(オプションでnaabu が先行)および smap によるパッシブスキャン。
  • サービスフィンガープリンティング: nerva で発見されたホスト:ポートペア上の露出サービスをフィンガープリント。
  • サービス脆弱性(オプション): 詳細なポートスキャンプロファイルは、vulners によるCVEマッチングで結果を強化できます。
  • パスワードスプレー: エンジン選択で識別されたサービスに対してパスワードスプレーを試行(brutespray または brutus)。
  • 地理位置情報: IPアドレスを地理的位置にマッピング(ipinfo)。
  • IPv6発見: IPV6_SCAN が有効な場合、発見されたIPv6ターゲットをオプションで列挙およびスキャン。

Web分析

  • Webプロービング: 標準および非標準ポートでライブWebサーバーを検出(httpx)。
  • スクリーンショット: Webページのスクリーンショットをキャプチャ(nuclei)。
  • 仮想ホストファジング: HTTPヘッダーをファジングして仮想ホストを識別(VhostFinder)。
  • CMS検出: コンテンツ管理システムを識別(CMSeeK)。
  • URL抽出: URLをパッシブおよびアクティブに収集(urlfinder、waymore、katana、github-endpoints、JSA)。
  • URLパターン分析: パターンを使用してURLを分類(urless、gf、gf-patterns)。
  • ファビコンテック偵察: ファビコンハッシュからテクノロジーを識別(favirecon)。
  • JavaScript分析: JSファイルからシークレットとエンドポイントを抽出(subjs、JSA、xnLinkFinder、getjswords、mantra、jsluice)。
  • ソースマップ抽出: JavaScriptソースマップから機密データを取得(sourcemapper)。
  • GraphQL検出: nucleiでGraphQLエンドポイントを発見し、オプションで詳細なイントロスペクションを実行(GQLSpection)。
  • パラメータ発見: エンドポイント上の隠しパラメータをブルートフォース(arjun)。

脆弱性チェック

  • CVE: CVEおよび一般的な脆弱性をチェック nuclei
  • Nuclei DAST: 収集されたURLとGF候補に対して nuclei -dast テンプレートを実行し、追加のDASTカバレッジを提供。
  • XSS: クロスサイトスクリプティング脆弱性をテスト(dalfox)。
  • SSL/TLS: SSL/TLSの設定ミスをチェック(testssl)。
  • SSRF: サーバーサイドリクエストフォージェリをテスト(interactsh、ffuf によるパラメータ値、およびオプションの代替プロトコルペイロード)。
  • CRLF: CRLFインジェクションの脆弱性をチェック(crlfuzz)。
  • LFI: ファジングによるローカルファイルインクルージョンをテスト(ffuf)。
  • SSTI: サーバーサイドテンプレートインジェクションを検出(TInjA)。
  • SQLi: SQLインジェクションをテスト(SQLMap および ghauri)。
  • 壊れたリンク: テイクオーバーされやすい可能性のある壊れたリンクと外部参照を識別(second-order)。
  • コマンドインジェクション: コマンドインジェクションの脆弱性をテスト(commix)。
  • HTTPリクエストスマグリング: リクエストスマグリングの脆弱性をチェック(smugglex)。
  • Webキャッシュ: Webキャッシュの脆弱性を識別(Web-Cache-Vulnerability-Scanner および toxicache)。
  • 4XXバイパス: 4XX応答のバイパスを試行(nomore403)。
  • パラメータファジング: 脆弱性のためにURLパラメータをファジング(nuclei)。

その他- マルチスレッド: パフォーマンスを最適化します(Interlace)。

  • カスタムリゾルバ: DNSリゾルバを生成します(dnsvalidator)。
  • Dockerサポート: DockerHubで公式Dockerイメージを提供。
  • AWSデプロイ: TerraformとAnsibleでデプロイします。
  • IP/CIDRサポート: IPレンジとCIDRブロックをスキャンします。
  • スキャン再開: 最後に完了したステップからスキャンを再開します。
  • カスタム出力: 結果をユーザー定義のディレクトリに保存します。
  • 差分モード: 後続のスキャンで新たな発見を強調表示します。
  • スコープフィルタリング: スコープ内・スコープ外リストをサポートします(inscope)。
  • 通知: Slack、Discord、またはTelegramでアラートを送信します(notify)。
  • 結果のZIP圧縮: 結果を圧縮して送信します。
  • Faraday統合: レポート用に結果をFaradayへエクスポートします。
  • AIレポート生成: ローカルAIモデルを使用してレポートを生成します(reconftw_ai)。
  • クイック再スキャンモード: 新しいアセットが検出されない場合、重いステージを自動的にスキップします(--quick-rescan / QUICK_RESCAN)。
  • ホットリストビルダー: 新たな発見に基づいて、最もリスクの高いアセットをスコアリングして強調表示します(hotlist.txt)。
  • コマンドトレース: SHOW_COMMANDSを切り替えて、実行されたすべてのコマンドをデバッグ用にターゲットログへ記録します。
  • アセットストア: ASSET_STOREが有効な場合、後続の自動化のために発見をassets.jsonlに追記します。

🏗️ アーキテクチャ

reconFTWはモジュラーアーキテクチャを使用しています。メインのエントリポイント(reconftw.sh)が引数の解析を処理し、modules/ディレクトリから8つの専門モジュールを読み込みます。

ディレクトリ構成```

reconftw/ ├── reconftw.sh # Entry point — arg parsing, module loading, dispatch ├── reconftw.cfg # Default configuration ├── install.sh # Installer ├── Makefile # Data management, lint, fmt, test targets ├── modules/ │ ├── core.sh # Lifecycle, logging, notifications, cleanup (1024 lines) │ ├── modes.sh # Scan modes, argument parsing, help (902 lines) │ ├── subdomains.sh # Subdomain enumeration (1938 lines) │ ├── web.sh # Web analysis, fuzzing, JS checks (1712 lines) │ ├── vulns.sh # Vulnerability scanning (926 lines) │ ├── osint.sh # OSINT functions (500 lines) │ ├── axiom.sh # Ax/Axiom fleet helpers (143 lines) │ └── utils.sh # Utilities, sanitization, validation (508 lines) ├── tests/ │ ├── run_tests.sh # Test runner │ ├── unit/ # bats-core unit tests │ ├── integration/ # Integration tests │ └── fixtures/ # Test data ├── Docker/ │ └── Dockerfile # Official Docker image └── Terraform/ # AWS deployment

root@kitploit:~
### モジュールリファレンス

| モジュール | 行数 | 目的 |
|--------|------:|---------|
| `core.sh` | 1024 | ライフサイクル管理、ロギング、通知、クリーンアップトラップ |
| `modes.sh` | 902 | スキャンモード定義、引数解析、ヘルプ出力 |
| `subdomains.sh` | 1938 | すべてのサブドメイン列挙関数 |
| `web.sh` | 1712 | Web解析、ファジング、JS解析、CMS検出 |
| `vulns.sh` | 926 | 脆弱性スキャン(XSS、SQLi、SSRFなど) |
| `osint.sh` | 500 | OSINT関数(WHOIS、メール、ドーク、メタデータ) |
| `utils.sh` | 508 | 共有ユーティリティ、入力サニタイズ、検証 |
| `axiom.sh` | 143 | Ax/Axiom分散フリート管理 |

`--source-only` フラグを使用すると、メインロジックを実行せずに `reconftw.sh` をソースとして読み込むことができ、個々の関数のユニットテストが可能になります。

---

## 💿 インストール

reconFTWは、さまざまな環境に適した複数のインストール方法をサポートしています。十分なディスク容量(推奨:最低10 GB)と安定したインターネット接続を確保してください。

### クイックスタート

1) クローンしてインストール```yaml
git clone https://github.com/six2dez/reconftw
cd reconftw
./install.sh --verbose
  1. スキャンを実行する(フル+再開)```bash ./reconftw.sh -d example.com -r
root@kitploit:~
3) 最小限の実行(パッシブのみのフットプリント)```bash
./reconftw.sh -d example.com -p

ヒント: 後で ./install.sh --tools を再実行すると、システムパッケージを再インストールせずにツールチェーンを更新できます。

ローカルインストール(PC/VPS/VM)

  1. 前提条件:

    • Golang: 最新バージョン(reconftw.cfg でデフォルトで install_golang が有効)。
    • システム権限: root で実行していない場合は、プロンプトを回避するために sudo を設定します:
      root@kitploit:~
      sudo echo "${USERNAME} ALL=(ALL:ALL) NOPASSWD: ALL" | sudo tee -a /etc/sudoers.d/reconFTW
      
  2. 手順: ```bash git clone https://github.com/six2dez/reconftw cd reconftw ./install.sh ./reconftw.sh -d target.com -r

    root@kitploit:~
  3. 注意事項:

  • install.sh スクリプトは、依存関係、ツールのインストール、およびパスの設定(GOROOT、GOPATH、PATH)を行います。
  • Golang がすでに設定されている場合は、reconftw.cfg で install_golang=false を設定してください。
  • 既存のセットアップの場合、./install.sh --tools を実行すると、システムパッケージに触れることなく、Go バイナリ、pipx パッケージ、およびリポジトリを更新できます。
  • 詳細な手順については、インストールガイド を確認してください。

Docker

  1. イメージをプルする: ```bash docker pull six2dez/reconftw:main
    root@kitploit:~
  2. コンテナを実行する: ```bash docker run -it --rm
    -v "${PWD}/OutputFolder/:/reconftw/Recon/"
    six2dez/reconftw:main -d example.com -r
    root@kitploit:~

For a list of targets, bind the list file into the container and reference the in-container path:

ターゲットのリストについては、リストファイルをコンテナにバインドし、コンテナ内のパスを参照します: ```bash docker run -it --rm
-v "${PWD}/domains.txt:/reconftw/domains.txt:ro"
-v "${PWD}/OutputFolder/:/reconftw/Recon/"
six2dez/reconftw:main -l /reconftw/domains.txt -r

root@kitploit:~
3. **結果の表示**:

- 結果はホスト上の `OutputFolder` ディレクトリに保存されます(コンテナ内ではありません)。

4. **カスタマイズ**:
- Docker イメージを変更するか、独自のイメージをビルドします。詳細は [Docker ガイド](https://github.com/six2dez/reconftw/wiki/4.-Docker) を参照してください。
- カスタムビルドで Ax ツールをスキップするには、`--build-arg INSTALL_AXIOM=false` を渡します。
- 通知を使用する場合は、notify 設定をコンテナ内の `~/.config/notify/provider-config.yaml` にマウントします。

5. **実行時のシークレット**:

API キーとシークレットは環境変数を介して渡します。イメージに焼き込まないでください。   ```bash
docker run -it --rm \
  -e SHODAN_API_KEY="your-key" \
  -e PDCP_API_KEY="your-projectdiscovery-key" \
  -e COLLAB_SERVER="your-server" \
  -e XSS_SERVER="your-server" \
  -v "${PWD}/OutputFolder/:/reconftw/Recon/" \
  six2dez/reconftw:main -d example.com -r

See SECURITY.md を参照して、シークレット管理の完全なガイダンスを確認してください。

  1. ヘルスチェック:

    Dockerイメージには、60秒ごとに ./reconftw.sh --health-check を実行する組み込みの HEALTHCHECK が含まれています。手動で実行することもできます: ```bash docker exec ./reconftw.sh --health-check

    root@kitploit:~

Terraform + Ansible

  • Terraform と Ansible を使用して、AWS 上に reconFTW をデプロイします。
  • セットアップ手順については、Terraform/README.md のガイドに従ってください。

v2 ベータ版(Go による書き直し)を試す

reconFTW は Go で書き直されています。この書き直し版はオプトインのプレリリースとして提供されます。これは リリースページ に掲載されており、GitHub は releases/latest をプレリリースに指定することはありません。つまり、何もしなければ、引き続き bash リリースを利用できます。 これは意図的な設計です。

Go バイナリは reconftw、bash エントリポイントは reconftw.sh です。これらは互いに上書きしないため、 両方を保持して、いつでも切り替えることができます。

現在のベータ版は v5.0.0-beta.1 です。これは releases/latest では提供されないため、 タグを明示的に指定する必要があります。```bash curl -sSL "https://github.com/six2dez/reconftw/releases/download/v5.0.0-beta.1/reconftw_Linux_x86_64.tar.gz" | tar xz sudo install -m 755 reconftw /usr/local/bin/reconftw reconftw version

root@kitploit:~
プラットフォームに合ったアセットを
[リリースページ](https://github.com/six2dez/reconftw/releases/tag/v5.0.0-beta.1)から選択してください — `Darwin`
および `arm64` ビルド、静的 musl ビルド、`.deb`/`.rpm` パッケージがすべて公開されています。

- [**ベータ版の内容と、そうでないもの**](https://github.com/six2dez/reconftw/blob/main/docs/V2-BETA-ANNOUNCEMENT.md) — 明示的に未完了の3つの事項を含みます。
- [**問題を報告する**](https://github.com/six2dez/reconftw/issues/new?template=v2-beta-feedback.md)
  — v2 ベータ版フィードバックテンプレート。bash リリースのバグは引き続き通常のバグ報告に送ってください。


## 🛠️ トラブルシューティング

- macOS の Bash 4+:スクリプトは Homebrew Bash の下で自動的に再起動します。Bash < 4 に関するメッセージが表示された場合は、`brew install bash` を実行し、新しいターミナルを開いて `./install.sh` を再実行してください。
- macOS の timeout:macOS は `brew install coreutils` で `gtimeout` を提供します。スクリプトはこれを自動的に検出して使用するようになりました。
- ネットワークの問題:インストーラーはほとんどのコマンド出力を非表示にします。何かが失敗した場合は、`reconftw.cfg` で `upgrade_tools=true` を指定して再実行するか、`./install.sh --tools` を実行するか、不足しているツールを手動でインストールしてください(エラーにツール名が表示されます)。
- GOPATH バイナリ:バイナリは `/usr/local/bin` にコピーされます。これを行いたくない場合は、`~/go/bin` が `PATH` に含まれていることを確認してください。
- Nuclei テンプレート:テンプレートがクローンされていない場合は、`~/nuclei-templates` を削除して `./install.sh` を再実行してください。

## 🔑 API チェックリスト(任意)

- `subfinder`:`~/.config/subfinder/provider-config.yaml`
- GitHub トークン:`~/Tools/.github_tokens`(1行に1つ)
- GitLab トークン:`~/Tools/.gitlab_tokens`(1行に1つ)
- WHOISXML:`reconftw.cfg` または環境変数で `WHOISXML_API` を設定
- ASN 列挙(`asnmap`):環境変数/設定で `PDCP_API_KEY` を設定(未設定の場合は `ASN_ENUM` はスキップされます)
- Slack/Discord/Telegram:`~/.config/notify/provider-config.yaml` で `notify` を設定
- SSRF サーバー:使用する場合は `COLLAB_SERVER` 環境変数/設定を設定
- Blind XSS サーバー:使用する場合は `XSS_SERVER` 環境変数/設定を設定

## 💾 要件

- ディスク:10〜20 GB の空き容量を推奨(ツールチェーン + データ)
- ネットワーク:インストールおよび更新中は安定した接続
- OS:Bash ≥ 4 を備えた Linux/macOS
- 追加:`make lint`/`make fmt` 用の `shellcheck` と `shfmt`(任意)

## ⚙️ 設定

`reconftw.cfg` ファイルは reconFTW の実行全体を制御します。以下のきめ細かいカスタマイズが可能です:

- **ツールパス**:ツール、リゾルバー、ワードリストのパスを設定(`tools`、`resolvers`、`fuzz_wordlist`)。
- **API キー**:環境変数または `secrets.cfg` を介して Shodan、WHOISXML などのキーを設定([SECURITY.md](https://github.com/six2dez/reconftw/blob/main/SECURITY.md) を参照)。
- **スキャンモード**:モジュールの有効/無効を切り替え(例:`OSINT`、`SUBDOMAINS_GENERAL`、`VULNS_GENERAL`)。
- **パフォーマンス**:スレッド数、レート制限、タイムアウトを調整(例:`FFUF_THREADS`、`HTTPX_RATELIMIT`)。
- **適応型レート制限**:429/503 エラー時に自動的にバックオフ(`ADAPTIVE_RATE_LIMIT`、`MIN_RATE_LIMIT`、`MAX_RATE_LIMIT`)。
- **増分スキャン**:前回の実行以降の新しい発見のみをスキャン(`INCREMENTAL_MODE`)。
- **通知**:Slack、Discord、または Telegram 通知を設定(`NOTIFY_CONFIG`)。
- **Ax(旧 Axiom)**:分散スキャンとリゾルバーパスを設定(`AXIOM_FLEET_NAME`、`AXIOM_FLEET_COUNT`、`AXIOM_RESOLVERS_PATH`)。
- **AI レポート**:モデル/プロファイル/形式とコンテキスト制御を設定(`AI_MODEL`、`AI_REPORT_PROFILE`、`AI_REPORT_TYPE`、`AI_MAX_CHARS_PER_FILE`)。
- **高度な Web チェック**:GraphQL イントロスペクション、パラメータ発見、WebSocket テスト、gRPC プロービング、IPv6 スキャンを切り替え。
- **自動化とデータ**:クイック再スキャンのヒューリスティック、アセットログ、チャンクサイズ、ホットリスト、デバッグトレースを制御(`QUICK_RESCAN`、`ASSET_STORE`、`CHUNK_LIMIT`、`HOTLIST_TOP`、`SHOW_COMMANDS`)。
- **ディスクとロギング**:事前ディスクチェック(`MIN_DISK_SPACE_GB`)、ログローテーション(`MAX_LOG_FILES`、`MAX_LOG_AGE_DAYS`)、構造化 JSON ロギング(`STRUCTURED_LOGGING`)。
- **キャッシュ**:ワードリストとリゾルバーのキャッシュ有効期限を設定(`CACHE_MAX_AGE_DAYS`)。
- **DNS リゾルバーの安全性**:リゾルバーファイルが欠落している場合は即座に失敗し、リゾルバーのダウンロードには設定可能な再試行/タイムアウトノブを使用(`RESOLVER_DOWNLOAD_*`)、DNS ブルートフォース/解決タイムアウトはデフォルトで無効(`DNS_*_TIMEOUT=0`)でハートビート進行状況を表示。
- **シークレット**:ローカルオーバーライドには `secrets.cfg` を、CI/Docker には環境変数を使用([SECURITY.md](https://github.com/six2dez/reconftw/blob/main/SECURITY.md) を参照)。

**設定例**:```bash
#############################################
#			reconFTW config file			#
#############################################

# General values
tools=$HOME/Tools   # Path installed tools
if [[ -z "${SCRIPTPATH:-}" ]]; then
	if [[ -n "${BASH_SOURCE[0]:-}" ]]; then
		SCRIPTPATH="$( cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 ; pwd -P )" # Get current script's path
	else
		SCRIPTPATH="$( cd "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )" # Get current script's path
	fi
fi
_detected_shell="${SHELL:-/bin/bash}"
profile_shell=".$(basename "${_detected_shell}")rc" # Get current shell profile
if git rev-parse --is-inside-work-tree >/dev/null 2>&1; then
	reconftw_version="$(git rev-parse --abbrev-ref HEAD)-$(git describe --tags 2>/dev/null || git rev-parse --short HEAD)"
else
	reconftw_version="standalone"
fi # Fetch current reconftw version
DATA_DIR="${SCRIPTPATH}/data"
WORDLISTS_DIR="${DATA_DIR}/wordlists"
PATTERNS_DIR="${DATA_DIR}/patterns"
generate_resolvers=false # Generate custom resolvers with dnsvalidator
update_resolvers=true # Fetch and rewrite resolvers from trickest/resolvers before DNS resolution
resolvers_url="https://raw.githubusercontent.com/trickest/resolvers/main/resolvers.txt"
resolvers_trusted_url="https://gist.githubusercontent.com/six2dez/ae9ed7e5c786461868abd3f2344401b6/raw/trusted_resolvers.txt"
RESOLVER_DOWNLOAD_CONNECT_TIMEOUT=10 # Seconds to wait for resolver download TCP connection
RESOLVER_DOWNLOAD_MAX_TIME=120 # Hard cap in seconds for resolver downloads
RESOLVER_DOWNLOAD_RETRY=2 # Retry count for resolver downloads
RESOLVER_DOWNLOAD_RETRY_DELAY=2 # Delay in seconds between resolver download retries
fuzzing_remote_list="https://raw.githubusercontent.com/six2dez/OneListForAll/main/onelistforallmicro.txt" # Used to send to Ax (if used) on fuzzing
proxy_url="http://127.0.0.1:8080/" # Proxy url
install_golang=true # Set it to false if you already have Golang configured and ready
upgrade_tools=true
upgrade_before_running=false # Upgrade tools before running
#dir_output=/custom/output/path
SHOW_COMMANDS=false # Set true to log every executed command to the per-target log (verbose; may include sensitive data)
MIN_DISK_SPACE_GB=0 # Minimum required disk space in GB before starting reconnaissance (0 to disable check)

# Incremental mode configuration
INCREMENTAL_MODE=false # Only scan new findings since last run (use --incremental flag to enable)
MONITOR_MODE=false # Continuous monitor mode (enabled by --monitor)
MONITOR_INTERVAL_MIN=60 # Minutes between monitoring cycles
MONITOR_MAX_CYCLES=0 # 0 = run forever until interrupted
ALERT_SUPPRESSION=true # Suppress repeated monitor alerts by fingerprint history
ALERT_SEEN_FILE=".incremental/alerts_seen.hashes" # Store of seen alert fingerprints

# Adaptive rate limiting configuration
ADAPTIVE_RATE_LIMIT=false # Automatically adjust rate limits when encountering 429/503 errors (use --adaptive-rate flag to enable)
MIN_RATE_LIMIT=10 # Minimum rate limit (requests per second)
MAX_RATE_LIMIT=500 # Maximum rate limit (requests per second)
RATE_LIMIT_BACKOFF_FACTOR=0.5 # Multiply rate by this when errors occur (0.5 = half speed)
RATE_LIMIT_INCREASE_FACTOR=1.2 # Multiply rate by this on success (1.2 = 20% faster)

# Cache configuration
CACHE_MAX_AGE_DAYS=30 # Maximum age in days for cached wordlists/resolvers (30 = 1 month)
CACHE_MAX_AGE_DAYS_RESOLVERS=7 # Resolver cache TTL
CACHE_MAX_AGE_DAYS_WORDLISTS=30 # Wordlist cache TTL
CACHE_MAX_AGE_DAYS_TOOLS=14 # Tool cache TTL
CACHE_REFRESH=false # Force-refresh cache (or use --refresh-cache)

# Log rotation
MAX_LOG_FILES=10       # Maximum number of log files to keep per target
MAX_LOG_AGE_DAYS=30    # Delete log files older than this many days

# Structured logging configuration (JSON format)
STRUCTURED_LOGGING=false # Enable JSON structured logging for advanced log analysis

# Golang Vars (Comment or change on your own)
export GOROOT="${GOROOT:-/usr/local/go}"
export GOPATH="${GOPATH:-$HOME/go}"
case ":${PATH}:" in
	*":$GOPATH/bin:"*) ;;
	*) PATH="$GOPATH/bin:$PATH" ;;
esac
case ":${PATH}:" in
	*":$GOROOT/bin:"*) ;;
	*) PATH="$GOROOT/bin:$PATH" ;;
esac
case ":${PATH}:" in
	*":$HOME/.local/bin:"*) ;;
	*) PATH="$HOME/.local/bin:$PATH" ;;
esac
export PATH

# Rust Vars (Comment or change on your own)
export PATH="$HOME/.cargo/bin:$PATH"

# Tools config files
#NOTIFY_CONFIG=~/.config/notify/provider-config.yaml # No need to define
GITHUB_TOKENS=${tools}/.github_tokens
GITLAB_TOKENS=${tools}/.gitlab_tokens
#CUSTOM_CONFIG=custom_config_path.txt # In case you use a custom config file, uncomment this line and set your files path

# APIs/TOKENS - Set via environment variables (preferred) or uncomment and edit below.
# Environment variables take precedence if set.
SHODAN_API_KEY="${SHODAN_API_KEY:-}"
WHOISXML_API="${WHOISXML_API:-}"
PDCP_API_KEY="${PDCP_API_KEY:-}"
XSS_SERVER="${XSS_SERVER:-}"
COLLAB_SERVER="${COLLAB_SERVER:-}"
slack_channel="${slack_channel:-}"
slack_auth="${slack_auth:-}"
# For additional secrets, create a secrets.cfg file (gitignored) and it will be auto-sourced

# File descriptors
DEBUG_STD="&>/dev/null" # Skips STD output on installer
DEBUG_ERROR="2>/dev/null" # Skips ERR output on installer

# Osint
OSINT=true # Enable or disable the whole OSINT module
GOOGLE_DORKS=true
GITHUB_DORKS=true
GITHUB_REPOS=true
METADATA=true # Fetch metadata from indexed office documents
EMAILS=true # Fetch emails from differents sites
DOMAIN_INFO=true # whois info
IP_INFO=true    # Reverse IP search, geolocation and whois
API_LEAKS=true # Check for API leaks
API_LEAKS_POSTLEAKS=true # Enhance API leaks with postleaksNg
THIRD_PARTIES=true # Check for 3rd parties misconfigs
SPOOF=true # Check spoofable domains
MAIL_HYGIENE=true # Check DMARC/SPF records
CLOUD_ENUM=true # Enumerate cloud storage across providers with cloud_enum
GITHUB_LEAKS=true # Search for leaked secrets across GitHub with ghleaks
GHLEAKS_THREADS=5 # Concurrent download threads for ghleaks
SECRETS_ENGINE="gitleaks" # gitleaks|titus|noseyparker|hybrid
SECRETS_SCAN_GIT_HISTORY=false # Include git history scans when supported
SECRETS_VALIDATE=false # Validate detected secrets when supported (titus)
GITHUB_ACTIONS_AUDIT=false # Audit GitHub Actions artifacts/workflows with gato
GATO_INCLUDE_ALL_ARTIFACT_SECRETS=false # Include noisy artifact secret matches in gato output

# Subdomains
SUBDOMAINS_GENERAL=true # Enable or disable the whole Subdomains module
SUBPASSIVE=true # Passive subdomains search
SUBCRT=true # crtsh search
CTR_LIMIT=999999 # Limit the number of results
SUBNOERROR=false # Check DNS NOERROR response and BF on them
SUBANALYTICS=true # Google Analytics search
SUBBRUTE=true # DNS bruteforcing
SUBSCRAPING=true # Subdomains extraction from passive URLs and live web metadata
SUBPERMUTE=true # DNS permutations
SUBIAPERMUTE=true # Permutations by AI analysis
SUBREGEXPERMUTE=true # Permutations by regex analysis
GOTATOR_FLAGS=" -depth 1 -numbers 3 -mindup -adv -md" # Flags for gotator
PERMUTATIONS_WORDLIST_MODE=auto # auto|full|short (auto: short if subs > threshold, full if DEEP)
PERMUTATIONS_SHORT_THRESHOLD=100 # Use short wordlist when subdomain count exceeds this
SUBTAKEOVER=true # Check subdomain takeovers, false by default cuz nuclei already check this
SUB_RECURSIVE_PASSIVE=false # Uses a lot of API keys queries
DEEP_RECURSIVE_PASSIVE=10 # Number of top subdomains for recursion
SUB_RECURSIVE_BRUTE=false # Needs big disk space and time to resolve
ZONETRANSFER=true # Check zone transfer
S3BUCKETS=true # Check S3 buckets misconfigs
REVERSE_IP=false # Check reverse IP subdomain search (set True if your target is CIDR/IP)
TLS_PORTS="21,22,25,80,110,135,143,261,271,324,443,448,465,563,614,631,636,664,684,695,832,853,854,990,993,989,992,994,995,1129,1131,1184,2083,2087,2089,2096,2221,2252,2376,2381,2478,2479,2482,2484,2679,2762,3077,3078,3183,3191,3220,3269,3306,3410,3424,3471,3496,3509,3529,3539,3535,3660,36611,3713,3747,3766,3864,3885,3995,3896,4031,4036,4062,4064,4081,4083,4116,4335,4336,4536,4590,4740,4843,4849,5443,5007,5061,5321,5349,5671,5783,5868,5986,5989,5990,6209,6251,6443,6513,6514,6619,6697,6771,7202,7443,7673,7674,7677,7775,8243,8443,8991,8989,9089,9295,9318,9443,9444,9614,9802,10161,10162,11751,12013,12109,14143,15002,16995,41230,16993,20003"
INSCOPE=false # Uses inscope tool to filter the scope, requires .scope file in reconftw folder

# Web detection
WEBPROBEFULL=true # Unified web probing over configured ports
WEBSCREENSHOT=true # Webs screenshooting
VIRTUALHOSTS=false # Check virtualhosts by fuzzing HOST header
UNCOMMON_PORTS_WEB="81,300,591,593,832,981,1010,1311,1099,2082,2095,2096,2480,3000,3001,3002,3003,3128,3333,4243,4567,4711,4712,4993,5000,5104,5108,5280,5281,5601,5800,6543,7000,7001,7396,7474,8000,8001,8008,8014,8042,8060,8069,8080,8081,8083,8088,8090,8091,8095,8118,8123,8172,8181,8222,8243,8280,8281,8333,8337,8443,8500,8834,8880,8888,8983,9000,9001,9043,9060,9080,9090,9091,9092,9200,9443,9502,9800,9981,10000,10250,11371,12443,15672,16080,17778,18091,18092,20720,32000,55440,55672"
WEBPROBE_PORTS="80,443,${UNCOMMON_PORTS_WEB}" # Ports used by webprobe_full

# Host
FAVIRECON=true # Favicon-based technology recon for discovered web targets
PORTSCANNER=true # Enable or disable the whole Port scanner module
GEO_INFO=true # Fetch Geolocalization info
PORTSCAN_PASSIVE=true # Port scanner with Shodan
PORTSCAN_ACTIVE=true # Port scanner with nmap
PORTSCAN_ACTIVE_OPTIONS="--top-ports 200 -sV -n -Pn --open --max-retries 2"
PORTSCAN_DEEP_OPTIONS="--top-ports 1000 -sV -n -Pn --open --max-retries 2 --script vulners"
PORTSCAN_STRATEGY=legacy # legacy|naabu_nmap
NAABU_ENABLE=true
NAABU_RATE=1000
NAABU_PORTS="--top-ports 1000"
SERVICE_FINGERPRINT=true # Fingerprint exposed services with nerva
SERVICE_FINGERPRINT_ENGINE="nerva" # nerva
SERVICE_FINGERPRINT_TIMEOUT_MS=2000 # nerva timeout per target (ms)
PORTSCAN_UDP=false
PORTSCAN_UDP_OPTIONS="--top-ports 20 -sU -sV -n -Pn --open"
CDN_IP=true # Check which IPs belongs to CDN
CDN_BYPASS=true # Try origin IP discovery on CDN-fronted hosts with hakoriginfinder

# Web analysis
WAF_DETECTION=true # Detect WAFs
NUCLEICHECK=true # Enable or disable nuclei
NUCLEI_TEMPLATES_PATH="$HOME/nuclei-templates" # Set nuclei templates path
NUCLEI_SEVERITY="info,low,medium,high,critical" # Set templates criticity
NUCLEI_EXTRA_ARGS="" # Additional nuclei extra flags, don't set the severity here but the exclusions like " -etags openssh"
#NUCLEI_EXTRA_ARGS="-etags openssh,ssl -eid node-express-dev-env,keycloak-xss,CVE-2023-24044,CVE-2021-20323,header-sql,header-reflection" # Additional nuclei extra flags, don't set the severity here but the exclusions like " -etags openssh"
NUCLEI_DAST=true # Run additional nuclei -dast module over webs/urls/gf candidates (forced on when VULNS_GENERAL=true, e.g. -a)
URL_CHECK=true # Enable or disable URL collection
URL_CHECK_PASSIVE=true # Search for urls, passive methods from Archive, OTX, CommonCrawl, etc
URL_CHECK_ACTIVE=true # Search for urls by crawling the websites
WAYMORE_TIMEOUT=30m # Timeout for waymore passive URL collection
WAYMORE_LIMIT=5000 # Optional URL collection limit for waymore
URL_GF=true # Url patterns classification
URL_EXT=true # Returns a list of files divided by extension
JSCHECKS=true # JS analysis
FUZZ=true # Web fuzzing
FUZZ_RECURSION_DEPTH=2 # ffuf recursion depth used in DEEP mode
IIS_SHORTNAME=true
CMS_SCANNER=true # CMS scanner
WORDLIST=true # Wordlist generation
ROBOTSWORDLIST=true # Check historic disallow entries on waybackMachine (DEEP mode only)
PASSWORD_DICT=true # Generate password dictionary
PASSWORD_DICT_ENGINE=cewler # cewler|pydictor
PASSWORD_MIN_LENGTH=5 # Min password length
PASSWORD_MAX_LENGTH=14 # Max password length
KATANA_HEADLESS_PROFILE=off # off|smart|full
CLOUD_ENUM_S3_PROFILE=optimized # optimized: quickscan (-qs + safe -m/-b paths) | exhaustive: -m/-b ${tools}/cloud_enum/enum_tools/fuzz.txt (missing fuzz => optimized)
CLOUD_ENUM_S3_THREADS=20 # Threads used by cloud_enum in s3buckets/cloud enumeration

# Vulns
VULNS_GENERAL=false # Enable or disable the vulnerability module (very intrusive and slow)
XSS=true # Check for xss with dalfox
TEST_SSL=true # SSL misconfigs
SSRF_CHECKS=true # SSRF checks
CRLF_CHECKS=true # CRLF checks
LFI=true # LFI by fuzzing
LFI_MAX_URLS=150 # Max single-parameter LFI candidates to test per target (0 = unlimited)
SSTI=true # SSTI by fuzzing
SSTI_ENGINE="TInjA" # SSTI engine
SQLI=true # Check SQLI
SQLMAP=true # Check SQLI with sqlmap
GHAURI=false # Check SQLI with ghauri
BROKENLINKS=true # Check for brokenlinks
BROKENLINKS_ENGINE="second-order" # Broken links engine
SPRAY=true # Performs password spraying
SPRAY_ENGINE="brutespray" # brutespray|brutus
SPRAY_BRUTUS_ONLY_DEEP=true # Run brutus only in DEEP mode unless disabled
BRUTUS_USERNAMES="" # Optional comma-separated usernames for brutus
BRUTUS_PASSWORDS="" # Optional comma-separated passwords for brutus
BRUTUS_KEY_FILE="" # Optional SSH private key path for brutus
COMM_INJ=true # Check for command injections with commix
SMUGGLING=true # Check for HTTP request smuggling flaws
WEBCACHE=true # Check for Web Cache issues
WEBCACHE_TOXICACHE=true # Complement web cache checks with toxicache
BYPASSER4XX=true # Check for 4XX bypasses
FUZZPARAMS=true # Fuzz parameters values

# Extra features
NOTIFICATION=false # Notification for every function
SOFT_NOTIFICATION=false # Only for start/end
DEEP=false # DEEP mode, really slow and don't care about the number of results
DEEP_LIMIT=500 # First limit to not run unless you run DEEP
DEEP_LIMIT2=1500 # Second limit to not run unless you run DEEP
DIFF=false # Diff function, run every module over an already scanned target, printing only new findings (but save everything)
REMOVETMP=false # Delete temporary files after execution (to free up space)
REMOVELOG=false # Delete logs after execution
PROXY=false # Send to proxy the websites found
SENDZIPNOTIFY=false # Send to zip the results (over notify)
PRESERVE=true      # set to true to avoid deleting the .called_fn files on really large scans
FFUF_FLAGS=" -mc all -fc 404 -sf -noninteractive -of json" # Ffuf flags

# HTTP options
HEADER="User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:72.0) Gecko/20100101 Firefox/72.0" # Default header

# Threads (auto-scaled based on CPU cores, override to set fixed values)
AVAILABLE_CORES=$(nproc 2>/dev/null || sysctl -n hw.ncpu 2>/dev/null || echo 4)
FFUF_THREADS=$((AVAILABLE_CORES * 10))
HTTPX_THREADS=$((AVAILABLE_CORES * 12))
HTTPX_UNCOMMONPORTS_THREADS=$((AVAILABLE_CORES * 25))
KATANA_THREADS=$((AVAILABLE_CORES * 5))
BRUTESPRAY_CONCURRENCE=$((AVAILABLE_CORES * 2))
DNSTAKE_THREADS=$((AVAILABLE_CORES * 25))
DALFOX_THREADS=$((AVAILABLE_CORES * 50))
DNS_RESOLVER=auto # auto|puredns|dnsx (auto: detects NAT/CGNAT → dnsx for home, puredns for VPS)
PUREDNS_PUBLIC_LIMIT=0 # Set between 2000 - 10000 if your router blows up, 0 means unlimited
PUREDNS_TRUSTED_LIMIT=400
PUREDNS_WILDCARDTEST_LIMIT=30
PUREDNS_WILDCARDBATCH_LIMIT=1500000
DNSX_THREADS=25 # Threads for dnsx when behind NAT (safe for home routers)
DNSX_RATE_LIMIT=100 # QPS for dnsx
DNSVALIDATOR_THREADS=200
INTERLACE_THREADS=10
LFI_INTERLACE_THREADS=4 # Dedicated interlace concurrency for LFI
TLSX_THREADS=1000
XNLINKFINDER_DEPTH=3

# Rate limits
HTTPX_RATELIMIT=150
NUCLEI_RATELIMIT=150
FFUF_RATELIMIT=0
LFI_FFUF_THREADS=20 # Dedicated ffuf threads for LFI
LFI_FFUF_RATELIMIT=50 # Dedicated ffuf rate limit for LFI

# Timeouts
SUBFINDER_ENUM_TIMEOUT=180          # Minutes
CMSSCAN_TIMEOUT=3600            # Seconds
FFUF_MAXTIME=900                # Seconds
LFI_INTERLACE_TIMEOUT=180       # Seconds per LFI interlace worker
LFI_FFUF_TIMEOUT=10             # Seconds per LFI HTTP request
LFI_FFUF_MAXTIME=90             # Seconds per single LFI ffuf job
LFI_FOLLOW_REDIRECTS=false      # Follow redirects during LFI fuzzing
HTTPX_TIMEOUT=10                # Seconds
HTTPX_UNCOMMONPORTS_TIMEOUT=10  # Seconds
PERMUTATIONS_LIMIT=21474836480  # Bytes, default is 20 GB
DNS_BRUTE_TIMEOUT=0             # timeout/gtimeout duration for DNS bruteforce (0 disables hard-timeout, e.g. 4h)
DNS_RESOLVE_TIMEOUT=0           # timeout/gtimeout duration for DNS resolve (0 disables hard-timeout, e.g. 6h)
DNS_HEARTBEAT_INTERVAL_SECONDS=20 # Progress heartbeat interval for long DNS jobs

# lists
fuzz_wordlist=${WORDLISTS_DIR}/fuzz_wordlist.txt
lfi_wordlist=${WORDLISTS_DIR}/lfi_wordlist.txt
ssti_wordlist=${WORDLISTS_DIR}/ssti_wordlist.txt
subs_wordlist=${WORDLISTS_DIR}/subdomains.txt
subs_wordlist_big=${tools}/subdomains_n0kovo_big.txt
headers_inject=${WORDLISTS_DIR}/headers_inject.txt
resolvers=${tools}/resolvers.txt
resolvers_trusted=${tools}/resolvers_trusted.txt

# Ax Fleet (formerly Axiom — uses attacksurge/ax)
# Resolver paths on Ax instances (change if your fleet uses a different home dir)
AXIOM_RESOLVERS_PATH="/home/op/lists/resolvers.txt"
AXIOM_RESOLVERS_TRUSTED_PATH="/home/op/lists/resolvers_trusted.txt"
# Will not start a new fleet if one exist w/ same name and size (or larger)
# AXIOM=false Uncomment only to overwrite command line flags
AXIOM_FLEET_LAUNCH=true # Enable or disable spin up a new fleet, if false it will use the current fleet with the AXIOM_FLEET_NAME prefix
AXIOM_FLEET_NAME="reconFTW" # Fleet's prefix name
AXIOM_FLEET_COUNT=10 # Fleet's number
AXIOM_FLEET_REGIONS="eu-central" # Fleet's region
AXIOM_FLEET_SHUTDOWN=true # # Enable or disable delete the fleet after the execution
AXIOM_AUTO_FIX_HOSTKEY=true # Auto-repair known_hosts entries on SSH host-key mismatch before fallback to local mode
# This is a script on your reconftw host that might prep things your way...
#AXIOM_POST_START="~/Tools/axiom_config.sh" # Useful  to send your config files to the fleet
AXIOM_EXTRA_ARGS="" # Leave empty if you don't want to add extra arguments
#AXIOM_EXTRA_ARGS=" --rm-logs" # Example

# Faraday-Server
FARADAY=false # Enable or disable Faraday integration
FARADAY_WORKSPACE="reconftw" # Faraday workspace

# AI
AI_EXECUTABLE="python3" # Python executable fallback if reconftw_ai venv python is not available
AI_MODEL="llama3:8b" # Model to use
AI_REPORT_TYPE="md" # Report type to use (md, txt)
AI_REPORT_PROFILE="bughunter" # Report profile to use (executive, brief, or bughunter)
AI_PROMPTS_FILE="" # Optional custom prompts file (empty uses reconftw_ai default)
AI_MAX_CHARS_PER_FILE=50000 # Max chars loaded per file before truncation
AI_MAX_FILES_PER_CATEGORY=200 # Max files loaded per category for AI context
AI_REDACT=true # Redact sensitive indicators before AI analysis
AI_ALLOW_MODEL_PULL=false # Allow reconftw_ai to auto-pull missing model
AI_STRICT=false # Fail AI analysis if one or more categories have no data

# API & Advanced Web Checks
GRAPHQL_CHECK=true # Detect GraphQL endpoints and introspection
GQLSPECTION=false # Run GQLSpection deep introspection on detected GraphQL endpoints (heavier)
PARAM_DISCOVERY=true # Parameter discovery with arjun
GRPC_SCAN=false # Attempt basic gRPC reflection on common ports
LLM_PROBE=false # Probe discovered web/API endpoints for LLM services with julius
LLM_PROBE_AUGUSTUS=false # Include augustus generator config in julius output

# IPv6
IPV6_SCAN=true # Attempt IPv6 discovery/portscan where addresses exist

# Wordlists / threads for new modules
ARJUN_THREADS=10

# Data & Automation
ASSET_STORE=true # Append assets/findings to assets.jsonl
EXPORT_FORMAT="" # Optional exporter at end of scan: json|html|csv|all
REPORT_ONLY=false # Rebuild report artifacts from existing results (or use --report-only)
QUICK_RESCAN=false # Skip heavy steps if no new subdomains/webs
CHUNK_LIMIT=2000 # Split very large lists into chunks (urls, webs)
HOTLIST_TOP=50 # Number of top risky assets to highlight

# Performance
RESOLVER_IQ=false # Prefer fast/healthy resolvers (experimental)
PERF_PROFILE="balanced" # low|balanced|max

# Estimated durations for skipped heavy modules (seconds)
TIME_EST_NUCLEI=600
TIME_EST_FUZZ=900
TIME_EST_URLCHECKS=300
TIME_EST_JSCHECKS=300
TIME_EST_API=300
TIME_EST_GQL=180
TIME_EST_PARAM=240
TIME_EST_GRPC=120
TIME_EST_IIS=60

# TERM COLORS
bred='\033[1;31m'
bblue='\033[1;34m'
bgreen='\033[1;32m'
byellow='\033[1;33m'
red='\033[0;31m'
blue='\033[0;34m'
green='\033[0;32m'
cyan='\033[0;36m'
yellow='\033[0;33m'
reset='\033[0m'

DNS リゾルバのガードレール:

  • リゾルバファイルが欠落または空の場合、DNS ブルートフォース/解決が開始される前に即座に失敗するようになりました。
  • リゾルバのダウンロードは、RESOLVER_DOWNLOAD_CONNECT_TIMEOUT、RESOLVER_DOWNLOAD_MAX_TIME、RESOLVER_DOWNLOAD_RETRY、および RESOLVER_DOWNLOAD_RETRY_DELAY で設定可能です。
  • DNS_BRUTE_TIMEOUT=0 と DNS_RESOLVE_TIMEOUT=0 は、デフォルトでハードタイムアウトを無効にします (非常に大規模なターゲットセットに推奨)。ハートビートの進行状況は、引き続き DNS_HEARTBEAT_INTERVAL_SECONDS ごとに出力されます。```bash DNS_BRUTE_TIMEOUT=4h DNS_RESOLVE_TIMEOUT=6h DNS_HEARTBEAT_INTERVAL_SECONDS=20
root@kitploit:~
**詳細**: [設定ガイド](https://github.com/six2dez/reconftw/wiki/3.-Configuration-file) を参照してください。

---

## 🚀 使用方法

reconFTW は、柔軟な偵察のための複数のモードとオプションをサポートしています。`-h` フラグを使用してヘルプメニューを表示します。

### ターゲットオプション

| フラグ | 説明                                                        |
| ---- | ------------------------------------------------------------ |
| `-d` | 単一のターゲットドメイン(例: `example.com`)                |
| `-l` | ターゲットドメインのリストを含むファイル(1行に1つ)         |
| `-m` | マルチドメインターゲット(例: 関連ドメインの会社名)         |
| `-x` | サブドメインを除外(スコープ外リスト)                       |
| `-i` | サブドメインを含める(スコープ内リスト)                     |

### モードオプション

| フラグ | 説明                                                           |
| ---- | --------------------------------------------------------------------- |
| `-r` | **Recon**: アクティブな攻撃なしの完全な偵察                        |
| `-s` | **Subdomains**: サブドメイン列挙、Webプロービング、および乗っ取り |
| `-p` | **Passive**: パッシブ偵察のみ                                    |
| `-a` | **All**: 完全な偵察に加えてアクティブな脆弱性チェック             |
| `-w` | **Web**: 特定のWebターゲットに対する脆弱性チェック               |
| `-n` | **OSINT**: サブドメイン列挙や攻撃なしのOSINTスキャン             |
| `-z` | **Zen**: 基本的なチェックといくつかの脆弱性を含む軽量偵察        |
| `-c` | **Custom**: 特定の関数を実行(追加の引数が必要)                 |
| `-h` | ヘルプメニューを表示                                              |

### 一般オプション

| フラグ              | 説明                                              |
| ----------------- | -------------------------------------------------------- |
| `--deep`          | ディープスキャンを有効化(低速、VPS推奨)                  |
| `-f`              | カスタム設定ファイルのパス                           |
| `-o`              | 結果の出力ディレクトリ                             |
| `-v`              | Ax分散スキャンを有効化                           |
| `--vps-count`     | この実行のAxフリートインスタンス数を上書き            |
| `-q`              | レート制限を設定(1秒あたりのリクエスト数)                     |
| `-y`              | AI結果分析を有効化                              |
| `--check-tools`   | 必要なツールが不足している場合に終了                       |
| `--quick-rescan`  | 新しいサブドメイン/Webが見つからない場合に重いモジュールをスキップ       |
| `--health-check`  | システムヘルスチェックを実行して終了                         |
| `--incremental`   | 前回の実行以降の新しい発見のみをスキャン                    |
| `--adaptive-rate` | エラー(429/503)時にレート制限を自動調整     |
| `--dry-run`       | コマンドを実行せずに実行内容を表示     |
| `--parallel`      | 独立した関数を並列実行(高速、より多くのRAMを使用) |
| `--no-parallel`   | 並列が有効でも強制的に順次実行   |
| `--monitor`       | 継続的モニタリングモード(単一ターゲット; `-w` は `-l` をサポート) |
| `--monitor-interval` | モニタリングサイクル間の分数                        |
| `--monitor-cycles`   | Nサイクル後に停止(0 = 無限)                    |
| `--report-only`   | スキャンせずにレポート成果物を再構築                |
| `--refresh-cache` | キャッシュされたリゾルバー/ワードリストを強制的に更新              |
| `--export`        | 成果物をエクスポート: `json`、`html`、`csv`、または `all`        |

### 使用例

1. **単一ターゲットの完全な偵察**:   ```bash
   ./reconftw.sh -d target.com -r
  1. 複数のターゲットに対する偵察: ```bash ./reconftw.sh -l targets.txt -r -o /path/to/output/
    root@kitploit:~
  2. ディープリコン(VPS推奨): ```bash ./reconftw.sh -d target.com -r --deep
    root@kitploit:~
  3. 並列モード(高速、より多くのRAMが必要): ```bash ./reconftw.sh -d target.com -r --parallel
    root@kitploit:~
  4. シーケンシャルモードを強制する: ```bash ./reconftw.sh -d target.com -r --no-parallel
    root@kitploit:~
  5. マルチドメイン偵察: ```bash ./reconftw.sh -m company -l domains.txt -r
    root@kitploit:~
  6. Ax 統合: ```bash ./reconftw.sh -d target.com -r -v
    root@kitploit:~
  7. Ax と fleet オーバーライドの統合: ```bash ./reconftw.sh -d target.com -r -v 30
    root@kitploit:~
  8. 攻撃を伴う完全リコン(YOLOモード): ```bash ./reconftw.sh -d target.com -a
    root@kitploit:~
  9. ヘルプを表示: ```bash ./reconftw.sh -h
root@kitploit:~
11. **キャッシュの強制更新**:   ```bash
./reconftw.sh -d target.com -r --refresh-cache
  1. すべてのレポート成果物をエクスポート: ```bash ./reconftw.sh -d target.com -r --export all
root@kitploit:~
13. **継続監視(30分ごと、48サイクル)**:   ```bash
./reconftw.sh -d target.com -r --monitor --monitor-interval 30 --monitor-cycles 48
  1. レポートのみ再構築(スキャンなし): ```bash ./reconftw.sh -d target.com --report-only --export all
root@kitploit:~
**完全ガイド**: [使用ガイド](https://github.com/six2dez/reconftw/wiki/2.-Usage-Guide) を参照してください。

---

## ☁️ Ax Framework サポート(旧 Axiom)

reconFTW は [Ax](https://github.com/attacksurge/ax) と統合され、分散スキャンを実現します。複数のクラウドインスタンスにタスクを分散することで、実行時間を短縮します。

- **セットアップ**: Ax の設定(`axiom-configure`)中に、プロビジョナーとして `reconftw` を選択します。
- **フリート管理**: フリートを自動的に作成・破棄します(`AXIOM_FLEET_LAUNCH`、`AXIOM_FLEET_SHUTDOWN`)。既存のフリートを使用することも可能です。
- **設定**: `reconftw.cfg` でフリートサイズ、リージョン、名前を設定します(`AXIOM_FLEET_COUNT`、`AXIOM_FLEET_REGIONS`、`AXIOM_FLEET_NAME`)。

**例**:```bash
./reconftw.sh -d target.com -r -v

詳細: 公式の Ax Docs と attacksurge/ax リポジトリ を参照してください。


💻 Faraday サポート

reconFTW は、Webベースのレポート作成と脆弱性管理のために Faraday と統合します。

  • セットアップ: Faraday をインストールし、faraday-cli で認証して、reconftw.cfg のワークスペースを設定します(FARADAY_WORKSPACE)。
  • 使用方法: reconftw.cfg で FARADAY=true に設定して有効にします。

🧠 AI 統合

reconFTW は、ツール reconftw_ai を使用して、スキャン結果から詳細なレポートを生成するために AI を利用します。

  • モデル: 設定可能な AI モデル(例: AI_MODEL による llama3:8b)。
  • レポートタイプ: Markdown またはプレーンテキスト(AI_REPORT_TYPE)。
  • プロファイル: エグゼクティブ、簡潔、またはバグハンター(AI_REPORT_PROFILE)。
  • 構造化出力: reconftw は、機械可読なレポートを ai_result/reconftw_analysis.json に保存します。
  • コンテキスト制御: AI_MAX_CHARS_PER_FILE と AI_MAX_FILES_PER_CATEGORY を使用して入力サイズを制限します。
  • 安全制御: AI_REDACT と AI_STRICT で、編集(redaction)と厳格モードを切り替えます。

例:```yaml AI_EXECUTABLE="python3" AI_MODEL="llama3:8b" AI_REPORT_TYPE="md" AI_REPORT_PROFILE="bughunter" AI_MAX_CHARS_PER_FILE=50000 AI_MAX_FILES_PER_CATEGORY=200 AI_REDACT=true AI_ALLOW_MODEL_PULL=false AI_STRICT=false

root@kitploit:~
---

## 🗂️ データ管理

プライベートリポジトリを使用して、スキャンデータとAPIキーを安全に管理します。

`ASSET_STORE=true` の場合、reconFTW は各実行中に主要な発見事項を `assets.jsonl` に集約し、アクション可能な差分のみをプライベートリポジトリに簡単に同期できるようにします。

### Makefile

提供されている `Makefile` を使用して、リポジトリを簡単に管理します([GitHub CLI](https://cli.github.com/) が必要です)。

1. **ブートストラップ**:   ```bash
   export PRIV_REPO="$HOME/reconftw-data"
   make bootstrap
  1. 上流との同期: ```bash make sync
    root@kitploit:~
  2. データのアップロード: ```bash make upload
    root@kitploit:~
  3. Lint / フォーマットスクリプト: ```bash make lint # shellcheck for reconftw.sh, modules/*.sh & install.sh make fmt # shfmt with project defaults
    root@kitploit:~
  4. テストを実行する: ```bash make test # unit tests (bats-core) make test-all # unit + integration tests
    root@kitploit:~

マニュアル

  1. GitHub/GitLab にプライベートリポジトリを作成します。
  2. クローンして設定します: ```bash git clone https://github.com/yourusername/reconftw-data cd reconftw-data git commit --allow-empty -m "Initial commit" git remote add upstream https://github.com/six2dez/reconftw git fetch upstream git rebase upstream/main master
    root@kitploit:~
  3. 変更をアップロード: ```bash git add . git commit -m "Data upload" git push origin master
    root@kitploit:~
  4. ツールの更新: ```bash git fetch upstream git rebase upstream/main master
    root@kitploit:~

🧪 テスト

reconFTW は自動テストに bats-core を使用しています。

bats-core のインストール```bash

macOS

brew install bats-core

Debian/Ubuntu

apt install bats

From source

git clone https://github.com/bats-core/bats-core.git /tmp/bats sudo /tmp/bats/install.sh /usr/local

root@kitploit:~
### テストの実行```bash
# Unit tests only
make test

# Unit + integration tests
make test-all

# Via the runner script
./tests/run_tests.sh         # unit only
./tests/run_tests.sh --all   # unit + integration

テストディレクトリ構造```

tests/ ├── run_tests.sh # Test runner script ├── unit/ # Unit tests (fast, no network) │ ├── test_sanitize.bats │ ├── test_utils.bats │ └── test_validation.bats ├── integration/ # Integration tests (require installed tools) │ └── test_smoke.bats ├── security/ # Security tests (injection, etc.) │ └── test_injection.bats ├── mocks/ # Mock tools for offline testing └── fixtures/ # Shared test data files

root@kitploit:~
### セキュリティテストの実行```bash
# Test command injection prevention
make test-security

# Or directly
bats tests/security/

テストの作成

テストでは、--source-only パターンを使用して、メインスクリプトを実行せずに関数を読み込みます。```bash #!/usr/bin/env bats

setup() { source ./reconftw.sh --source-only }

@test "sanitize_domain strips invalid chars" { result="$(sanitize_domain 'exam;ple.com')" [ "$result" = "example.com" ] }

root@kitploit:~
### CIパイプライン

GitHub Actionsワークフロー(`.github/workflows/tests.yml`)は、すべてのプッシュとプルリクエストで実行されます:

1. **ShellCheck** — `reconftw.sh`、`modules/*.sh`、`install.sh` をlintします
2. **ユニットテスト** — すべての `tests/unit/*.bats` ファイルを実行します
3. **統合テスト** — reconFTWをインストールし、ツールの利用可能性を検証します

---

## マインドマップ/ワークフロー

![Mindmap](https://assets.kitploit.com/production/public/readmes/670/935e9af062e82113e5ca06f4b13e80f243430684e8ece2643e868f3d2afa1403.png)

---

## サンプルビデオ

![Video](https://raw.githubusercontent.com/six2dez/reconftw/HEAD/images/reconFTW.gif)

---

## 🤝 コントリビューション方法

完全なコントリビューションガイド(開発環境のセットアップ、コードスタイル、テスト、PRプロセスを含む)については、[CONTRIBUTING.md](https://github.com/six2dez/reconftw/blob/main/CONTRIBUTING.md) を参照してください。

クイックリンク:

- [バグを報告する](https://github.com/six2dez/reconftw/issues/new/choose)
- [プルリクエストを送信する](https://github.com/six2dez/reconftw/tree/dev)(`dev` ブランチを対象にしてください)
- [行動規範](https://github.com/six2dez/reconftw/blob/main/CODE_OF_CONDUCT.md)

---

## 🔒 セキュリティ

セキュリティポリシー、シークレット管理、脆弱性報告については、[SECURITY.md](https://github.com/six2dez/reconftw/blob/main/SECURITY.md) を参照してください。

---

## ❓ ヘルプが必要ですか?

- **Wiki**: [reconFTW Wiki](https://github.com/six2dez/reconftw/wiki) を探索してください。
- **FAQ**: [FAQ](https://github.com/six2dez/reconftw/wiki/7.-FAQs) を確認してください。
- **コミュニティ**: [Discordサーバー](https://discord.gg/R5DdXVEdTy) または [Telegramグループ](https://t.me/joinchat/TO_R8NYFhhbmI5co) に参加してください。

---

## 💖 このプロジェクトを支援する

以下の方法でreconFTWの開発を支援できます:

- **Buy Me a Coffee**: [buymeacoffee.com/six2dez](https://www.buymeacoffee.com/six2dez)

[<img src="https://assets.kitploit.com/production/public/readmes/670/1177bf77de4c288d45b816dd405a8b5027116f0b1893449986cf200c765707ad.webp">](https://www.buymeacoffee.com/six2dez)

- **DigitalOcean紹介**: [紹介リンク](https://www.digitalocean.com/?refcode=f362a6e193a1&utm_campaign=Referral_Invite&utm_medium=Referral_Program&utm_source=badge)

<a href="https://www.digitalocean.com/?refcode=f362a6e193a1&utm_campaign=Referral_Invite&utm_medium=Referral_Program&utm_source=badge"><img src="https://web-platforms.sfo2.cdn.digitaloceanspaces.com/WWW/Badge%201.svg" alt="DigitalOcean Referral Badge" /></a>

- **GitHubスポンサーシップ**: [github.com/sponsors/six2dez](https://github.com/sponsors/six2dez)

---

## 🙏 謝辞

reconFTWを支援してくださった以下のサービスに特別な感謝を捧げます:

- [C99](https://api.c99.nl/)
- [CIRCL](https://www.circl.lu/)
- [NetworksDB](https://networksdb.io/)
- [ipinfo](https://ipinfo.io/)
- [hackertarget](https://hackertarget.com/)
- [Censys](https://censys.io/)
- [Fofa](https://fofa.info/)
- [intelx](https://intelx.io/)
- [Whoxy](https://www.whoxy.com/)

---

## 📝 変更履歴

各リリースの変更点の詳細なリストについては、[CHANGELOG.md](https://github.com/six2dez/reconftw/blob/main/CHANGELOG.md) を参照してください。

---

## 🛠️ 開発

### プロジェクト構造```
reconftw/
├── reconftw.sh          # Main entry point (~500 lines)
├── reconftw.cfg         # Configuration file
├── modules/             # Phase modules
│   ├── utils.sh         # Utilities, sanitization, caching, circuit breaker
│   ├── core.sh          # Framework core, logging, lifecycle, health check
│   ├── modes.sh         # Scan modes, argument parsing
│   ├── subdomains.sh    # Subdomain enumeration
│   ├── web.sh           # Web analysis, nuclei scans
│   ├── vulns.sh         # Vulnerability scanning
│   ├── osint.sh         # OSINT functions
│   └── axiom.sh         # Ax/Axiom fleet helpers
├── lib/                 # Pure utility libraries
│   └── validation.sh    # Input validation functions
├── tests/               # Test suite (100+ tests)
│   ├── unit/            # Unit tests (bats)
│   ├── integration/     # Integration/smoke tests
│   └── security/        # Injection prevention tests
├── docs/                # Documentation
│   └── ARCHITECTURE.md  # Detailed architecture guide
└── secrets.cfg.example  # Template for API keys

テストの実行```bash

make test # Unit tests make test-security # Security tests make test-all # All tests make lint # Shellcheck make lint-fix # Auto-fix with shfmt

root@kitploit:~
### 開発ワークフロー```bash
# 1. Source without executing (for testing)
source ./reconftw.sh --source-only

# 2. Test individual functions
sanitize_domain "test;domain.com"

# 3. Run health check
./reconftw.sh --health-check

# 4. Dry run to preview
./reconftw.sh -d example.com -r --dry-run

貢献

開発ガイドラインについては CONTRIBUTING.md を、技術的な詳細については docs/ARCHITECTURE.md を参照してください。


📜 ライセンス

reconFTW は MIT ライセンス の下で提供されています。


⭐ スター履歴

Star History Chart

ツールをダウンロード
クラウドバケット
S3Scanner
cloud_enum
  • クラウドカバレッジに関する注記: CloudHunterをcloud_enumに置き換えた後、クラウドバケットチェックにはAlibaba OSSカバレッジは含まれなくなりました。
  • クラウド出力の移行: レガシーの cloudhunter_* バケットアーティファクトは削除されました。代わりに subdomains/cloud_enum_buckets_trufflehog.txt を使用してください。
  • リバースIPルックアップ: IP範囲を介してサブドメインを発見(hakip2host)。
  • WebSocket監査: ws:// および wss:// エンドポイントでアップグレードハンドシェイクとオリジン処理を検証。
  • gRPCリフレクション: 露出したサービスリフレクションのために一般的なgRPCポートをプローブ(grpcurl)。
  • LLMサービスフィンガープリンティング(オプション): julius で発見されたWeb/APIエンドポイントをプローブして、露出したLLMサービスを検出。
  • ファジング: ディレクトリおよびパラメータファジングを実行(ffuf)。
  • ファイル拡張子ソート: URLをファイル拡張子ごとに整理。
  • ワードリスト生成: ファジング用のカスタムワードリストを作成。
  • パスワード辞書: ライブコンテンツからパスワード辞書を生成(cewler)。
  • IISショートネームスキャン: IISショートネームの脆弱性を検出(shortscan)。
  • 統合レポート: スキャン終了時にreport/report.jsonとreport/index.htmlを自動生成します。
  • ARMサポート: Raspberry PiおよびARMアーキテクチャ(MacOS MXを含む)と互換性があります。
  • ヘルスチェック: --health-checkによる組み込みのシステムヘルスチェック(DockerのHEALTHCHECKでも使用)。
  • インクリメンタルモード: 前回の実行以降の新しい発見のみをスキャンします(--incremental)。
  • 適応型レート制限: 429/503エラー時に自動的にバックオフします(--adaptive-rate)。
  • 構造化ログ: 高度な分析用のオプションのJSONログ出力(STRUCTURED_LOGGING)。
  • 入力サニタイズ: コマンドインジェクションを防ぐため、すべてのユーザー入力をサニタイズします。
  • ドライラン(予行演習)モード: コマンドを実行せずに、実行される内容をプレビューします(--dry-run)。
  • 並列モード: 独立した機能を並列実行してスキャンを高速化します(--parallel、--no-parallelで無効化)。
  • モジュラーアーキテクチャ: 保守性を高めるため、コードベースを8つの専門モジュールに分割。
  • シークレット管理: 環境変数、secrets.cfg、Dockerランタイムシークレット(SECURITY.mdを参照)。
  • サーキットブレーカー: スキャンのハングを防ぐため、繰り返し失敗したツールを自動的にスキップします。
  • チェックポイントシステム: 最後に成功したフェーズから中断されたスキャンを再開します。
  • macOSネイティブサポート: macOSとの完全な互換性(BSD coreutils、Homebrew Bash 4+)。