Translated ['windows-hardening/windows-local-privilege-escalation/privil

This commit is contained in:
Translator 2024-06-17 08:59:15 +00:00
parent 16891a421c
commit 6d6b6764bb

View file

@ -1,12 +1,12 @@
# Abusing Tokens
# Abuso di Token
<details>
<summary><strong>Impara l'hacking AWS da zero a eroe con</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary><strong>Impara l'hacking AWS da zero a eroe con</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Esperto Red Team AWS di HackTricks)</strong></a><strong>!</strong></summary>
* Lavori in una **azienda di sicurezza informatica**? Vuoi vedere la **tua azienda pubblicizzata su HackTricks**? o vuoi avere accesso all'**ultima versione del PEASS o scaricare HackTricks in PDF**? Controlla i [**PIANI DI ABBONAMENTO**](https://github.com/sponsors/carlospolop)!
* Scopri [**La Famiglia PEASS**](https://opensea.io/collection/the-peass-family), la nostra collezione esclusiva di [**NFT**](https://opensea.io/collection/the-peass-family)
* Ottieni il [**merchandising ufficiale di PEASS & HackTricks**](https://peass.creator-spring.com)
* Scopri [**La Famiglia PEASS**](https://opensea.io/collection/the-peass-family), la nostra collezione di [**NFT esclusivi**](https://opensea.io/collection/the-peass-family)
* Ottieni il [**merchandising ufficiale PEASS & HackTricks**](https://peass.creator-spring.com)
* **Unisciti al** [**💬**](https://emojipedia.org/speech-balloon/) [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguimi** su **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Condividi i tuoi trucchi di hacking inviando PR al** [**repo hacktricks**](https://github.com/carlospolop/hacktricks) **e al** [**repo hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
@ -14,13 +14,13 @@
## Token
Se **non sai cos'è un Token di Accesso Windows**, leggi questa pagina prima di continuare:
Se **non sai cos'è un Token di Accesso Windows** leggi questa pagina prima di continuare:
{% content-ref url="access-tokens.md" %}
[access-tokens.md](access-tokens.md)
{% endcontent-ref %}
**Potresti essere in grado di elevare i privilegi abusando dei token che possiedi già**
**Forse potresti essere in grado di elevare i privilegi abusando dei token che hai già**
### SeImpersonatePrivilege
@ -42,11 +42,11 @@ Con il token, è possibile creare un **nuovo processo** con 'CreateProcessAsUser
### SeTcbPrivilege
Se hai abilitato questo token, puoi utilizzare **KERB\_S4U\_LOGON** per ottenere un **token di impersonificazione** per qualsiasi altro utente senza conoscere le credenziali, **aggiungere un gruppo arbitrario** (amministratori) al token, impostare il **livello di integrità** del token a "**medio**" e assegnare questo token al **thread corrente** (SetThreadToken).
Se hai abilitato questo token puoi utilizzare **KERB\_S4U\_LOGON** per ottenere un **token di impersonificazione** per qualsiasi altro utente senza conoscere le credenziali, **aggiungere un gruppo arbitrario** (amministratori) al token, impostare il **livello di integrità** del token a "**medio**" e assegnare questo token al **thread corrente** (SetThreadToken).
### SeBackupPrivilege
Il sistema è portato a **concedere tutti i diritti di accesso in lettura** a qualsiasi file (limitato alle operazioni di lettura) con questo privilegio. Viene utilizzato per **leggere gli hash delle password degli account Amministratori locali** dal registro, a seguito del quale, strumenti come "**psexec**" o "**wmicexec**" possono essere utilizzati con l'hash (tecnica Pass-the-Hash). Tuttavia, questa tecnica fallisce in due condizioni: quando l'account Amministratore locale è disabilitato, o quando è in atto una policy che rimuove i diritti amministrativi dagli Amministratori locali che si connettono in remoto.\
Il sistema è portato a **concedere tutti i diritti di lettura** a qualsiasi file (limitato alle operazioni di lettura) con questo privilegio. Viene utilizzato per **leggere gli hash delle password degli account Amministratori locali** dal registro, a seguito del quale, strumenti come "**psexec**" o "**wmicexec**" possono essere utilizzati con l'hash (tecnica Pass-the-Hash). Tuttavia, questa tecnica fallisce in due condizioni: quando l'account Amministratore locale è disabilitato, o quando è in atto una policy che rimuove i diritti amministrativi dagli Amministratori locali che si connettono in remoto.\
Puoi **abusare di questo privilegio** con:
* [https://github.com/Hackplayers/PsCabesha-tools/blob/master/Privesc/Acl-FullControl.ps1](https://github.com/Hackplayers/PsCabesha-tools/blob/master/Privesc/Acl-FullControl.ps1)
@ -60,7 +60,7 @@ Puoi **abusare di questo privilegio** con:
### SeRestorePrivilege
Il permesso di **accesso in scrittura** a qualsiasi file di sistema, indipendentemente dalla lista di controllo degli accessi (ACL) del file, è fornito da questo privilegio. Apre numerose possibilità di escalation, inclusa la capacità di **modificare servizi**, eseguire DLL Hijacking e impostare **debugger** tramite Image File Execution Options tra varie altre tecniche.
Il permesso di **accesso in scrittura** a qualsiasi file di sistema, indipendentemente dalla Lista di Controllo Accessi (ACL) del file, è fornito da questo privilegio. Apre numerose possibilità di escalation, inclusa la capacità di **modificare i servizi**, eseguire DLL Hijacking e impostare **debugger** tramite Image File Execution Options tra varie altre tecniche.
### SeCreateTokenPrivilege
@ -70,7 +70,7 @@ SeCreateTokenPrivilege è un permesso potente, particolarmente utile quando un u
* **Impersonificazione senza SeImpersonatePrivilege:** È possibile sfruttare SeCreateTokenPrivilege per l'EoP impersonando token in condizioni specifiche.
* **Condizioni per l'Impersonificazione del Token:** L'impersonificazione riuscita richiede che il token di destinazione appartenga allo stesso utente e abbia un livello di integrità inferiore o uguale a quello del processo che tenta l'impersonificazione.
* **Creazione e Modifica di Token di Impersonificazione:** Gli utenti possono creare un token di impersonificazione e potenziarlo aggiungendo l'SID (Identificatore di Sicurezza) di un gruppo privilegiato.
* **Creazione e Modifica di Token di Impersonificazione:** Gli utenti possono creare un token di impersonificazione e potenziarlo aggiungendo l'ID del gruppo privilegiato (Security Identifier).
### SeLoadDriverPrivilege
@ -87,7 +87,6 @@ Questo percorso è `\Registry\User\<RID>\System\CurrentControlSet\Services\Drive
2. Creare il percorso `\Registry\User\<RID>\System\CurrentControlSet\Services\DriverName` all'interno di `HKCU`, dove `<RID>` rappresenta l'Identificatore Relativo dell'utente corrente.
3. Impostare `ImagePath` sul percorso di esecuzione del binario.
4. Assegnare il `Type` come `SERVICE_KERNEL_DRIVER` (`0x00000001`).
```python
# Example Python code to set the registry values
import winreg as reg
@ -99,13 +98,11 @@ reg.SetValueEx(key, "ImagePath", 0, reg.REG_SZ, "path_to_binary")
reg.SetValueEx(key, "Type", 0, reg.REG_DWORD, 0x00000001)
reg.CloseKey(key)
```
Altri modi per abusare di questo privilegio sono disponibili in [https://www.ired.team/offensive-security-experiments/active-directory-kerberos-abuse/privileged-accounts-and-token-privileges#seloaddriverprivilege](https://www.ired.team/offensive-security-experiments/active-directory-kerberos-abuse/privileged-accounts-and-token-privileges#seloaddriverprivilege)
Altri modi per abusare di questo privilegio in [https://www.ired.team/offensive-security-experiments/active-directory-kerberos-abuse/privileged-accounts-and-token-privileges#seloaddriverprivilege](https://www.ired.team/offensive-security-experiments/active-directory-kerberos-abuse/privileged-accounts-and-token-privileges#seloaddriverprivilege)
### SeTakeOwnershipPrivilege
Questo è simile a **SeRestorePrivilege**. La sua funzione principale consente a un processo di **assumere la proprietà di un oggetto**, aggirando il requisito di accesso discrezionale esplicito attraverso la fornitura dei diritti di accesso WRITE\_OWNER. Il processo prevede prima di tutto di garantire la proprietà della chiave di registro prevista per scopi di scrittura, per poi modificare il DACL per abilitare le operazioni di scrittura.
Questo è simile a **SeRestorePrivilege**. La sua funzione principale consente a un processo di **assumere la proprietà di un oggetto**, aggirando il requisito di accesso discrezionale esplicito attraverso la fornitura di diritti di accesso WRITE\_OWNER. Il processo prevede prima di tutto di garantire la proprietà della chiave di registro prevista per scopi di scrittura, per poi modificare il DACL per abilitare le operazioni di scrittura.
```bash
takeown /f 'C:\some\file.txt' #Now the file is owned by you
icacls 'C:\some\file.txt' /grant <your_username>:F #Now you have full access
@ -121,72 +118,63 @@ icacls 'C:\some\file.txt' /grant <your_username>:F #Now you have full access
%WINDIR%\system32\config\default.sav
c:\inetpub\wwwwroot\web.config
```
### SeDebugPrivilege
Questo privilegio permette di **debuggare altri processi**, inclusa la lettura e scrittura in memoria. Diverse strategie di iniezione di memoria, capaci di eludere la maggior parte degli antivirus e delle soluzioni di prevenzione delle intrusioni degli host, possono essere utilizzate con questo privilegio.
Questo privilegio permette di **debuggare altri processi**, inclusa la lettura e scrittura in memoria. Con questo privilegio è possibile utilizzare varie strategie di iniezione di memoria, in grado di eludere la maggior parte degli antivirus e delle soluzioni di prevenzione delle intrusioni degli host.
#### Dump della memoria
Potresti utilizzare [ProcDump](https://docs.microsoft.com/en-us/sysinternals/downloads/procdump) dalla [SysInternals Suite](https://docs.microsoft.com/en-us/sysinternals/downloads/sysinternals-suite) per **catturare la memoria di un processo**. In particolare, questo può essere applicato al processo **Local Security Authority Subsystem Service (**[**LSASS**](https://en.wikipedia.org/wiki/Local\_Security\_Authority\_Subsystem\_Service)**)**, che è responsabile di memorizzare le credenziali degli utenti una volta che un utente ha effettuato correttamente l'accesso a un sistema.
Potresti utilizzare [ProcDump](https://docs.microsoft.com/en-us/sysinternals/downloads/procdump) dalla [SysInternals Suite](https://docs.microsoft.com/en-us/sysinternals/downloads/sysinternals-suite) per **catturare la memoria di un processo**. In particolare, questo può essere applicato al processo **Local Security Authority Subsystem Service (**[**LSASS**](https://en.wikipedia.org/wiki/Local\_Security\_Authority\_Subsystem\_Service)**)**, responsabile di memorizzare le credenziali degli utenti una volta che un utente ha effettuato correttamente l'accesso a un sistema.
Successivamente puoi caricare questo dump in mimikatz per ottenere le password:
```
mimikatz.exe
mimikatz # log
mimikatz # sekurlsa::minidump lsass.dmp
mimikatz # sekurlsa::logonpasswords
```
#### RCE
Se desideri ottenere una shell `NT SYSTEM` potresti utilizzare:
Se vuoi ottenere una shell `NT SYSTEM` potresti utilizzare:
* [**SeDebugPrivilege-Exploit (C++)**](https://github.com/bruno-1337/SeDebugPrivilege-Exploit)
* [**SeDebugPrivilegePoC (C#)**](https://github.com/daem0nc0re/PrivFu/tree/main/PrivilegedOperations/SeDebugPrivilegePoC)
* [**psgetsys.ps1 (Script Powershell)**](https://raw.githubusercontent.com/decoder-it/psgetsystem/master/psgetsys.ps1)
* [**psgetsys.ps1 (Powershell Script)**](https://raw.githubusercontent.com/decoder-it/psgetsystem/master/psgetsys.ps1)
```powershell
# Get the PID of a process running as NT SYSTEM
import-module psgetsys.ps1; [MyProcess]::CreateProcessFromParent(<system_pid>,<command_to_execute>)
```
## Verifica dei privilegi
```
whoami /priv
```
I **token che appaiono come Disabilitati** possono essere abilitati, è possibile abusare dei token _Abilitati_ e _Disabilitati_.
I **token che appaiono come Disabilitati** possono essere abilitati, è possibile sfruttare i token _Abilitati_ e _Disabilitati_.
### Abilita tutti i token
Se hai token disabilitati, puoi utilizzare lo script [**EnableAllTokenPrivs.ps1**](https://raw.githubusercontent.com/fashionproof/EnableAllTokenPrivs/master/EnableAllTokenPrivs.ps1) per abilitare tutti i token:
```powershell
.\EnableAllTokenPrivs.ps1
whoami /priv
```
Oppure lo **script** incorporato in questo [**post**](https://www.leeholmes.com/adjusting-token-privileges-in-powershell/).
## Tabella
Elenco completo dei privilegi del token su [https://github.com/gtworek/Priv2Admin](https://github.com/gtworek/Priv2Admin), di seguito verranno elencati solo i modi diretti per sfruttare il privilegio per ottenere una sessione di amministratore o leggere file sensibili.
Foglio di trucchi completo sui privilegi dei token su [https://github.com/gtworek/Priv2Admin](https://github.com/gtworek/Priv2Admin), di seguito verranno elencati solo i modi diretti per sfruttare il privilegio per ottenere una sessione di amministratore o leggere file sensibili.
| Privilegio | Impatto | Strumento | Percorso di esecuzione | Osservazioni |
| -------------------------- | ------------ | ------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **`SeAssignPrimaryToken`** | _**Admin**_ | Strumento di terze parti | _"Consentirebbe a un utente di impersonare token e ottenere privilegi di sistema nt utilizzando strumenti come potato.exe, rottenpotato.exe e juicypotato.exe"_ | Grazie a [Aurélien Chalot](https://twitter.com/Defte\_) per l'aggiornamento. Cercherò di riformularlo in qualcosa di più simile a una ricetta presto. |
| **`SeBackup`** | **Minaccia** | _**Comandi integrati**_ | Leggere file sensibili con `robocopy /b` | <p>- Potrebbe essere più interessante se si possono leggere %WINDIR%\MEMORY.DMP<br><br>- <code>SeBackupPrivilege</code> (e robocopy) non è utile quando si tratta di file aperti.<br><br>- Robocopy richiede sia SeBackup che SeRestore per funzionare con il parametro /b.</p> |
| **`SeCreateToken`** | _**Admin**_ | Strumento di terze parti | Creare token arbitrari inclusi i diritti di amministratore locale con `NtCreateToken`. | |
| **`SeDebug`** | _**Admin**_ | **PowerShell** | Duplicare il token di `lsass.exe`. | Script da trovare su [FuzzySecurity](https://github.com/FuzzySecurity/PowerShell-Suite/blob/master/Conjure-LSASS.ps1) |
| **`SeLoadDriver`** | _**Admin**_ | Strumento di terze parti | <p>1. Caricare un driver kernel difettoso come <code>szkg64.sys</code><br>2. Sfruttare la vulnerabilità del driver<br><br>In alternativa, il privilegio può essere utilizzato per scaricare driver correlati alla sicurezza con il comando integrato <code>ftlMC</code>. ad es.: <code>fltMC sysmondrv</code></p> | <p>1. La vulnerabilità di <code>szkg64</code> è elencata come <a href="https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-15732">CVE-2018-15732</a><br>2. Il codice di exploit di <code>szkg64</code> è stato creato da <a href="https://twitter.com/parvezghh">Parvez Anwar</a></p> |
| **`SeRestore`** | _**Admin**_ | **PowerShell** | <p>1. Avviare PowerShell/ISE con il privilegio SeRestore presente.<br>2. Abilitare il privilegio con <a href="https://github.com/gtworek/PSBits/blob/master/Misc/EnableSeRestorePrivilege.ps1">Enable-SeRestorePrivilege</a>).<br>3. Rinominare utilman.exe in utilman.old<br>4. Rinominare cmd.exe in utilman.exe<br>5. Bloccare la console e premere Win+U</p> | <p>L'attacco potrebbe essere rilevato da alcuni software AV.</p><p>Il metodo alternativo si basa sulla sostituzione dei binari di servizio memorizzati in "Program Files" utilizzando lo stesso privilegio</p> |
| **`SeTakeOwnership`** | _**Admin**_ | _**Comandi integrati**_ | <p>1. <code>takeown.exe /f "%windir%\system32"</code><br>2. <code>icalcs.exe "%windir%\system32" /grant "%username%":F</code><br>3. Rinominare cmd.exe in utilman.exe<br>4. Bloccare la console e premere Win+U</p> | <p>L'attacco potrebbe essere rilevato da alcuni software AV.</p><p>Il metodo alternativo si basa sulla sostituzione dei binari di servizio memorizzati in "Program Files" utilizzando lo stesso privilegio.</p> |
| **`SeTcb`** | _**Admin**_ | Strumento di terze parti | <p>Manipolare i token per includere i diritti di amministratore locale. Potrebbe richiedere SeImpersonate.</p><p>Da verificare.</p> | |
| Privilegio | Impatto | Strumento | Percorso di esecuzione | Osservazioni |
| -------------------------- | ----------- | ----------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| **`SeAssignPrimaryToken`** | _**Admin**_ | Strumento di terze parti | _"Consentirebbe a un utente di impersonare token e ottenere privilegi di sistema nt utilizzando strumenti come potato.exe, rottenpotato.exe e juicypotato.exe"_ | Grazie [Aurélien Chalot](https://twitter.com/Defte\_) per l'aggiornamento. Cercherò di riformularlo in qualcosa di più simile a una ricetta presto. |
| **`SeBackup`** | **Minaccia** | _**Comandi integrati**_ | Leggere file sensibili con `robocopy /b` | <p>- Potrebbe essere più interessante se si possono leggere %WINDIR%\MEMORY.DMP<br><br>- <code>SeBackupPrivilege</code> (e robocopy) non è utile quando si tratta di file aperti.<br><br>- Robocopy richiede sia SeBackup che SeRestore per funzionare con il parametro /b.</p> |
| **`SeCreateToken`** | _**Admin**_ | Strumento di terze parti | Creare token arbitrari inclusi i diritti di amministratore locale con `NtCreateToken`. | |
| **`SeDebug`** | _**Admin**_ | **PowerShell** | Duplicare il token di `lsass.exe`. | Script da trovare su [FuzzySecurity](https://github.com/FuzzySecurity/PowerShell-Suite/blob/master/Conjure-LSASS.ps1) |
| **`SeLoadDriver`** | _**Admin**_ | Strumento di terze parti | <p>1. Caricare un driver kernel difettoso come <code>szkg64.sys</code><br>2. Sfruttare la vulnerabilità del driver<br><br>In alternativa, il privilegio può essere utilizzato per scaricare driver correlati alla sicurezza con il comando integrato <code>ftlMC</code>. ad es.: <code>fltMC sysmondrv</code></p> | <p>1. La vulnerabilità di <code>szkg64</code> è elencata come <a href="https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-15732">CVE-2018-15732</a><br>2. Il codice di exploit di <code>szkg64</code> è stato creato da <a href="https://twitter.com/parvezghh">Parvez Anwar</a></p> |
| **`SeRestore`** | _**Admin**_ | **PowerShell** | <p>1. Avviare PowerShell/ISE con il privilegio SeRestore presente.<br>2. Abilitare il privilegio con <a href="https://github.com/gtworek/PSBits/blob/master/Misc/EnableSeRestorePrivilege.ps1">Enable-SeRestorePrivilege</a>).<br>3. Rinominare utilman.exe in utilman.old<br>4. Rinominare cmd.exe in utilman.exe<br>5. Bloccare la console e premere Win+U</p> | <p>L'attacco potrebbe essere rilevato da alcuni software AV.</p><p>Il metodo alternativo si basa sulla sostituzione dei binari di servizio memorizzati in "Program Files" utilizzando lo stesso privilegio</p> |
| **`SeTakeOwnership`** | _**Admin**_ | _**Comandi integrati**_ | <p>1. <code>takeown.exe /f "%windir%\system32"</code><br>2. <code>icalcs.exe "%windir%\system32" /grant "%username%":F</code><br>3. Rinominare cmd.exe in utilman.exe<br>4. Bloccare la console e premere Win+U</p> | <p>L'attacco potrebbe essere rilevato da alcuni software AV.</p><p>Il metodo alternativo si basa sulla sostituzione dei binari di servizio memorizzati in "Program Files" utilizzando lo stesso privilegio.</p> |
| **`SeTcb`** | _**Admin**_ | Strumento di terze parti | <p>Manipolare i token per includere i diritti di amministratore locale. Potrebbe richiedere SeImpersonate.</p><p>Da verificare.</p> | |
## Riferimenti
## Riferimento
* Dai un'occhiata a questa tabella che definisce i token di Windows: [https://github.com/gtworek/Priv2Admin](https://github.com/gtworek/Priv2Admin)
* Dai un'occhiata a [**questo documento**](https://github.com/hatRiot/token-priv/blob/master/abusing\_token\_eop\_1.0.txt) sull'elevazione dei privilegi con i token.
@ -195,9 +183,9 @@ Elenco completo dei privilegi del token su [https://github.com/gtworek/Priv2Admi
<summary><strong>Impara l'hacking di AWS da zero a eroe con</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Lavori in una **azienda di sicurezza informatica**? Vuoi vedere la **tua azienda pubblicizzata in HackTricks**? o vuoi avere accesso all'**ultima versione del PEASS o scaricare HackTricks in PDF**? Controlla i [**PIANI DI ABBONAMENTO**](https://github.com/sponsors/carlospolop)!
* Lavori in una **azienda di sicurezza informatica**? Vuoi vedere la tua **azienda pubblicizzata in HackTricks**? o vuoi avere accesso all'**ultima versione del PEASS o scaricare HackTricks in PDF**? Controlla i [**PIANI DI ABBONAMENTO**](https://github.com/sponsors/carlospolop)!
* Scopri [**The PEASS Family**](https://opensea.io/collection/the-peass-family), la nostra collezione di [**NFT esclusivi**](https://opensea.io/collection/the-peass-family)
* Ottieni il [**merchandising ufficiale di PEASS & HackTricks**](https://peass.creator-spring.com)
* Ottieni il [**PEASS ufficiale & HackTricks swag**](https://peass.creator-spring.com)
* **Unisciti al** [**💬**](https://emojipedia.org/speech-balloon/) [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguimi** su **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Condividi i tuoi trucchi di hacking inviando PR al** [**repo hacktricks**](https://github.com/carlospolop/hacktricks) **e al** [**repo hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).