hacktricks/windows-hardening/windows-local-privilege-escalation/access-tokens.md
2023-06-03 13:10:46 +00:00

12 KiB

Jetons d'accès

Chaque utilisateur connecté au système possède un jeton d'accès avec des informations de sécurité pour cette session de connexion. Le système crée un jeton d'accès lorsque l'utilisateur se connecte. Chaque processus exécuté au nom de l'utilisateur a une copie du jeton d'accès. Le jeton identifie l'utilisateur, les groupes de l'utilisateur et les privilèges de l'utilisateur. Un jeton contient également un SID de connexion (identificateur de sécurité) qui identifie la session de connexion actuelle.

Vous pouvez voir ces informations en exécutant whoami /all.

whoami /all

USER INFORMATION
----------------

User Name             SID
===================== ============================================
desktop-rgfrdxl\cpolo S-1-5-21-3359511372-53430657-2078432294-1001


GROUP INFORMATION
-----------------

Group Name                                                    Type             SID                                                                                                           Attributes
============================================================= ================ ============================================================================================================= ==================================================
Mandatory Label\Medium Mandatory Level                        Label            S-1-16-8192
Everyone                                                      Well-known group S-1-1-0                                                                                                       Mandatory group, Enabled by default, Enabled group
NT AUTHORITY\Local account and member of Administrators group Well-known group S-1-5-114                                                                                                     Group used for deny only
BUILTIN\Administrators                                        Alias            S-1-5-32-544                                                                                                  Group used for deny only
BUILTIN\Users                                                 Alias            S-1-5-32-545                                                                                                  Mandatory group, Enabled by default, Enabled group
BUILTIN\Performance Log Users                                 Alias            S-1-5-32-559                                                                                                  Mandatory group, Enabled by default, Enabled group
NT AUTHORITY\INTERACTIVE                                      Well-known group S-1-5-4                                                                                                       Mandatory group, Enabled by default, Enabled group
CONSOLE LOGON                                                 Well-known group S-1-2-1                                                                                                       Mandatory group, Enabled by default, Enabled group
NT AUTHORITY\Authenticated Users                              Well-known group S-1-5-11                                                                                                      Mandatory group, Enabled by default, Enabled group
NT AUTHORITY\This Organization                                Well-known group S-1-5-15                                                                                                      Mandatory group, Enabled by default, Enabled group
MicrosoftAccount\cpolop@outlook.com                           User             S-1-11-96-3623454863-58364-18864-2661722203-1597581903-3158937479-2778085403-3651782251-2842230462-2314292098 Mandatory group, Enabled by default, Enabled group
NT AUTHORITY\Local account                                    Well-known group S-1-5-113                                                                                                     Mandatory group, Enabled by default, Enabled group
LOCAL                                                         Well-known group S-1-2-0                                                                                                       Mandatory group, Enabled by default, Enabled group
NT AUTHORITY\Cloud Account Authentication                     Well-known group S-1-5-64-36                                                                                                   Mandatory group, Enabled by default, Enabled group


PRIVILEGES INFORMATION
----------------------

Privilege Name                Description                          State
============================= ==================================== ========
SeShutdownPrivilege           Shut down the system                 Disabled
SeChangeNotifyPrivilege       Bypass traverse checking             Enabled
SeUndockPrivilege             Remove computer from docking station Disabled
SeIncreaseWorkingSetPrivilege Increase a process working set       Disabled
SeTimeZonePrivilege           Change the time zone                 Disabled

