
CVE-2021-34527は、「PrintNightmare」と呼ばれる重大なリモートコード実行およびローカル権限昇格の脆弱性です。
CVE-2021-34527 は、「PrintNightmare」と呼ばれる重要なリモートコード実行およびローカル特権昇格の脆弱性です。
リモートコード実行機能のための概念実証エクスプロイト(Python、C++)と、ローカル特権昇格のためのC#版が公開されています。純粋なPowerShellでのネイティブ実装を見たことがなかったため、エクスプロイトを改良・再構築してみようと思いました。
このPowerShellスクリプトは、PrintNightmare攻撃手法を使用してローカル特権昇格(LPE)を実行します。
これはWindows Server 2016およびWindows Server 2019でテストされています。
デフォルトでローカル管理者グループに新しいユーザーを追加します:
Invoke-Nightmare # add user `adm1n`/`P@ssw0rd` in the local admin group by default
Invoke-Nightmare -DriverName "Xerox" -NewUser "K1LL9" -NewPassword "SuperSecure1o1"
カスタムDLLペイロードを指定して、他の任意の操作を行うこともできます。
Import-Module .\cve-2021-34527.ps1
Invoke-Nightmare -DLL "C:\absolute\path\to\your\bindshell.dll"
LPE手法は、リモートRPCやSMBを必要とせず、Print Spoolerの機能のみを使用します。 このスクリプトには、カスタムDLL用のBase64エンコードされたGZIP圧縮ペイロードが埋め込まれており、引数に応じてパッチが適用され、ローカル管理者グループに新しいユーザーを簡単に追加できます。 このスクリプトは、PowerSploit/PowerUpのメソッドを埋め込んで、Win32 APIをリフレクティブにアクセスします。 この方法では、適切なDLLパスを見つけるためにすべてのプリンタードライバーをループせず、最初のドライバーを取得して適切なパスを決定します。