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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
exchange-scanner — 公開されているMicrosoft Exchangeサーバーを特定し、そのソフトウェアバージョンを判別します | Kitploit
ツール/GitHubGitHub/bishopfox/exchange-scanner
偵察脆弱性スキャナー脆弱性分析情報収集ウェブセキュリティメールセキュリティ
GitHubbishopfox/exchange-scanner

exchange-scanner

公開されているMicrosoft Exchangeサーバーを特定し、そのソフトウェアバージョンを判別します

リポジトリを見る
12ヶ月前未レビュー

人気

すべて見る →

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

すべてのツールを探索

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

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

Microsoft Exchange Server スキャナ

スキャン例

説明

このツールは、対象ホスト上のいくつかの一般的な公開サービスをスキャンして、Microsoft Exchange Server を検出し、可能であればそのソフトウェアバージョンをフィンガープリントします。

これを実現するために、以下の手法を使用します。

  • レスポンスヘッダー、ログインページのコンテンツ、favicon ハッシュによる Outlook Web Access (OWA) のフィンガープリント
  • XML レスポンスによる Exchange Control Panel (ECP) エクスポートツールのフィンガープリント
  • レスポンスヘッダーによる Autodiscover エンドポイントのフィンガープリント
  • 一般的なポートにおける SMTP、IMAP、POP3 のサービスバナーによるサービスフィンガープリント

検出されたビルド番号は、Microsoft からスクレイピングされたバージョンテーブルと照合されます。このテーブルは、Exchange Server 5.5 から Exchange Server Subscription Edition (SE) までのすべてのリリースをカバーし、Service Pack (SP)、Cumulative Update (CU)、Security Update (SU)、Hotfix Update (HU)、Update Rollup (RU) レベルを含みます。一致した場合は、製品名、リリース日、NVD 辞書形式の CPE 文字列が報告されます。

はじめに

前提条件

スキャナーを実行する推奨方法は Docker です。Docker 自体以外のローカル依存関係は不要です。代わりにスクリプトを直接実行する場合は、64 ビットの Debian Linux での使用を想定して設計されていますが、Python 3、dnsx、fingerprintx がサポートする Linux ディストリビューションであれば(インストールスクリプトに若干の変更を加えることで)動作するはずです。

インストール

Docker(推奨)

イメージをビルドします。このイメージには Python、固定された Python パッケージ、バージョン固定された dnsx および fingerprintx バイナリがバンドルされており、ビルド時に Microsoft から Exchange Server のバージョンテーブルをスクレイピングします。

root@kitploit:~
docker build -t exchange-scanner .

次に、スクリプトに渡すのと同じ引数を指定してスキャナーを実行します(引数の詳細は後述の「使用法」を参照してください)。

root@kitploit:~
# Scan a single target
docker run --rm exchange-scanner -q -t 192.168.5.3

# Scan a list of targets (mount the file into the container)
docker run --rm -v "$PWD/targets.txt:/app/targets.txt" exchange-scanner -l targets.txt

バージョンテーブルを更新するには、イメージを再ビルドしてください。

手動インストール

scripts/install-requirements.sh を実行して、必要なツール、パッケージ、その他の依存関係をインストールします。Python パッケージは scripts/requirements.txt で特定のバージョンに固定されています。

scripts/get-exchange-versions.py をいつでも個別に再実行して、exchange-versions.json にあるソフトウェアバージョンテーブルを更新できます。

使用法

exchange-scanner.py スクリプトを -h 付きで実行すると、使用法の詳細が表示されます。

root@kitploit:~
❯ ./exchange-scanner.py -h
usage: exchange-scanner.py [-h] [-q] [-d] [-x TIMEOUT] [-o OUTFILE] (-t TARGET | -l LIST)

optional arguments:
  -h, --help            show this help message and exit
  -q, --quiet           Suppress log output (except errors)
  -d, --debug           Print debugging messages
  -x TIMEOUT, --timeout TIMEOUT
                        Set timeout for HTTP requests (defaults to 3 seconds)
  -o OUTFILE, --outfile OUTFILE
                        Save output to a file instead of writing to stdout
  -t TARGET, --target TARGET
                        A single hostname or IP address to scan
  -l LIST, --list LIST  File containing a list of hostnames and/or IP addresses to scan (one per line)

必須: -t または -l

  • 単一のターゲットをスキャンするには、-t に単一のホスト名または IP アドレスを指定します。ホスト名が複数の IP に解決される場合、スクリプトはそれぞれを個別にスキャンします。
  • 複数のターゲットを一度にスキャンするには、1 行に 1 つのホスト名または IP アドレスを記載したファイルを作成し、-l にそのファイル名を指定します。

ログ: ほとんどのログ出力を抑制するには -q を使用します。より詳細なログを表示するには -d を使用します。

タイムアウト: HTTP リクエストごとの最大応答時間を変更するには、タイムアウト値を秒単位で指定します(デフォルトは 3 秒)。特定の状況では単一の IP アドレスに対して 200 を超えるリクエストが発生する可能性があることに注意してください(ただし、ほとんどのスキャンはこの量に達しません)。そのため、一般的には短いタイムアウトが推奨されます。

出力: スキャン結果はデフォルトで JSON 形式で出力されます。stdout に出力する代わりにファイルへ保存するには、-o にファイル名を指定します。

例

root@kitploit:~
$ ./exchange-scanner.py -q -t 192.168.5.3
[
    {
        "hostname": "192.168.5.3",
        "ip_address": "192.168.5.3",
        "build_number": "15.2.1118",
        "exchange_services": [
            "https://192.168.5.3:443",
            "imaps://192.168.5.3:993"
        ],
        "product_name": "Exchange Server 2019 CU12 (2022H1)",
        "major_version": "2019",
        "update": "Cumulative Update 12",
        "security_update": null,
        "release_date": "2022-04-20",
        "recalled": false,
        "cpes": [
            "cpe:2.3:a:microsoft:exchange_server:2019:cumulative_update_12:*:*:*:*:*:*",
            "cpe:2.3:a:microsoft:outlook_web_access:2019:cumulative_update_12:*:*:*:*:*:*"
        ]
    }
]

その他

法的免責事項

事前の相互同意なしにターゲットを攻撃する目的でこのツールを使用することは違法です。適用されるすべての地方、州、連邦の法律を遵守する責任はエンドユーザーにあります。開発者は一切の責任を負わず、このプログラムによって引き起こされた誤用や損害についても責任を負いません。

ライセンス

このプロジェクトは GNU General Public License の下でライセンスされています。

機能と制限事項

  • 現在、スキャナーはデフォルトサービスのデフォルトポートのみをチェックします。
  • ターゲットが外部の視点からスキャンされることを前提としています。
  • 部分的なビルド番号が見つかった場合、バージョンを特定するためにファジーマッチングを使用します。
  • また、Microsoft がリコールした更新プログラムを、出力の recalled フィールドでフラグ付けします。
  • CPE 文字列は NVD CPE 辞書 形式に従います。NVD 辞書は更新を CU/SP/RU レベルまでしか追跡しないため(SU/HU は追跡しません)、これらの CPE はベストエフォートであり、辞書エントリと完全に一致しない場合があります。検出された完全な詳細(正確なビルド番号、SU/HU レベル)は、他の結果フィールドに保持されます。
ツールをダウンロード