この記事ではResponderというツールについて「概要」「インストール方法」「利用例」を書いていきます。
Responderとは
Responder は、LLMNR(Link-Local Multicast Name Resolution) や NBT-NS(NetBIOS Name Service) を悪用してネットワーク内の認証情報を盗むために使われる 攻撃ツール です。
パスワードハッシュ(NTLMv1/v2)を取得 したり、中間者攻撃(MITM)を実行 したりするために使われます。
Responderが対応している主なプロトコル
プロトコル | 説明 |
---|---|
LLMNR (UDP/5355) | Windowsの名前解決プロトコル。DNSで解決できない場合に利用される。 |
NBT-NS (UDP/137) | NetBIOS Name Service。古いWindows環境で名前解決に使用される。 |
MDNS (UDP/5353) | Multicast DNS。AppleのBonjourなど一部の環境で利用される。 |
DNS (UDP/53) | ResponderはDNSの偽サーバーとして動作し、誤った名前解決を強制できる。 |
SMB (TCP/445, TCP/139) | Windowsのファイル共有プロトコル。認証情報(NTLMハッシュ)を盗むことが可能。 |
HTTP (TCP/80, TCP/443) | NTLM認証を求める偽のHTTPサーバーを立て、認証情報を収集できる。 |
HTTPS (TCP/443) | 偽のHTTPSサーバーとして動作可能(ただし証明書がないため警告が出る)。 |
LDAP (TCP/389, TCP/636) | Active DirectoryのLDAPサーバーの偽装が可能。NTLMリレー攻撃と併用されることが多い。 |
FTP (TCP/21) | 偽のFTPサーバーを立て、クライアントの認証情報を収集可能。 |
IMAP (TCP/143, TCP/993) | メールサーバーの偽装が可能。認証情報の収集を狙う。 |
POP3 (TCP/110, TCP/995) | メール受信プロトコルの偽装が可能。 |
SMTP (TCP/25, TCP/587, TCP/465) | メール送信プロトコルの偽装が可能。 |
SQL (TCP/1433, TCP/3306) | SQLサーバー(MSSQL/MySQL)の偽装が可能。 |
RDP (TCP/3389) | 偽のRDPサーバーとして動作し、認証情報を取得できる。 |
プロトコルの用途と攻撃のポイント
FTP/IMAP/POP3/SMTP/SQL/RDP
→ これらの偽サーバーを立てることで、認証情報を盗み出すことが可能。
LLMNR/NBT-NS/MDNS
→ 名前解決の毒殺(Poisoning)に使用され、クライアントを偽のサーバーに誘導できる。
SMB/LDAP/HTTP
→ NTLM認証情報を収集し、オフラインでのパスワードクラックやNTLMリレー攻撃が可能。
🔹 基本的な動作
- Windowsは名前解決に LLMNR や NBT-NS を利用
- たとえば
\\SERVER
にアクセスしようとしてDNS解決に失敗すると、LLMNRやNBT-NSを使って解決しようとする。
- たとえば
- Responderが偽の応答を返す
- たとえば
\\FAKE-SERVER
というレスポンスを送り、クライアントを攻撃者のマシンに誘導。
- たとえば
- 認証情報(NTLMハッシュなど)を取得
- WindowsのSMB認証(NTLM)を利用して、クライアントが自動的に認証を試みる。
- その際に送信される NTLMv1/v2のハッシュを取得。
- ハッシュをクラック or リレー攻撃
john
やhashcat
でハッシュをクラックする。NTLM Relay Attack
で、取得したハッシュを使って別のシステムへログイン。
インストール方法
ResponderはKali Linuxに標準で入っています。
1️⃣ Responderのインストール(必要なら)
sudo apt install responder
2️⃣ 実行
sudo responder -I <インターフェース>
オプション
-I <インターフェース>
: どのネットワークインターフェースでリスニングするか-v
: 詳細なログを表示-rd
:rd
(Responder Database)をクリアして開始
利用例
LDAPの疑似サーバ
LDAPの疑似サーバとして利用しました。
この例ではBindRequest内にプレーンで認証情報を送ってきており、シェルゲットに繋がりました。(HTB Return)
この時の記事は下記です。