Protections des Identifiants Windows
Reading time: 12 minutes
Protections des Identifiants
tip
Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE)
Apprenez et pratiquez le hacking Azure :
HackTricks Training Azure Red Team Expert (AzRTE)
Soutenir HackTricks
- Vérifiez les plans d'abonnement !
- Rejoignez le đŹ groupe Discord ou le groupe telegram ou suivez-nous sur Twitter đŠ @hacktricks_live.
- Partagez des astuces de hacking en soumettant des PR au HackTricks et HackTricks Cloud dépÎts github.
WDigest
Le protocole WDigest, introduit avec Windows XP, est conçu pour l'authentification via le protocole HTTP et est activé par défaut sur Windows XP jusqu'à Windows 8.0 et Windows Server 2003 jusqu'à Windows Server 2012. Ce paramÚtre par défaut entraßne le stockage des mots de passe en texte clair dans LSASS (Service de sous-systÚme de sécurité local). Un attaquant peut utiliser Mimikatz pour extraire ces identifiants en exécutant :
sekurlsa::wdigest
Pour activer ou dĂ©sactiver cette fonctionnalitĂ©, les clĂ©s de registre UseLogonCredential et Negotiate dans HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\SecurityProviders\WDigest doivent ĂȘtre dĂ©finies sur "1". Si ces clĂ©s sont absentes ou dĂ©finies sur "0", WDigest est dĂ©sactivĂ© :
reg query HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v UseLogonCredential
Protection LSA (processus protégés PP & PPL)
Processus ProtĂ©gĂ© (PP) et Processus ProtĂ©gĂ© LĂ©ger (PPL) sont des protections au niveau du noyau Windows conçues pour empĂȘcher l'accĂšs non autorisĂ© Ă des processus sensibles comme LSASS. Introduit dans Windows Vista, le modĂšle PP a Ă©tĂ© initialement créé pour l'application de DRM et ne permettait que la protection des binaires signĂ©s avec un certificat mĂ©dia spĂ©cial. Un processus marquĂ© comme PP ne peut ĂȘtre accĂ©dĂ© que par d'autres processus qui sont Ă©galement PP et ont un niveau de protection Ă©gal ou supĂ©rieur, et mĂȘme alors, uniquement avec des droits d'accĂšs limitĂ©s Ă moins d'ĂȘtre spĂ©cifiquement autorisĂ©.
PPL, introduit dans Windows 8.1, est une version plus flexible de PP. Il permet des cas d'utilisation plus larges (par exemple, LSASS, Defender) en introduisant des "niveaux de protection" basés sur le champ EKU (Enhanced Key Usage) de la signature numérique. Le niveau de protection est stocké dans le champ EPROCESS.Protection
, qui est une structure PS_PROTECTION
avec :
- Type (
Protected
ouProtectedLight
) - Signataire (par exemple,
WinTcb
,Lsa
,Antimalware
, etc.)
Cette structure est empaquetée dans un seul octet et détermine qui peut accéder à qui :
- Des valeurs de signataire plus élevées peuvent accéder à des valeurs plus basses
- Les PPL ne peuvent pas accéder aux PP
- Les processus non protégés ne peuvent accéder à aucun PPL/PP
Ce que vous devez savoir d'un point de vue offensif
- Lorsque LSASS fonctionne en tant que PPL, les tentatives de l'ouvrir en utilisant
OpenProcess(PROCESS_VM_READ | QUERY_INFORMATION)
depuis un contexte admin normal échouent avec0x5 (AccÚs refusé)
, mĂȘme siSeDebugPrivilege
est activé. - Vous pouvez vérifier le niveau de protection de LSASS en utilisant des outils comme Process Hacker ou de maniÚre programmatique en lisant la valeur
EPROCESS.Protection
. - LSASS aura généralement
PsProtectedSignerLsa-Light
(0x41
), qui ne peut ĂȘtre accĂ©dĂ© que par des processus signĂ©s avec un signataire de niveau supĂ©rieur, tel queWinTcb
(0x61
ou0x62
). - PPL est une restriction uniquement au niveau de l'espace utilisateur ; le code au niveau du noyau peut complĂštement le contourner.
- Le fait que LSASS soit PPL ne prévent pas le dumping de credentials si vous pouvez exécuter du shellcode noyau ou exploiter un processus à privilÚges élevés avec un accÚs approprié.
- DĂ©finir ou supprimer PPL nĂ©cessite un redĂ©marrage ou des paramĂštres de Secure Boot/UEFI, ce qui peut persister le paramĂštre PPL mĂȘme aprĂšs que les modifications du registre aient Ă©tĂ© annulĂ©es.
Options pour contourner les protections PPL :
Si vous souhaitez dumper LSASS malgré PPL, vous avez 3 options principales :
- Utiliser un pilote de noyau signé (par exemple, Mimikatz + mimidrv.sys) pour supprimer le drapeau de protection de LSASS :
- Apporter votre propre pilote vulnérable (BYOVD) pour exécuter du code noyau personnalisé et désactiver la protection. Des outils comme PPLKiller, gdrv-loader ou kdmapper rendent cela faisable.
- Voler un handle LSASS existant d'un autre processus qui l'a ouvert (par exemple, un processus AV), puis le dupliquer dans votre processus. C'est la base de la technique
pypykatz live lsa --method handledup
. - Abuser d'un processus privilégié qui vous permettra de charger du code arbitraire dans son espace d'adresses ou à l'intérieur d'un autre processus privilégié, contournant ainsi efficacement les restrictions PPL. Vous pouvez consulter un exemple de cela dans bypassing-lsa-protection-in-userland ou https://github.com/itm4n/PPLdump.
Vérifiez l'état actuel de la protection LSA (PPL/PP) pour LSASS :
reg query HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\LSA /v RunAsPPL
Lorsque vous exécutez mimikatz privilege::debug sekurlsa::logonpasswords
, cela échouera probablement avec le code d'erreur 0x00000005
Ă cause de cela.
- Pour plus d'informations Ă ce sujet, consultez https://itm4n.github.io/lsass-runasppl/
Credential Guard
Credential Guard, une fonctionnalitĂ© exclusive aux Windows 10 (versions Entreprise et Ăducation), amĂ©liore la sĂ©curitĂ© des identifiants de machine en utilisant Virtual Secure Mode (VSM) et Virtualization Based Security (VBS). Il exploite les extensions de virtualisation du processeur pour isoler des processus clĂ©s dans un espace mĂ©moire protĂ©gĂ©, loin de l'accĂšs du systĂšme d'exploitation principal. Cette isolation garantit que mĂȘme le noyau ne peut pas accĂ©der Ă la mĂ©moire dans VSM, protĂ©geant ainsi efficacement les identifiants contre des attaques telles que pass-the-hash. L'AutoritĂ© de SĂ©curitĂ© Locale (LSA) fonctionne dans cet environnement sĂ©curisĂ© en tant que trustlet, tandis que le processus LSASS dans le systĂšme d'exploitation principal agit simplement comme un communicateur avec le LSA de VSM.
Par dĂ©faut, Credential Guard n'est pas actif et nĂ©cessite une activation manuelle au sein d'une organisation. Il est crucial pour amĂ©liorer la sĂ©curitĂ© contre des outils comme Mimikatz, qui sont entravĂ©s dans leur capacitĂ© Ă extraire des identifiants. Cependant, des vulnĂ©rabilitĂ©s peuvent encore ĂȘtre exploitĂ©es par l'ajout de Security Support Providers (SSP) personnalisĂ©s pour capturer les identifiants en texte clair lors des tentatives de connexion.
Pour vĂ©rifier l'Ă©tat d'activation de Credential Guard, la clĂ© de registre LsaCfgFlags sous HKLM\System\CurrentControlSet\Control\LSA peut ĂȘtre inspectĂ©e. Une valeur de "1" indique une activation avec UEFI lock, "2" sans verrou, et "0" signifie qu'il n'est pas activĂ©. Cette vĂ©rification de registre, bien qu'indicative, n'est pas la seule Ă©tape pour activer Credential Guard. Des conseils dĂ©taillĂ©s et un script PowerShell pour activer cette fonctionnalitĂ© sont disponibles en ligne.
reg query HKLM\System\CurrentControlSet\Control\LSA /v LsaCfgFlags
Pour une compréhension complÚte et des instructions sur l'activation de Credential Guard dans Windows 10 et son activation automatique dans les systÚmes compatibles de Windows 11 Enterprise et Education (version 22H2), visitez la documentation de Microsoft.
Des dĂ©tails supplĂ©mentaires sur la mise en Ćuvre de SSP personnalisĂ©s pour la capture de credentials sont fournis dans ce guide.
Mode RestrictedAdmin RDP
Windows 8.1 et Windows Server 2012 R2 ont introduit plusieurs nouvelles fonctionnalités de sécurité, y compris le mode Restricted Admin pour RDP. Ce mode a été conçu pour améliorer la sécurité en atténuant les risques associés aux attaques de pass the hash.
Traditionnellement, lors de la connexion à un ordinateur distant via RDP, vos credentials sont stockés sur la machine cible. Cela pose un risque de sécurité significatif, surtout lors de l'utilisation de comptes avec des privilÚges élevés. Cependant, avec l'introduction du mode Restricted Admin, ce risque est considérablement réduit.
Lors de l'initiation d'une connexion RDP en utilisant la commande mstsc.exe /RestrictedAdmin, l'authentification à l'ordinateur distant est effectuée sans stocker vos credentials dessus. Cette approche garantit que, en cas d'infection par un malware ou si un utilisateur malveillant accÚde au serveur distant, vos credentials ne sont pas compromises, car elles ne sont pas stockées sur le serveur.
Il est important de noter qu'en mode Restricted Admin, les tentatives d'accÚs aux ressources réseau depuis la session RDP n'utiliseront pas vos credentials personnelles ; au lieu de cela, l'identité de la machine est utilisée.
Cette fonctionnalité marque un pas en avant significatif dans la sécurisation des connexions de bureau à distance et la protection des informations sensibles contre l'exposition en cas de violation de la sécurité.
Pour des informations plus détaillées, visitez cette ressource.
Credentials mises en cache
Windows sĂ©curise les credentials de domaine via l'AutoritĂ© de SĂ©curitĂ© Locale (LSA), prenant en charge les processus de connexion avec des protocoles de sĂ©curitĂ© tels que Kerberos et NTLM. Une caractĂ©ristique clĂ© de Windows est sa capacitĂ© Ă mettre en cache les dix derniĂšres connexions de domaine pour garantir que les utilisateurs peuvent toujours accĂ©der Ă leurs ordinateurs mĂȘme si le contrĂŽleur de domaine est hors ligneâun avantage pour les utilisateurs d'ordinateurs portables souvent Ă©loignĂ©s du rĂ©seau de leur entreprise.
Le nombre de connexions mises en cache est ajustable via une clé de registre ou une stratégie de groupe spécifique. Pour afficher ou modifier ce paramÚtre, la commande suivante est utilisée :
reg query "HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\WINDOWS NT\CURRENTVERSION\WINLOGON" /v CACHEDLOGONSCOUNT
L'accÚs à ces informations d'identification mises en cache est strictement contrÎlé, seul le compte SYSTEM ayant les autorisations nécessaires pour les visualiser. Les administrateurs ayant besoin d'accéder à ces informations doivent le faire avec les privilÚges de l'utilisateur SYSTEM. Les informations d'identification sont stockées à : HKEY_LOCAL_MACHINE\SECURITY\Cache
Mimikatz peut ĂȘtre utilisĂ© pour extraire ces informations d'identification mises en cache en utilisant la commande lsadump::cache
.
Pour plus de détails, la source originale fournit des informations complÚtes.
Utilisateurs protégés
L'appartenance au groupe des Utilisateurs protégés introduit plusieurs améliorations de sécurité pour les utilisateurs, garantissant des niveaux de protection plus élevés contre le vol et l'utilisation abusive des informations d'identification :
- DĂ©lĂ©gation d'informations d'identification (CredSSP) : MĂȘme si le paramĂštre de stratĂ©gie de groupe Autoriser la dĂ©lĂ©gation des informations d'identification par dĂ©faut est activĂ©, les informations d'identification en texte clair des Utilisateurs protĂ©gĂ©s ne seront pas mises en cache.
- Windows Digest : à partir de Windows 8.1 et Windows Server 2012 R2, le systÚme ne mettra pas en cache les informations d'identification en texte clair des Utilisateurs protégés, quel que soit l'état de Windows Digest.
- NTLM : Le systÚme ne mettra pas en cache les informations d'identification en texte clair des Utilisateurs protégés ni les fonctions unidirectionnelles NT (NTOWF).
- Kerberos : Pour les Utilisateurs protégés, l'authentification Kerberos ne générera pas de DES ou de clés RC4, ni ne mettra en cache les informations d'identification en texte clair ou les clés à long terme au-delà de l'acquisition initiale du Ticket-Granting Ticket (TGT).
- Connexion hors ligne : Les Utilisateurs protégés n'auront pas de vérificateur mis en cache créé lors de la connexion ou du déverrouillage, ce qui signifie que la connexion hors ligne n'est pas prise en charge pour ces comptes.
Ces protections sont activées dÚs qu'un utilisateur, membre du groupe des Utilisateurs protégés, se connecte à l'appareil. Cela garantit que des mesures de sécurité critiques sont en place pour protéger contre diverses méthodes de compromission des informations d'identification.
Pour des informations plus détaillées, consultez la documentation officielle.
Tableau provenant de la documentation.
Windows Server 2003 RTM | Windows Server 2003 SP1+ | Windows Server 2012, | Windows Server 2016 |
---|---|---|---|
Account Operators | Account Operators | Account Operators | Account Operators |
Administrator | Administrator | Administrator | Administrator |
Administrators | Administrators | Administrators | Administrators |
Backup Operators | Backup Operators | Backup Operators | Backup Operators |
Cert Publishers | |||
Domain Admins | Domain Admins | Domain Admins | Domain Admins |
Domain Controllers | Domain Controllers | Domain Controllers | Domain Controllers |
Enterprise Admins | Enterprise Admins | Enterprise Admins | Enterprise Admins |
Enterprise Key Admins | |||
Key Admins | |||
Krbtgt | Krbtgt | Krbtgt | Krbtgt |
Print Operators | Print Operators | Print Operators | Print Operators |
Read-only Domain Controllers | Read-only Domain Controllers | ||
Replicator | Replicator | Replicator | Replicator |
Schema Admins | Schema Admins | Schema Admins | Schema Admins |
Server Operators | Server Operators | Server Operators | Server Operators |
tip
Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE)
Apprenez et pratiquez le hacking Azure :
HackTricks Training Azure Red Team Expert (AzRTE)
Soutenir HackTricks
- Vérifiez les plans d'abonnement !
- Rejoignez le đŹ groupe Discord ou le groupe telegram ou suivez-nous sur Twitter đŠ @hacktricks_live.
- Partagez des astuces de hacking en soumettant des PR au HackTricks et HackTricks Cloud dépÎts github.