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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
MSFinger — Microsoft ネットワーク サービス フィンガープリンティング ツール | Kitploit
ツール/GitHubGitHub/secorizon/msfinger
偵察ネットワークマッピング脆弱性分析情報収集ペネトレーションテストDNS分析
GitHubsecorizon/msfinger

MSFinger

Microsoft ネットワーク サービス フィンガープリンティング ツール

リポジトリを見る
75748ヶ月前Kitploit レビュー済み

人気

すべて見る →

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

すべてのツールを探索

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

すべてのツールを見る →
共有
ウェブサイト

MSFinger - Microsoft ネットワークサービスフィンガープリンティングツール

バージョン: 1.0
著者: Laurent Gaffie
会社: Secorizon

概要

MSFinger は、内部ネットワークの偵察(リコンサンス)向けに設計された高性能ネットワークフィンガープリンティングツールです。SMB、LDAP、LDAPS プロトコル全体で Microsoft サービスを迅速に識別し、セキュリティ設定を検出して、潜在的な脆弱性を強調表示します。

主な特徴:

  • 内部ネットワーク向けに最適化された高速な並行スキャン(デフォルトのタイムアウトは1秒)
  • SMB/SMB2/SMB3 のバージョンと署名(サイニング)の検出
  • LDAP/LDAPS の署名とチャネルバインディングの検出
  • ビルド番号のマッピングによる OS バージョンの特定
  • スキャン結果を永続保存する SQLite データベース
  • セキュリティリスクを強調する色分けされた出力
  • 単一 IP、CIDR レンジ、IP レンジ、ファイル入力のサポート

インストール

MSFinger は純粋な Python で書かれています。Python 3.6+ 以外の追加依存関係は必要ありません。

root@kitploit:~
cd /path/to/MSFinger
chmod +x MSFinger.py

使い方

基本構文

root@kitploit:~
python3 MSFinger.py -i <target> [options]

コマンドラインオプション

* -i または -f のいずれかを指定する必要があります


使用例

単一ホストのスキャン

root@kitploit:~
python3 MSFinger.py -i 192.168.1.10

サブネットスキャン(CIDR)

root@kitploit:~
python3 MSFinger.py -i 192.168.1.0/24

IP レンジスキャン

root@kitploit:~
python3 MSFinger.py -i 192.168.1.1-50

ファイルからの複数レンジのスキャン

root@kitploit:~
python3 MSFinger.py -f targets.txt

targets.txt の例:

root@kitploit:~
192.168.1.0/24
10.0.0.1-100
172.16.5.50
# Comments are supported
192.168.2.0/25

カスタムタイムアウトとワーカー数

root@kitploit:~
# Faster scan with shorter timeout and more workers
python3 MSFinger.py -i 10.0.0.0/16 -t 0.3 -w 200

# More reliable scan with longer timeout
python3 MSFinger.py -i 192.168.1.0/24 -t 1.0 -w 50

カスタムデータベース

root@kitploit:~
python3 MSFinger.py -i 192.168.1.0/24 -d pentest_2026.db

色の無効化(ログ記録用)

root@kitploit:~
python3 MSFinger.py -i 192.168.1.0/24 --no-color > scan_results.txt

出力形式

コンソール出力

結果は色分けされたセキュリティインジケーターとともにリアルタイムで表示されます:

root@kitploit:~
[192.168.1.10] SMB: 3.1.1, Signing: required, OS: Windows Server 2022 21H2, Domain: CORP.LOCAL, Boot: 2026-01-01 10:30:15 | SMB1: disabled | Services: RDP, LDAP (signing: required), LDAPS (signing: required, channel binding: required)

色分け

  • 🟢 緑: 安全な構成(署名必須)
  • 🟡 黄: 警告(有効だが必須ではない、またはポートが開いているがエラーあり)
  • 🔴 赤: 脆弱(署名が無効、または必須ではない)
  • 🔵 青: 情報(SMB1 無効、サービスステータス)