ou en utilisant Process Explorer de Sysinternals (sélectionnez le processus et accédez à l'onglet "Sécurité") :

Administrateur local

Lorsqu'un administrateur local se connecte, deux jetons d'accès sont créés : un avec des droits d'administrateur et l'autre avec des droits normaux. Par défaut, lorsque cet utilisateur exécute un processus, celui avec des droits normaux est utilisé. Lorsque cet utilisateur essaie d'exécuter quelque chose en tant qu'administrateur ("Exécuter en tant qu'administrateur", par exemple), l'UAC sera utilisé pour demander la permission.
Si vous voulez en savoir plus sur l'UAC, lisez cette page.

Impersonation d'utilisateur de crédential

Si vous avez les crédentials valides de tout autre utilisateur, vous pouvez créer une nouvelle session de connexion avec ces crédentials :

runas /user:domain\username cmd.exe

Le jeton d'accès contient également une référence des sessions de connexion à l'intérieur de LSASS, ce qui est utile si le processus doit accéder à certains objets du réseau.
Vous pouvez lancer un processus qui utilise des informations d'identification différentes pour accéder aux services réseau en utilisant:

runas /user:domain\username /netonly cmd.exe

Ceci est utile si vous avez des informations d'identification pour accéder à des objets dans le réseau, mais que ces informations d'identification ne sont pas valides à l'intérieur de l'hôte actuel car elles ne seront utilisées que dans le réseau (dans l'hôte actuel, les privilèges de votre utilisateur actuel seront utilisés).

Types de jetons

Il existe deux types de jetons disponibles :

  • Jeton primaire : Les jetons primaires ne peuvent être associés qu'à des processus, et ils représentent le sujet de sécurité d'un processus. La création de jetons primaires et leur association à des processus sont toutes deux des opérations privilégiées, nécessitant deux privilèges différents au nom de la séparation des privilèges - le scénario typique voit le service d'authentification créer le jeton, et un service de connexion l'associer à la coquille du système d'exploitation de l'utilisateur. Les processus héritent initialement d'une copie du jeton primaire du processus parent.

  • Jeton d'usurpation : L'usurpation est un concept de sécurité implémenté dans Windows NT qui permet à une application serveur de "devenir" temporairement le client en termes d'accès aux objets sécurisés. L'usurpation a quatre niveaux possibles :

    • anonyme, donnant au serveur l'accès d'un utilisateur anonyme/non identifié
    • identification, permettant au serveur d'inspecter l'identité du client mais de ne pas utiliser cette identité pour accéder aux objets
    • usurpation, permettant au serveur d'agir au nom du client
    • délégation, identique à l'usurpation mais étendue aux systèmes distants auxquels le serveur se connecte (par la préservation des informations d'identification).

    Le client peut choisir le niveau d'usurpation maximal (s'il y en a un) disponible pour le serveur en tant que paramètre de connexion. L'usurpation et la délégation sont des opérations privilégiées (l'usurpation ne l'était pas initialement, mais la négligence historique dans la mise en œuvre des API client qui ont omis de restreindre le niveau par défaut à "identification", permettant à un serveur non privilégié d'usurper un client privilégié réticent, a appelé à cela). Les jetons d'usurpation ne peuvent être associés qu'à des threads, et ils représentent le sujet de sécurité d'un processus client. Les jetons d'usurpation sont généralement créés et associés au thread actuel implicitement, par des mécanismes IPC tels que DCE RPC, DDE et les pipes nommées.

Jetons d'usurpation

En utilisant le module incognito** de Metasploit, si vous avez suffisamment de privilèges, vous pouvez facilement list et usurper d'autres jetons. Cela pourrait être utile pour effectuer des actions comme si vous étiez l'autre utilisateur. Vous pourriez également escalader les privilèges avec cette technique.

Privilèges de jeton

Apprenez quels privilèges de jeton peuvent être abusés pour escalader les privilèges :

{% content-ref url="privilege-escalation-abusing-tokens/" %} privilege-escalation-abusing-tokens {% endcontent-ref %}

Jetez un coup d'œil à tous les privilèges de jeton possibles et certaines définitions sur cette page externe.

Références

En savoir plus sur les jetons dans ces tutoriels : https://medium.com/@seemant.bisht24/understanding-and-abusing-process-tokens-part-i-ee51671f2cfa et https://medium.com/@seemant.bisht24/understanding-and-abusing-access-tokens-part-ii-b9069f432962

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