Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
sub.Monitor — セルフホスト型のパッシブサブドメイン継続監視ツール。 | Kitploit
ツール/GitHubGitHub/e1abrador/sub.monitor
偵察情報収集サブドメイン列挙
GitHube1abrador/sub.monitor

sub.Monitor

セルフホスト型のパッシブサブドメイン継続監視ツール。

リポジトリを見る
17220132年前Kitploit レビュー済み

人気

すべて見る →

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

すべてのツールを探索

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

すべてのツールを見る →
共有

sub.Monitor


   継続的な攻撃対象領域管理のための、高速でユーザーフレンドリーなサブドメインモニタリングツール

image

なぜ?

なぜ sub.Monitor を選ぶのか? このプログラムは、発見されたすべてのドメインを保存するために SQLite を利用しているため(事前のデータベース管理が不要)、セットアップが簡単です。さらに、カスタマイズ性が高く、ユーザーは選択したツールを使用してスクリプトに数行のコードを追加するだけです。MySQL や MongoDB などのデータベースに依存する他の既存のソリューションと比較して、スクリプトの初期化が面倒な作業になることはありません。

機能

  • 高速
  • 使いやすい
  • インストールが簡単
  • カスタマイズが簡単
  • サブドメインをローカルデータベースに継続的に保存(すべてダンプすることも可能)
  • Telegram / Slack / Discord 通知

ヘルプメニュー

sub.Monitor のフラグ:

options:
  --add ADD             Domain to scan
  --out-scope OUT_SCOPE
                        File with out-of-scope domains
  --file FILE           File with known subdomains
  -D DOMAIN, --domain DOMAIN
                        Domain to scan
  -H HOURS, --hours HOURS
                        Hours between scans
  --dump                Dump all subdomains for a specific domain
  --list                List all root domains in the database
  -df DF                File with domains to scan
  --inscope             Dump only in-scope domains
  --notinscope          Dump only out-of-scope domains
  --dumpall             Dump all subdomains with their details
  --info                Show discovery date for subdomains
  -help, -?             Show this help message and exit

事前に必要な設定

設定(API)ファイルのパスを config.ini ファイルに記述する必要があります。

  • Subfinder の API 設定ファイル
  • Amass の API 設定ファイル
  • Notify の API 設定ファイル
  • sub.monitor-config.ini ファイルにバイナリパスと設定パスを指定する必要があります。
  • 最後に pip3 install -r requirements.txt を実行します

スクリプトに独自のツールを簡単に実装できます。コードの行を修正するだけです:

def run_tool(tool, domain, output_file):
    print(f'[{datetime.datetime.now()}] - Running {tool} on {domain}')
    if tool == 'assetfinder':
        assetfinder_binary = config.get('Binary paths', 'assetfinder')
        cmd = f'echo {domain} | {assetfinder_binary} -subs-only | grep -E "{domain}$" |grep -v "*" | grep -v "@"'
    elif tool == 'subfinder':
        subfinder_binary = config.get('Binary paths', 'subfinder')
        subfinder_api = config.get('Api', 'subfinder_api')
        cmd = f'{subfinder_binary} -d {domain} -silent -pc {subfinder_api} -all'
    elif tool == 'amass':
        amass_binary = config.get('Binary paths', 'amass')
        amass_api = config.get('Api', 'amass_api')
        cmd = f'{amass_binary} enum -passive -norecursive -noalts -d {domain} -config {amass_api}'
    elif tool == 'my-custom-tool':
        my-custom-tool-binary = config.get('Binary paths', 'my-custom-tool-binary-or-script')
        cmd = f'{my-custom-tool-binary} -d {domain}'

カスタムツールを追加する場合、最後の出力がドメイン結果である必要があることに注意してください。sub.Monitor がデータベースに保存するためです。使用例は次の通りです:

cmd = f'bash customtool.sh {domain}''
...
cat customtool.sh
mycustomtool -d $1 > /tmp/$1.txt &>/dev/null; cat /tmp/$1.txt | unfurl domains | anew; rm -r /tmp/$1.txt

また、ツール名をここに追加します:

                for tool in ['subfinder', 'amass', 'assetfinder', 'my-custom-tool-name']:
                    run_tool(tool, domain, output_file)

最後に、もちろん、sub.monitor-config.ini ファイルにツールを追加して、Python スクリプトがその設定ファイルからバイナリを取得できるようにする必要があります。

必要なのは、コマンドが完了したら、出力に発見されたすべてのドメインが表示され、ツールがログファイルとデータベース内に保存できるようにすることだけです。

作業計画

まず最初に、sub.Monitor はすでにスキャンされたドメインのリストを必要とします:

➜  cat ibm_sorted_subdomains.txt
test1.ibm.com
test2.ibm.com
test3.ibm.com
subtest.testX.ibm.com
...

次に、サブドメインを含むファイルを次のコマンドで sub.Monitor に渡すことができます:

python3 monitor.py --add ibm.com --file ibm_sorted_subdomains.txt
          _    ___  ___            _ _
          | |   |  \/  |           (_) |
 ___ _   _| |__ | .  . | ___  _ __  _| |_ ___  _ __