出力フィールド

SMB 情報:

  • SMB: X.X.X - SMB ダイアレクトバージョン(2.0.2、2.1、3.0、3.0.2、3.1.1)
  • Signing: <status> - required(必須)/enabled(有効)/disabled(無効)
  • OS: <version> - ビルド番号付きの Windows バージョン
  • Domain: <name> - NetBIOS ドメイン/ワークグループ名
  • Boot: <time> - システム起動時間(または Disabled/Unknown)

SMB1 ステータス:

  • SMB1: disabled - SMB1 非対応(安全)
  • SMB1: supported, Signing: <status> - SMB1 有効(潜在的なリスク)

サービス:

  • RDP - リモートデスクトッププロトコル(ポート3389)が開いている
  • MSSQL - Microsoft SQL Server(ポート1433)が開いている
  • LDAP (signing: <status>) - ポート389の LDAP
  • LDAPS (signing: <status>, channel binding: <status>) - ポート636の LDAPS
  • LDAPS (port open, <error>) - LDAPS ポートは応答するが SSL ハンドシェイクに失敗

データベーススキーマ

MSFinger はすべてのスキャン結果を、永続保存と分析のために SQLite データベースに保存します。

テーブル: hosts

データベースの動作

  • 既存のデータベース: レコードは最新のスキャンデータで更新されます(アップサート操作)
  • 新しいデータベース: 適切なスキーマで自動的に作成されます
  • 重複 IP: 同じ IP の以前のデータは最後のスキャン結果で上書きされます

データベースのクエリ

root@kitploit:~
# View all vulnerable hosts (no SMB signing)
sqlite3 MSFinger.db "SELECT ip, os_version, smb_signing FROM hosts WHERE smb_signing != 'required'"

# Find hosts with LDAP signing disabled
sqlite3 MSFinger.db "SELECT ip, domain, ldap_signing FROM hosts WHERE ldap_signing = 'not_required'"

# List all Windows Server 2022 hosts
sqlite3 MSFinger.db "SELECT ip, os_version, domain FROM hosts WHERE os_version LIKE '%Server 2022%'"

# Export to CSV
sqlite3 -header -csv MSFinger.db "SELECT * FROM hosts" > results.csv

# Count hosts by OS
sqlite3 MSFinger.db "SELECT os_version, COUNT(*) FROM hosts GROUP BY os_version"

検出の詳細

SMB/SMB2/SMB3 の検出

テストされるプロトコル:

  • SMB1(レガシープロトコル。有効な場合、セキュリティリスク)
  • SMB2/3(複数のダイアレクトを持つ最新プロトコル)

収集される情報:

  1. ダイアレクトバージョン: 2.0.2、2.1、3.0、3.0.2、3.1.1
  2. 署名ステータス:
    • required - サーバーがメッセージ署名を必須とする(安全)
    • enabled - サーバーは署名をサポートするが必須ではない
    • disabled - 署名をサポートしていない(脆弱)
  3. OS バージョン: NTLMSSP チャレンジから抽出
  4. ビルド番号: 正確なバージョン識別のための Windows ビルド番号
  5. ドメイン: NetBIOS ドメインまたはワークグループ名
  6. 起動時間: システム起動タイムスタンプ(利用可能な場合)

OS バージョンのマッピング:

LDAP の検出(ポート389)

匿名バインドをテストして署名要件を判定します:

  • 結果コード 0: 成功 - 署名は必須ではない(リレー攻撃に対して脆弱)
  • 結果コード 8: 強力な認証が必要 - 署名は必須(安全)
  • その他のコード: さまざまな認証エラー

LDAPS の検出(ポート636)

LDAP バインドを使用した SSL/TLS 接続をテストします:

  1. SSL ハンドシェイク: 幅広い暗号スイートを許可して TLS 接続を試行
  2. 署名の検出: SSL 経由の LDAP メッセージ署名をテスト
  3. チャネルバインディング: TLS チャネルバインディングが強制されているか検出

