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
Certify — Outil C# pour énumérer et exploiter les mauvaises configurations dans les services de certificats Active Directory (AD CS), permettant l'abus de modèles de certificats, l'escalade de privilèges et la persistance dans le domaine. | Kitploit
Outils/GitHubGitHub/ghostpack/certify
Authentification et AutorisationEscalade de PrivilègesAnalyse des VulnérabilitésExploitationTests d'IntrusionRed Teaming
GitHubghostpack/certify

Certify

Outil C# pour énumérer et exploiter les mauvaises configurations dans les services de certificats Active Directory (AD CS), permettant l'abus de modèles de certificats, l'escalade de privilèges et la persistance dans le domaine.

Voir le dépôt
2.0k282il y a 8 joursVé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

Certify

Certify est un outil C# permettant d'énumérer et d'exploiter des mauvaises configurations dans les services de certificats Active Directory (AD CS).

@harmj0y et @tifkin_ sont les auteurs principaux de Certify et de la recherche associée sur AD CS (blog et livre blanc).

Table des matières

  • Certify
    • Utilisation
    • Considérations défensives
    • Instructions de compilation
      • Note : Exécution de Certify via PowerShell
        • Note supplémentaire : Exécution de Certify via PSRemoting
    • Réflexions
    • Remerciements

Utilisation

Un aperçu des commandes et des détails d'utilisation complets se trouvent sur le wiki.

Considérations défensives

Certify a été présenté à Black Hat 2021 avec notre exposé intitulé "Certified Pre-Owned: Abusing Active Directory Certificate Services".

Consultez notre livre blanc pour des recommandations en matière de prévention et de détection.

Instructions de compilation

Nous n'avons pas l'intention de publier de binaires pour Certify, vous devrez donc le compiler vous-même :)

Certify a été compilé pour .NET 4.7.2 et est compatible avec Visual Studio 2022 Community Edition. Ouvrez simplement le fichier .sln du projet, choisissez "Release" et compilez.

Note : Exécution de Certify via PowerShell

Si vous souhaitez exécuter Certify en mémoire via un wrapper PowerShell, compilez d'abord Certify et encodez l'assembly résultant en base64 :

root@kitploit:~
[Convert]::ToBase64String([IO.File]::ReadAllBytes("C:\Temp\Certify.exe")) | Out-File -Encoding ASCII C:\Temp\Certify.txt

Certify peut ensuite être chargé dans un script PowerShell avec le code suivant (où "aa..." est remplacé par la chaîne de l'assembly Certify encodée en base64) :

root@kitploit:~
$CertifyAssembly = [System.Reflection.Assembly]::Load([Convert]::FromBase64String("aa..."))

La méthode Main() et les arguments peuvent ensuite être invoqués comme suit :

root@kitploit:~
[Certify.Program]::Main("enum-templates --filter-enabled --filter-vulnerable".Split())

Note supplémentaire : Exécution de Certify via PSRemoting

En raison de la manière dont PSRemoting gère la sortie, nous devons rediriger stdout vers une chaîne et la renvoyer à la place. Heureusement, Certify dispose d'une fonction pour cela.

Si vous suivez les instructions de la section Note : Exécution de Certify via PowerShell pour créer un Certify.ps1, ajoutez quelque chose comme ce qui suit au script :

root@kitploit:~
[Certify.Program]::MainString("enum-templates --filter-enabled --filter-vulnerable")

Vous devriez alors pouvoir exécuter Certify via PSRemoting avec quelque chose comme :

root@kitploit:~
$s = New-PSSession dc.theshire.local
Invoke-Command -Session $s -FilePath C:\Temp\Certify.ps1

Alternativement, l'argument /outfile:C:\FILE.txt de Certify redirigera tous les flux de sortie vers le fichier spécifié.

Réflexions

Sur le sujet de la divulgation publique, nous avons imposé un auto-embargo sur la publication de nos outils offensifs (Certify ainsi que ForgeCert) pendant environ 45 jours après la publication de notre livre blanc, afin de donner aux organisations une chance de maîtriser les problèmes liés aux services de certificats Active Directory. Nous avons également publié à l'avance quelques règles Yara / IOCs pour les deux projets, ainsi que le projet PowerShell défensif PSPKIAudit avec le livre blanc. Cependant, nous avons constaté que les organisations et les fournisseurs n'ont historiquement souvent pas corrigé les problèmes ou mis en place des détections pour les attaques "théoriques" tant que quelqu'un n'a pas prouvé qu'une attaque était possible avec une preuve de concept.

Remerciements

Certify a utilisé quelques ressources trouvées en ligne comme référence et inspiration :

  • Cet article sur la demande de certificats en C#.
  • Ce gist pour la spécification du SAN.
  • Cette réponse StackOverflow sur l'exportation de clés privées.
  • Cet article PKISolutions sur la conversion de pkiExpirationPeriod.
  • Cette section de MS-CSRA décrivant les DACLs de sécurité des agents d'inscription.

Le travail sur AD CS a été construit sur les travaux de nombreuses autres personnes. Le livre blanc contient un traitement complet, mais pour résumer :

  • Benjamin Delpy pour son travail approfondi sur les cartes à puce/certificats avec Mimikatz et Kekeo.
  • PKI Solutions pour leurs excellents articles sur PKI dans Active Directory, ainsi que leur module PowerShell PSPKI, sur lequel notre boîte à outils d'audit est basée.
  • Le livre "Windows Server 2008 – PKI and Certificate Security" de Brian Komar.
  • Les spécifications techniques ouvertes suivantes fournies par Microsoft :
    • [MS-CERSOD] : Présentation des protocoles de services de certificats
    • [MS-CRTD] : Structure des modèles de certificats
    • [MS-CSRA] : Protocole d'administration à distance des services de certificats
    • [MS-ICPR] : Protocole distant ICertPassage
    • [MS-WCCE] : Protocole d'inscription de certificats client Windows
  • Le dépôt GitHub de Christoph Falta qui couvre certains détails sur l'attaque de modèles de certificats, y compris les cartes à puce virtuelles ainsi que quelques idées sur les abus basés sur les ACL.
  • L'article de CQURE "The tale of Enhanced Key (mis)Usage" qui couvre quelques abus de noms alternatifs du sujet (SAN).
  • L'article de Keyfactor de 2016 "Hidden Dangers: Certificate Subject Alternative Names (SANs)"
  • Les articles de @Elkement "Sizzle @ hackthebox – Unintended: Getting a Logon Smartcard for the Domain Admin!" et "Impersonating a Windows Enterprise Admin with a Certificate: Kerberos PKINIT from Linux" détaillent des mauvaises configurations de modèles de certificats.
  • Carl Sörqvist a rédigé un scénario détaillé et plausible expliquant comment certaines de ces mauvaises configurations se produisent, intitulé "".
Télécharger l’outil
Supply in the Request Shenanigans
  • Ceri Coburn a publié en 2020 un excellent article sur "Attacking Smart Card Based Active Directory Networks" détaillant certains abus de cartes à puce et ajouts à Certify.
  • Brad Hill a publié un livre blanc intitulé "Weaknesses and Best Practices of Public Key Kerberos with Smart Cards" qui a fourni un bon contexte sur Kerberos/PKINIT d'un point de vue sécurité.