
PowerShell による PrintNightmare (CVE-2021-34527) のローカル特権昇格エクスプロイト。Windows Print Spooler を標的とします。カスタム DLL ペイロードを埋め込み、リフレクティブ Win32 API 呼び出しを介してローカル管理者ユーザーを追加します。
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"