.. | ||
abuse-seloaddriverprivilege.md | ||
README.md |
Abus de jetons
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
- Travaillez-vous dans une entreprise de cybersécurité? Vous voulez voir votre entreprise annoncée dans HackTricks? ou voulez-vous avoir accès à la dernière version du PEASS ou télécharger HackTricks en PDF? Consultez les PLANS D'ABONNEMENT!
- Découvrez La famille PEASS, notre collection exclusive de NFTs
- Obtenez le swag officiel PEASS & HackTricks
- Rejoignez le 💬 groupe Discord ou le groupe Telegram ou suivez moi sur Twitter 🐦@carlospolopm.
- Partagez vos astuces de piratage en soumettant des PR aux dépôts hacktricks et hacktricks-cloud.
Jetons
Si vous ne savez pas ce que sont les jetons d'accès Windows, lisez cette page avant de continuer :
{% content-ref url="../access-tokens.md" %} access-tokens.md {% endcontent-ref %}
Peut-être pourriez-vous escalader les privilèges en abusant des jetons que vous avez déjà
SeImpersonatePrivilege
Il s'agit d'un privilège détenu par n'importe quel processus qui permet l'impersonation (mais pas la création) de n'importe quel jeton, à condition qu'une poignée de celui-ci puisse être obtenue. Un jeton privilégié peut être acquis à partir d'un service Windows (DCOM) en l'incitant à effectuer une authentification NTLM contre une exploitation, permettant ensuite l'exécution d'un processus avec des privilèges SYSTEM. Cette vulnérabilité peut être exploitée à l'aide de divers outils, tels que juicy-potato, RogueWinRM (qui nécessite la désactivation de winrm), SweetPotato et PrintSpoofer.
{% content-ref url="../roguepotato-and-printspoofer.md" %} roguepotato-and-printspoofer.md {% endcontent-ref %}
{% content-ref url="../juicypotato.md" %} juicypotato.md {% endcontent-ref %}
SeAssignPrimaryPrivilege
Il est très similaire à SeImpersonatePrivilege, il utilisera la même méthode pour obtenir un jeton privilégié.
Ensuite, ce privilège permet de assigner un jeton principal à un processus nouveau/en attente. Avec le jeton d'impersonation privilégié, vous pouvez dériver un jeton principal (DuplicateTokenEx).
Avec le jeton, vous pouvez créer un nouveau processus avec 'CreateProcessAsUser' ou créer un processus en attente et définir le jeton (en général, vous ne pouvez pas modifier le jeton principal d'un processus en cours d'exécution).
SeTcbPrivilege
Si vous avez activé ce jeton, vous pouvez utiliser KERB_S4U_LOGON pour obtenir un jeton d'impersonation pour tout autre utilisateur sans connaître les informations d'identification, ajouter un groupe arbitraire (administrateurs) au jeton, définir le niveau d'intégrité du jeton sur "moyen" et assigner ce jeton au thread actuel (SetThreadToken).
SeBackupPrivilege
Le système est amené à accorder un accès en lecture à n'importe quel fichier (limité aux opérations de lecture) par ce privilège. Il est utilisé pour lire les hachages de mots de passe des comptes Administrateur locaux à partir du registre, après quoi, des outils comme "psexec" ou "wmicexec" peuvent être utilisés avec le hachage (technique Pass-the-Hash). Cependant, cette technique échoue dans deux cas : lorsque le compte Administrateur local est désactivé, ou lorsqu'une stratégie est en place qui supprime les droits administratifs des administrateurs locaux se connectant à distance.
Vous pouvez abuser de ce privilège avec :
- https://github.com/Hackplayers/PsCabesha-tools/blob/master/Privesc/Acl-FullControl.ps1
- https://github.com/giuliano108/SeBackupPrivilege/tree/master/SeBackupPrivilegeCmdLets/bin/Debug
- en suivant IppSec dans https://www.youtube.com/watch?v=IfCysW0Od8w&t=2610&ab_channel=IppSec
- Ou comme expliqué dans la section escalade de privilèges avec les opérateurs de sauvegarde de :
{% content-ref url="../../active-directory-methodology/privileged-groups-and-token-privileges.md" %} privileged-groups-and-token-privileges.md {% endcontent-ref %}
SeRestorePrivilege
La permission pour accéder en écriture à n'importe quel fichier système, indépendamment de la liste de contrôle d'accès (ACL) du fichier, est fournie par ce privilège. Cela ouvre de nombreuses possibilités d'escalade, y compris la capacité de modifier des services, d'effectuer du détournement de DLL et de définir des débogueurs via les options d'exécution de fichiers image, entre autres techniques.
SeCreateTokenPrivilege
SeCreateTokenPrivilege est une permission puissante, particulièrement utile lorsqu'un utilisateur possède la capacité d'impersonner des jetons, mais aussi en l'absence de SeImpersonatePrivilege. Cette capacité repose sur la capacité d'impersonner un jeton qui représente le même utilisateur et dont le niveau d'intégrité n'excède pas celui du processus actuel.
Points clés :
- Impersonation sans SeImpersonatePrivilege : Il est possible de tirer parti de SeCreateTokenPrivilege pour l'élévation de privilèges en impersonnant des jetons dans des conditions spécifiques.
- Conditions pour l'impersonation de jetons : L'impersonation réussie nécessite que le jeton cible appartienne au même utilisateur et ait un niveau d'intégrité inférieur ou égal à celui du processus tentant l'impersonation.
- Création et modification de jetons d'impersonation : Les utilisateurs peuvent créer un jeton d'impersonation et l'améliorer en ajoutant l'identifiant de sécurité (SID) d'un groupe privilégié.
SeLoadDriverPrivilege
Ce privilège permet de charger et décharger des pilotes de périphériques avec la création d'une entrée de registre avec des valeurs spécifiques pour ImagePath
et Type
. Comme l'accès en écriture direct à HKLM
(HKEY_LOCAL_MACHINE) est restreint, HKCU
(HKEY_CURRENT_USER) doit être utilisé à la place. Cependant, pour rendre HKCU
reconnaissable par le noyau pour la configuration du pilote, un chemin spécifique doit être suivi.
Ce chemin est \Registry\User\<RID>\System\CurrentControlSet\Services\DriverName
, où <RID>
est l'Identifiant Relatif de l'utilisateur actuel. À l'intérieur de HKCU
, ce chemin complet doit être créé, et deux valeurs doivent être définies :
ImagePath
, qui est le chemin d'accès binaire à exécuterType
, avec une valeur deSERVICE_KERNEL_DRIVER
(0x00000001
).
Étapes à suivre :
- Accédez à
HKCU
au lieu deHKLM
en raison de l'accès en écriture restreint. - Créez le chemin
\Registry\User\<RID>\System\CurrentControlSet\Services\DriverName
dansHKCU
, où<RID>
représente l'Identifiant Relatif de l'utilisateur actuel. - Définissez
ImagePath
sur le chemin d'exécution du binaire. - Attribuez le
Type
commeSERVICE_KERNEL_DRIVER
(0x00000001
).
# Example Python code to set the registry values
import winreg as reg
# Define the path and values
path = r'Software\YourPath\System\CurrentControlSet\Services\DriverName' # Adjust 'YourPath' as needed
key = reg.OpenKey(reg.HKEY_CURRENT_USER, path, 0, reg.KEY_WRITE)
reg.SetValueEx(key, "ImagePath", 0, reg.REG_SZ, "path_to_binary")
reg.SetValueEx(key, "Type", 0, reg.REG_DWORD, 0x00000001)
reg.CloseKey(key)
D'autres façons d'abuser de ce privilège se trouvent sur https://www.ired.team/offensive-security-experiments/active-directory-kerberos-abuse/privileged-accounts-and-token-privileges#seloaddriverprivilege
SeTakeOwnershipPrivilege
Ceci est similaire à SeRestorePrivilege. Sa fonction principale permet à un processus de prendre possession d'un objet, contournant ainsi l'exigence d'accès discrétionnaire explicite en fournissant des droits d'accès WRITE_OWNER. Le processus implique d'abord de sécuriser la propriété de la clé de registre prévue à des fins d'écriture, puis de modifier le DACL pour permettre des opérations d'écriture.
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
# Use this with files that might contain credentials such as
%WINDIR%\repair\sam
%WINDIR%\repair\system
%WINDIR%\repair\software
%WINDIR%\repair\security
%WINDIR%\system32\config\security.sav
%WINDIR%\system32\config\software.sav
%WINDIR%\system32\config\system.sav
%WINDIR%\system32\config\SecEvent.Evt
%WINDIR%\system32\config\default.sav
c:\inetpub\wwwwroot\web.config
SeDebugPrivilege
Ce privilège permet de déboguer d'autres processus, y compris de lire et écrire dans la mémoire. Diverses stratégies d'injection de mémoire, capables de contourner la plupart des antivirus et des solutions de prévention des intrusions hôtes, peuvent être utilisées avec ce privilège.
Dump de mémoire
Vous pourriez utiliser ProcDump de la SysInternals Suite pour capturer la mémoire d'un processus. Plus précisément, cela peut s'appliquer au processus Local Security Authority Subsystem Service (LSASS), qui est responsable de stocker les informations d'identification de l'utilisateur une fois qu'un utilisateur s'est connecté avec succès à un système.
Vous pouvez ensuite charger ce dump dans mimikatz pour obtenir des mots de passe:
mimikatz.exe
mimikatz # log
mimikatz # sekurlsa::minidump lsass.dmp
mimikatz # sekurlsa::logonpasswords
RCE
Si vous voulez obtenir un shell NT SYSTEM
, vous pourriez utiliser :
# Get the PID of a process running as NT SYSTEM
import-module psgetsys.ps1; [MyProcess]::CreateProcessFromParent(<system_pid>,<command_to_execute>)
Vérifier les privilèges
whoami /priv
Les jetons qui apparaissent comme Désactivés peuvent être activés, vous pouvez en fait abuser des jetons Activés et Désactivés.
Activer tous les jetons
Si vous avez des jetons désactivés, vous pouvez utiliser le script EnableAllTokenPrivs.ps1 pour activer tous les jetons :
.\EnableAllTokenPrivs.ps1
whoami /priv
Ou le script intégré dans ce poste.
Tableau
Feuille de triche complète des privilèges de jeton sur https://github.com/gtworek/Priv2Admin, le résumé ci-dessous ne répertorie que les moyens directs d'exploiter le privilège pour obtenir une session administrateur ou lire des fichiers sensibles.
Privilège | Impact | Outil | Chemin d'exécution | Remarques |
---|---|---|---|---|
SeAssignPrimaryToken |
Admin | Outil tiers | "Cela permettrait à un utilisateur d'usurper des jetons et de s'élever en tant que système nt en utilisant des outils tels que potato.exe, rottenpotato.exe et juicypotato.exe" | Merci à Aurélien Chalot pour la mise à jour. J'essaierai de reformuler cela bientôt de manière plus proche d'une recette. |
SeBackup |
Menace | Commandes intégrées | Lire des fichiers sensibles avec robocopy /b |
- Peut être plus intéressant si vous pouvez lire %WINDIR%\MEMORY.DMP |
SeCreateToken |
Admin | Outil tiers | Créer un jeton arbitraire incluant des droits d'administrateur local avec NtCreateToken . |
|
SeDebug |
Admin | PowerShell | Dupliquer le jeton lsass.exe . |
Script à trouver sur FuzzySecurity |
SeLoadDriver |
Admin | Outil tiers | 1. Charger un pilote de noyau bogué tel que |
1. La vulnérabilité de |
SeRestore |
Admin | PowerShell | 1. Lancer PowerShell/ISE avec le privilège SeRestore présent. |
L'attaque peut être détectée par certains logiciels antivirus. Une méthode alternative repose sur le remplacement des binaires de service stockés dans "Program Files" en utilisant le même privilège |
SeTakeOwnership |
Admin | Commandes intégrées | 1. |
L'attaque peut être détectée par certains logiciels antivirus. Une méthode alternative repose sur le remplacement des binaires de service stockés dans "Program Files" en utilisant le même privilège. |
SeTcb |
Admin | Outil tiers | Manipuler les jetons pour inclure des droits d'administrateur local. Peut nécessiter SeImpersonate. À vérifier. |
Référence
- Consultez ce tableau définissant les jetons Windows : https://github.com/gtworek/Priv2Admin
- Consultez ce document sur l'élévation de privilèges avec les jetons.
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
- Travaillez-vous dans une entreprise de cybersécurité ? Vous voulez voir votre entreprise annoncée dans HackTricks ? ou voulez-vous avoir accès à la dernière version du PEASS ou télécharger HackTricks en PDF ? Consultez les PLANS D'ABONNEMENT !
- Découvrez The PEASS Family, notre collection exclusive de NFTs
- Obtenez le swag officiel PEASS & HackTricks
- Rejoignez le 💬 groupe Discord ou le groupe telegram ou suivez moi sur Twitter 🐦@carlospolopm.
- Partagez vos astuces de piratage en soumettant des PR au dépôt hacktricks et au dépôt hacktricks-cloud.