/ __| | | | '_ \| |\/| |/ _ \| '_ \| | __/ _ \| '__|
\__ \ |_| | |_) | |  | | (_) | | | | | || (_) | |
|___/\__,_|_.__/\_|  |_/\___/|_| |_|_|\__\___/|_|

                    github.com/e1abrador/sub.Monitor

[2023-06-06 18:16:26.002521] - 538 subdomains were added to the local database.

また、アウトオブスコープフラグを追加することも可能です。たとえば、バグバウンティプログラムに次のようなポリシーがあるとします:

*.ibm.com - in scope
super-admin.ibm.com - out of scope
*.super-admin.ibm.com - out of scope

この内容でファイルを作成できます:

cat outscope.txt
super-admin.ibm.com
*.super-admin.ibm.com

次のように、発見したすべてのドメインを手動でデータベースに追加できます(スコープ内のものをフィルタリング):

python3 monitor.py --add ibm.com --file ibm_sorted_subdomains.txt --out-scope outscope.txt
          _    ___  ___            _ _
          | |   |  \/  |           (_) |
 ___ _   _| |__ | .  . | ___  _ __  _| |_ ___  _ __
/ __| | | | '_ \| |\/| |/ _ \| '_ \| | __/ _ \| '__|
\__ \ |_| | |_) | |  | | (_) | | | | | || (_) | |
|___/\__,_|_.__/\_|  |_/\___/|_| |_|_|\__\___/|_|

                    github.com/e1abrador/sub.Monitor

[2023-06-06 18:16:26.002521] - 538 subdomains were added to the local database.

これにより、すべてのサブドメインがデータベースに追加されますが、スコープ外のものは [Out of scope] フラグでマークされます(ダンプ時のインスコープドメインのフィルタリング方法は後述します)。

ドメインがデータベースに追加されたことを確認するには、次を実行します:

python3 monitor.py --list
          _    ___  ___            _ _
          | |   |  \/  |           (_) |
 ___ _   _| |__ | .  . | ___  _ __  _| |_ ___  _ __
/ __| | | | '_ \| |\/| |/ _ \| '_ \| | __/ _ \| '__|
\__ \ |_| | |_) | |  | | (_) | | | | | || (_) | |
|___/\__,_|_.__/\_|  |_/\___/|_| |_|_|\__\___/|_|

                    github.com/e1abrador/sub.Monitor

ibm.com [9 subdomains added manually] [2 subdomains discovered] [11 total unique in database]

正しくロードされたら、監視プロセスを開始できます。VPS で TMUX を使用し、長時間実行し続けることをお勧めします。次のコマンドで、スクリプトはサブドメイン列挙ツールを実行し、新しい結果と古い結果を比較します。新しいサブドメインが見つかった場合、sub.Monitor はまずローカルデータベースに追加し(その発見について再度通知することはなくなります)、その後 Slack/Telegram/Discord を介してユーザーに通知します。

python3 monitor.py -D ibm.com -H 12 --out-scope outscope.txt

サブドメインが見つかった場合、sub.Monitor は出力に次のメッセージを表示します:

➜ python3 monitor.py -D ibm.com -H 8 # 現在のスコープ内のサブドメインをアウトオブスコープのものからフィルタリングするには:
                                      # python3 monitor.py -D ibm.com -H 8 --out-scope outscope.txt

          _    ___  ___            _ _
          | |   |  \/  |           (_) |
 ___ _   _| |__ | .  . | ___  _ __  _| |_ ___  _ __
/ __| | | | '_ \| |\/| |/ _ \| '_ \| | __/ _ \| '__|
\__ \ |_| | |_) | |  | | (_) | | | | | || (_) | |
|___/\__,_|_.__/\_|  |_/\___/|_| |_|_|\__\___/|_|

                    github.com/e1abrador/sub.Monitor

[2023-06-06 18:07:25.191169] - New subdomain xxxx.ibm.com discovered
[2023-06-06 18:07:25.353156] - New subdomain xyxyxyxyxyx.ibm.com discovered
[2023-06-06 18:07:25.641082] - New subdomain x1.xxxx.ibm.com discovered

複数のドメインを監視することも可能です。次のコマンドを使用します:

python3 monitor.py -df root-domains.txt -H 8
python3 monitor.py -df roots.txt -H 8 --out-scope outscope.txt

これらのメッセージが報告された後、同時にユーザーは Telegram で通知を受け取ります。

image

通知をどのように管理するか? 私は Discord で新しく発見されたすべてのドメインを確認する非常に簡単な(そして管理しやすい)方法を見つけました。次のようになります(すべてプライベートプログラムのためぼかし処理済み):

image

アイデアは、まずプログラム名に関するカテゴリを作成することです:

> Yahoo

--- yahoo.com

--- yahoo.net

--- etc ...

> IBM

--- ibm.com

--- whateverdomain.com

--- etc ...

私の notify 設定ファイルは次のようになります:

image

各ドメインに対してこれを行うことをお勧めします(設定するのはかなり面倒かもしれませんが、結果を管理するのに最適な方法です)。monitor.py スクリプトは、指定された ID(スキャンするドメイン名と同じである必要があります)に基づいて、結果を指定された Webhook に送信します。

ツールをダウンロード