サイトのクライアント向けコードを同時にクロール、フォーム入力、エラー/デバッグページのトリガー、そして「戦利品」を取得する自動化ツール。
ツールを使用するには、リポジトリのReleasesセクションからプリビルドされたバイナリを入手してください。ソースコードを自分でビルドする場合は、Go 1.16以上が必要です。go buildを実行するだけで使用可能なバイナリが出力されます。
さらに、バイナリと一緒に2つのJSONファイル([lootdb.json](https://github.com/redhuntlabs/HTTPLoot/blob/master/lootdb.json)および[regexes.json](https://github.com/redhuntlabs/HTTPLoot/blob/master/regexes.json))が必要です。これらはリポジトリから入手できます。3つのファイルすべてを同じフォルダに配置したら、ツールを起動できます。
ビデオデモ:
ツールのヘルプ使用法は次のとおりです:
$ ./httploot --help
_____
)=(
/ \ H T T P L O O T
( $ ) v0.1
\___/
[+] HTTPLoot by RedHunt Labs - A Modern Attack Surface (ASM) Management Company
[+] Author: Pinaki Mondal (RHL Research Team)
[+] Continuously Track Your Attack Surface using https://redhuntlabs.com/nvadr.
Usage of ./httploot:
-concurrency int
Maximum number of sites to process concurrently (default 100)
-depth int
Maximum depth limit to traverse while crawling (default 3)
-form-length int
Length of the string to be randomly generated for filling form fields (default 5)
-form-string string
Value with which the tool will auto-fill forms, strings will be randomly generated if no value is supplied
-input-file string
Path of the input file containing domains to process
-output-file string
CSV output file path to write the results to (default "httploot-results.csv")
-parallelism int
Number of URLs per site to crawl parallely (default 15)
-submit-forms
Whether to auto-submit forms to trigger debug pages
-timeout int
The default timeout for HTTP requests (default 10)
-user-agent string
User agent to use during HTTP requests (default "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:98.0) Gecko/20100101 Firefox/98.0")
-verify-ssl
Verify SSL certificates while making HTTP requests
-wildcard-crawl
Allow crawling of links outside of the domain being scanned
同時スキャンに関連する2つのフラグがあります:
-concurrency: 同時に処理するサイトの最大数を指定します。-parallelism: サイトごとに並行してクロールするリンク数を指定します。-concurrency と -parallelism はどちらも、ツールのパフォーマンスと信頼性にとって重要です。
クロールの深さは -depth フラグで指定できます。指定した整数値は、サイトで取得したリンクの最大チェーン深さです。
重要なフラグ -wildcard-crawl を使用すると、スコープ内のドメイン外のURLをクロールするかどうかを指定できます。
注意: このフラグを使用すると、クローラーが他のドメインへのリンクを継続的に見つけた場合、最悪のシナリオで無限クロールが発生する可能性があります。
ツールにデバッグページをスキャンさせたい場合は、-submit-forms 引数を指定する必要があります。これにより、ツールはフォームを自動送信し、テクノロジースタックが正常に特定された後に エラー/デバッグページのトリガーを試みます。
-submit-forms フラグが有効な場合、フォームフィールドに送信する文字列を制御できます。-form-string は送信する文字列を指定し、-form-length はフォームに入力されるランダム生成文字列の長さを制御できます。
次のようなフラグ:
-timeout - HTTPリクエストのタイムアウトを指定します。-user-agent - HTTPリクエストで使用するユーザーエージェントを指定します。-verify-ssl - SSL証明書を検証するかどうかを指定します。読み取る入力ファイルは -input-file 引数で指定できます。ツールでスキャンするURLのリストを含むファイルパスを指定できます。-output-file フラグは結果の出力ファイルパスを指定するために使用できます。デフォルトでは httploot-results.csv というファイルに出力されます。
ツールの開発につながった研究の詳細は、RedHunt Labs Blogに掲載されています。
本ツールはMITライセンスの下でライセンスされています。LICENSEを参照してください。
現在、ツールはv0.1です。
RedHunt Labs Research Teamは、shhgitの作成者とメンテナに、彼らのリポジトリで提供されている正規表現に対して謝意を表します。