考えられる結果:

  • signing: required, channel binding: required - 最大限のセキュリティ(安全)
  • signing: not_required, channel binding: not_required - 保護なし(脆弱)
  • port open, SSL handshake failed - ポートは応答するが SSL ネゴシエーションに失敗
  • port open, Connection error: 104 - 接続がピアによってリセットされた

セキュリティ分析

重大な発見(🔴 赤)

SMB 署名の無効化:

  • SMB リレー攻撃に対して脆弱
  • 攻撃者は認証を傍受してリレーできる
  • 推奨事項: グループポリシーを使用して SMB 署名を有効にする

LDAP 署名が必須ではない:

  • LDAP リレー攻撃に対して脆弱
  • 資格情報が他のサービスにリレーされる可能性がある
  • 推奨事項: レジストリで LdapEnforceChannelBinding=2 と LDAPServerIntegrity=2 を設定する

チャネルバインディングなしの LDAPS:

  • 暗号化されているにもかかわらず LDAPS リレーに対して脆弱
  • 推奨事項: 認証用拡張保護(Extended Protection for Authentication)を有効にする

警告(🟡 黄)

SMB 署名が有効(必須ではない):

  • 無効よりは良いが強制されていない
  • クライアントは署名しないことを選択できる
  • 推奨事項: 「enabled」から「required」に変更する

SMB1 のサポート:

  • 既知の脆弱性があるレガシープロトコル
  • レガシーシステムで必要でない限り無効にするべき
  • 推奨事項: PowerShell またはグループポリシーを使用して SMBv1 を無効にする

良好な構成(🟢 緑)

SMB 署名が必須:

  • すべての SMB トラフィックが暗号的に署名される
  • リレー攻撃を防ぐ

LDAP/LDAPS 署名が必須:

  • LDAP メッセージが署名される
  • 改ざんとリレーから保護する

チャネルバインディングの強制:

  • TLS チャネルバインディングが SSL リレーを防ぐ
  • LDAPS セキュリティの最高レベル

パフォーマンスチューニング

タイムアウトの推奨値

ネットワークタイプ

メモリに関する考慮事項

各ワーカーは最小限のメモリ(約1〜2MB)を消費します。システムリソースに応じてワーカー数を調整してください:

root@kitploit:~
# High-performance scan (requires good CPU/RAM)
python3 MSFinger.py -i 10.0.0.0/8 -t 0.5 -w 500

# Conservative scan (low resource usage)
python3 MSFinger.py -i 192.168.0.0/16 -t 2.0 -w 50

トラブルシューティング

結果が表示されない場合

  1. ネットワーク接続を確認:

    root@kitploit:~
    ping <target_ip>
    telnet <target_ip> 445
    
  2. タイムアウトを増やす:

    root@kitploit:~
    python3 MSFinger.py -i <target> -t 3.0
    
  3. ファイアウォールのルールを確認:

    • ポート 445、389、636、3389、1433 にアクセスできることを確認する
    • ホストベースのファイアウォールがスキャンをブロックしていないことを確認する

LDAPS 接続エラー

"SSL handshake failed" または "Connection error: 104":

  • サーバーがクライアント証明書認証を要求している可能性がある
  • サーバーが標準外の SSL/TLS 構成を使用している可能性がある
  • 診断には openssl s_client -connect <ip>:636 を試す

データベースがロックされている場合

複数のプロセスからスキャンする場合:

root@kitploit:~
# Use different database files
python3 MSFinger.py -i 192.168.1.0/24 -d scan1.db &
python3 MSFinger.py -i 192.168.2.0/24 -d scan2.db &

権限エラー

スクリプトに実行権限があることを確認してください:

root@kitploit:~
chmod +x MSFinger.py

連携例

Nmap との連携

まず稼働中の SMB ホストを特定し、その後フィンガープリントします:

