
PrintNightmare(CVE-2021-34527)를 통한 로컬 권한 상승을 위한 PowerShell 스크립트. 원격 RPC/SMB 없이 Print Spooler API를 활용하여 사용자 지정 DLL 페이로드를 주입하여 로컬 관리자 사용자를 추가합니다.
Caleb Stewart | John Hammond | 2021년 6월 1일
2021년 6월 2일 업데이트: Microsoft가 CVE-2021-34527에 대한 권고를 발표하여, 해당 특정 식별자를 PrintNightmare 취약점 익스플로잇으로 올바르게 명명했습니다. 이전에는 커뮤니티에서 CVE-2021-1675가 "PrintNightmare"라고 가정했지만, 6월 8일 패치가 이 문제를 해결하지 못했습니다. 이 저장소는 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"