diff --git a/windows-hardening/windows-local-privilege-escalation/privilege-escalation-abusing-tokens.md b/windows-hardening/windows-local-privilege-escalation/privilege-escalation-abusing-tokens.md index 5bb435f62..930934686 100644 --- a/windows-hardening/windows-local-privilege-escalation/privilege-escalation-abusing-tokens.md +++ b/windows-hardening/windows-local-privilege-escalation/privilege-escalation-abusing-tokens.md @@ -1,12 +1,12 @@ -# Abusing Tokens +# Abuso di Token
-Impara l'hacking AWS da zero a eroe con htARTE (HackTricks AWS Red Team Expert)! +Impara l'hacking AWS da zero a eroe con htARTE (Esperto Red Team AWS di HackTricks)! * 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\\System\CurrentControlSet\Services\Drive 2. Creare il percorso `\Registry\User\\System\CurrentControlSet\Services\DriverName` all'interno di `HKCU`, dove `` 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 :F #Now you have full access @@ -121,72 +118,63 @@ icacls 'C:\some\file.txt' /grant :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(,) ``` - ## 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` |

- Potrebbe essere più interessante se si possono leggere %WINDIR%\MEMORY.DMP

- SeBackupPrivilege (e robocopy) non è utile quando si tratta di file aperti.

- Robocopy richiede sia SeBackup che SeRestore per funzionare con il parametro /b.

| -| **`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 |

1. Caricare un driver kernel difettoso come szkg64.sys
2. Sfruttare la vulnerabilità del driver

In alternativa, il privilegio può essere utilizzato per scaricare driver correlati alla sicurezza con il comando integrato ftlMC. ad es.: fltMC sysmondrv

|

1. La vulnerabilità di szkg64 è elencata come CVE-2018-15732
2. Il codice di exploit di szkg64 è stato creato da Parvez Anwar

| -| **`SeRestore`** | _**Admin**_ | **PowerShell** |

1. Avviare PowerShell/ISE con il privilegio SeRestore presente.
2. Abilitare il privilegio con Enable-SeRestorePrivilege).
3. Rinominare utilman.exe in utilman.old
4. Rinominare cmd.exe in utilman.exe
5. Bloccare la console e premere Win+U

|

L'attacco potrebbe essere rilevato da alcuni software AV.

Il metodo alternativo si basa sulla sostituzione dei binari di servizio memorizzati in "Program Files" utilizzando lo stesso privilegio

| -| **`SeTakeOwnership`** | _**Admin**_ | _**Comandi integrati**_ |

1. takeown.exe /f "%windir%\system32"
2. icalcs.exe "%windir%\system32" /grant "%username%":F
3. Rinominare cmd.exe in utilman.exe
4. Bloccare la console e premere Win+U

|

L'attacco potrebbe essere rilevato da alcuni software AV.

Il metodo alternativo si basa sulla sostituzione dei binari di servizio memorizzati in "Program Files" utilizzando lo stesso privilegio.

| -| **`SeTcb`** | _**Admin**_ | Strumento di terze parti |

Manipolare i token per includere i diritti di amministratore locale. Potrebbe richiedere SeImpersonate.

Da verificare.

| | +| 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` |

- Potrebbe essere più interessante se si possono leggere %WINDIR%\MEMORY.DMP

- SeBackupPrivilege (e robocopy) non è utile quando si tratta di file aperti.

- Robocopy richiede sia SeBackup che SeRestore per funzionare con il parametro /b.

| +| **`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 |

1. Caricare un driver kernel difettoso come szkg64.sys
2. Sfruttare la vulnerabilità del driver

In alternativa, il privilegio può essere utilizzato per scaricare driver correlati alla sicurezza con il comando integrato ftlMC. ad es.: fltMC sysmondrv

|

1. La vulnerabilità di szkg64 è elencata come CVE-2018-15732
2. Il codice di exploit di szkg64 è stato creato da Parvez Anwar

| +| **`SeRestore`** | _**Admin**_ | **PowerShell** |

1. Avviare PowerShell/ISE con il privilegio SeRestore presente.
2. Abilitare il privilegio con Enable-SeRestorePrivilege).
3. Rinominare utilman.exe in utilman.old
4. Rinominare cmd.exe in utilman.exe
5. Bloccare la console e premere Win+U

|

L'attacco potrebbe essere rilevato da alcuni software AV.

Il metodo alternativo si basa sulla sostituzione dei binari di servizio memorizzati in "Program Files" utilizzando lo stesso privilegio

| +| **`SeTakeOwnership`** | _**Admin**_ | _**Comandi integrati**_ |

1. takeown.exe /f "%windir%\system32"
2. icalcs.exe "%windir%\system32" /grant "%username%":F
3. Rinominare cmd.exe in utilman.exe
4. Bloccare la console e premere Win+U

|

L'attacco potrebbe essere rilevato da alcuni software AV.

Il metodo alternativo si basa sulla sostituzione dei binari di servizio memorizzati in "Program Files" utilizzando lo stesso privilegio.

| +| **`SeTcb`** | _**Admin**_ | Strumento di terze parti |

Manipolare i token per includere i diritti di amministratore locale. Potrebbe richiedere SeImpersonate.

Da verificare.

| | -## 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 Impara l'hacking di AWS da zero a eroe con htARTE (HackTricks AWS Red Team Expert)! -* 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).