Spoofing LLMNR, NBT-NS, mDNS/DNS and WPAD and Relay Attacks
AWSハッキングの学習と練習:HackTricks Training AWS Red Team Expert (ARTE) GCPハッキングの学習と練習: HackTricks Training GCP Red Team Expert (GRTE)
ネットワークプロトコル
ローカルホスト解決プロトコル
LLMNR、NBT-NS、およびmDNS:
Microsoftおよび他のオペレーティングシステムは、DNSが失敗した場合にローカル名の解決にLLMNRおよびNBT-NSを使用します。同様に、AppleおよびLinuxシステムはmDNSを使用します。
これらのプロトコルは、UDPを介した認証されていないブロードキャスト性質のため、傍受およびスプーフィングの対象となります。
Responderを使用して、これらのプロトコルをクエリするホストに偽の応答を送信してサービスをなりすますことができます。
Responderを使用したサービスなりすましの詳細についてはこちらを参照してください。
Web Proxy Auto-Discovery Protocol (WPAD)
WPADはブラウザがプロキシ設定を自動的に検出することを可能にします。
検出は、DHCP、DNS、またはDNSが失敗した場合はLLMNRおよびNBT-NSを介して行われます。
Responderを使用してWPAD攻撃を自動化し、クライアントを悪意のあるWPADサーバに誘導することができます。
プロトコル毒入れのためのResponder
Responderは、LLMNR、NBT-NS、およびmDNSクエリを毒入れするためのツールであり、クエリの種類に基づいて選択的に応答し、主にSMBサービスを対象としています。
Kali Linuxには事前にインストールされており、
/etc/responder/Responder.conf
で設定可能です。Responderはキャプチャしたハッシュを画面に表示し、
/usr/share/responder/logs
ディレクトリに保存します。IPv4およびIPv6の両方をサポートしています。
ResponderのWindowsバージョンはこちらで入手できます。
Responderの実行
デフォルト設定でResponderを実行するには:
responder -I <Interface>
より積極的なプロービングを行う場合(潜在的な副作用がある):
responder -I <Interface> -P -r -v
NTLMv1のチャレンジ/レスポンスをキャプチャしてクラックを容易にするためのテクニック:
responder -I <Interface> --lm --disable-ess
WPADなりすましを有効にするには:
responder -I <Interface> --wpad
NetBIOSリクエストを攻撃者のIPに解決し、認証プロキシを設定することができます:
responder.py -I <interface> -Pv
Responderを使用したDHCP毒入れ
DHCP応答のスプーフィングは、被害者のルーティング情報を永続的に毒入れし、ARP毒入れに対するより隠れた代替手段を提供します。
ターゲットネットワークの構成について正確な知識が必要です。
攻撃の実行:
./Responder.py -I eth0 -Pdv
この方法は効果的にNTLMv1/2ハッシュをキャプチャできますが、ネットワークの混乱を避けるために注意深く取り扱う必要があります。
Responderを使用した資格情報のキャプチャ
Responderは上記のプロトコルを使用してサービスをなりすまし、ユーザーがなりすましサービスに認証しようとするときに資格情報(通常はNTLMv2チャレンジ/レスポンス)をキャプチャします。
クレデンシャルのクラックを容易にするために、NetNTLMv1にダウングレードしたり、ESSを無効にしたりする試みが行われることがあります。
これらの技術を使用する際は、適切な承認を得て合法的かつ倫理的に行い、混乱や不正アクセスを避けるようにすることが重要です。
Inveigh
Inveighは、Windowsシステム向けに設計されたペネトレーションテスターおよびレッドチーム向けのツールです。Responderと同様の機能を提供し、スプーフィングおよび中間者攻撃を実行します。このツールはPowerShellスクリプトからC#バイナリに進化し、InveighおよびInveighZeroが主要なバージョンとして提供されています。詳細なパラメータと手順についてはwikiを参照してください。
InveighはPowerShellを介して操作することができます:
またはC#バイナリとして実行されます:
NTLM Relay Attack
この攻撃は、SMB認証セッションを利用してターゲットマシンにアクセスし、成功するとシステムシェルを取得します。主な前提条件は次のとおりです:
認証ユーザーはリレーされたホストでのローカル管理者アクセスを持っている必要があります。
SMB署名は無効にする必要があります。
445ポートのフォワーディングとトンネリング
直接ネットワーク導入が困難なシナリオでは、ポート445のトラフィックをフォワーディングおよびトンネリングする必要があります。PortBenderのようなツールは、ポート445のトラフィックを別のポートにリダイレクトするのに役立ちます。これは、ローカル管理者アクセスがドライバーのロードに利用可能な場合に重要です。
Cobalt StrikeでのPortBenderのセットアップと操作:
NTLM Relay Attackのためのその他のツール
Metasploit: プロキシ、ローカルおよびリモートホストの詳細を設定します。
smbrelayx: SMBセッションを中継し、コマンドを実行したりバックドアを展開したりするためのPythonスクリプトです。
MultiRelay: 特定のユーザーまたはすべてのユーザーを中継し、コマンドを実行したりハッシュをダンプしたりするResponderスイートからのツールです。
必要に応じて各ツールはSOCKSプロキシを介して操作するように構成でき、間接的なネットワークアクセスでも攻撃を可能にします。
MultiRelayの操作
MultiRelayは /usr/share/responder/tools ディレクトリから実行され、特定のIPアドレスまたはユーザーを対象とします。
NTLMリレーアタックを実行するための包括的なセットを形成するこれらのツールとテクニック。
NTLMログインを強制する
Windowsでは、特権アカウントの一部を任意のマシンに認証させることができる場合があります。次のページを読んで詳細を学んでください:
Force NTLM Privileged Authentication参考文献
AWSハッキングを学んで実践:HackTricks Training AWS Red Team Expert (ARTE) GCPハッキングを学んで実践:HackTricks Training GCP Red Team Expert (GRTE)
Last updated