root@kitploit:~
nmap -p445 --open -oG - 192.168.1.0/24 | awk '/445\/open/{print $2}' > smb_hosts.txt
python3 MSFinger.py -f smb_hosts.txt

スケジュールされたスキャン

cron を使用してネットワークの変更を監視します:

root@kitploit:~
# Add to crontab (every day at 2 AM)
0 2 * * * /usr/bin/python3 /path/to/MSFinger.py -i 192.168.1.0/24 -d /var/scans/daily_scan.db

PowerShell エクスポート

PowerShell からクエリを実行して修復します:

root@kitploit:~
# Install SQLite PowerShell module
Install-Module -Name SimplySql

# Query vulnerable hosts
Open-SQLiteConnection -DataSource "MSFinger.db"
$vulnerable = Invoke-SqlQuery -Query "SELECT ip FROM hosts WHERE smb_signing != 'required'"
Close-SqlConnection

# Remediate
foreach ($host in $vulnerable) {
    Set-SmbServerConfiguration -ComputerName $host.ip -RequireSecuritySignature $true -Force
}

クレジット

著者: Laurent Gaffie ([email protected])
ライセンス: GNU General Public License v3.0


ライセンス

このプログラムはフリーソフトウェアです。フリーソフトウェア財団によって発行された GNU 一般公衆利用許諾書(GNU General Public License)バージョン3、または(選択により)それ以降のバージョンの条項に基づいて、これを再頒布および/または改変することができます。

このプログラムは、有用であることを期待して頒布されますが、いかなる保証もありません。商品性または特定目的への適合性についての暗黙の保証も含め、一切の保証なしに頒布されます。詳細については GNU 一般公衆利用許諾書を参照してください。

ツールをダウンロード
オプション説明デフォルト
-i, --ip対象の IP、CIDR レンジ、または IP レンジ必須*
-f, --file対象を1行に1つずつ記述したファイル必須*
-t, --timeout接続タイムアウト(秒)1.0
-w, --workers同時実行ワーカー数100
-d, --database結果を保存する SQLite データベースファイルMSFinger.db
--no-color色付き出力を無効にする無効
列型説明
idINTEGER主キー(自動インクリメント)
ipTEXTIP アドレス(一意)
hostnameTEXTホスト名(将来の使用のために予約済み)
os_versionTEXTオペレーティングシステムのバージョン
os_buildINTEGEROS ビルド番号
domainTEXTドメイン/ワークグループ名
boot_timeTEXTシステム起動タイムスタンプ
smb_dialectTEXTSMB プロトコルバージョン
smb_signingTEXTSMB 署名ステータス
smb1_supportedINTEGERSMB1 有効(0=いいえ、1=はい)
smb1_signingTEXTSMB1 署名ステータス
rdp_openINTEGERRDP ポートが開いている(0=いいえ、1=はい)
mssql_openINTEGERMSSQL ポートが開いている(0=いいえ、1=はい)
ldap_signingTEXTLDAP 署名ステータス
ldaps_signingTEXTLDAPS 署名ステータス
ldaps_channel_bindingTEXTLDAPS チャネルバインディングステータス
ldaps_errorTEXTLDAPS 接続エラー(ある場合)
scan_timeTIMESTAMP最初のスキャンのタイムスタンプ
last_seenTIMESTAMP最新のスキャンのタイムスタンプ
ビルド範囲オペレーティングシステム
10240Windows 10 1507
14393Windows 10 1607 / Server 2016
17763Windows 10 1809 / Server 2019
19041-19045Windows 10 20H2 - 22H2
20348Windows Server 2022 21H2
22000+Windows 11
25398Windows Server 2025
推奨タイムアウト
ワーカー数
高速な内部 LAN(1Gbps以上)0.5秒200-300
通常の内部ネットワーク1.0秒(デフォルト)100-150
低速/ワイヤレスネットワーク2.0〜3.0秒50-100
VPN 接続3.0〜5.0秒30-50