Zurück zu den Updates
UpdatedAug 1, 2026

CVE-2026-54121 — Updated!

Certighost POC

Teilen

CVE-2026-54121 (Certighost)

Dies ist ein Proof-of-Concept-Tool zur Demonstration von CVE-2026-54121, auch bekannt als Certighost. Die detaillierte Analyse findest du hier: https://gist.github.com/H0j3n/a5ef2609b5f2944ac2390a191a534c26.

Abhängigkeiten installieren

Der Proof of Concept ist ein eigenständiges Python-Skript. Er benötigt impacket, cryptography, pyasn1, asn1crypto und dnspython.

sudo pip install --break-system-packages git+https://github.com/fortra/impacket.git cryptography pyasn1 asn1crypto pycryptodome dnspython

Verwendung

Als root ausführen, da die Rogue-LDAP- und SMB-Dienste auf den privilegierten Ports 389 und 445 lauschen.

sudo python3 certighost.py -d playground.local -u lowpriv -p 'Password1234' --dc-ip 192.168.1.10

Bei erfolgreicher Ausführung werden das Zielzertifikat (.pfx) und der Kerberos-Cache (.ccache) im aktuellen Verzeichnis gespeichert.

Was dieses Skript tut

  1. Erstellt ein neues Computerkonto (z. B. GHOSTABCDEFGH$) oder verwendet ein über --computer-name übergebenes erneut.
  2. Startet zwei Rogue-Listener: einen SMB/LSA-Server auf Port 445 und einen LDAP-Server auf Port 389.
  3. Sendet eine Zertifikatsanfrage als dieses Computerkonto, wobei ein benutzerdefiniertes cdc-Attribut eingebettet wird, das auf eine kontrollierte IP verweist (über --listener; optional, wird bei Auslassung automatisch erkannt), plus ein rmd-Attribut, das den DNS-Namen des Ziel-DCs trägt.
  4. Die CA verbindet sich zurück zu den Rogue-LSA/LDAP-Listenern. Diese authentifizieren sich als das erstellte Konto (validiert über den echten DC per Netlogon) und beantworten die Abfragen der CA stattdessen mit der Identität des Ziel-DCs (sAMAccountName, SID, dNSHostName).
  5. Die CA stellt ein gültiges Zertifikat aus, das dem DC gehört.
  6. Das Skript führt außerdem PKINIT mit der PFX-Datei des DCs durch, um .ccache und NT-Hash anzufordern.

Zeitleiste

  • 28. Juli 2026 — Dank an @GregDurys für den PR, der das STATUS_NOLOGON_SERVER_TRUST_ACCOUNT-Problem behebt. certighost enthält jetzt einen ordnungsgemäßen In-Script-Hotpatch des Rogue-SMB-NetLogon-Pfads (Setzen des E-Bits 0x20 zusammen mit dem K-Bit 0x800 in ParameterControl, gemäß MS-NRPC 2.2.1.4.15), sodass der Exploit gegen eine auf einem Domänencontroller gehostete CA funktioniert, ohne sich um die Installation einer anderen/geforkten Impacket-Version kümmern zu müssen.
  • 28. Juli 2026 — Dank an @Hack0ura für den Hinweis auf den Request-SAN-Fix. Bei einer CA, die anfrageseitig gelieferte SANs berücksichtigt (EDITF_ATTRIBUTESUBJECTALTNAME2 / ESC6), setzt die Zertifikatsanfrage die SAN:dns-Identität nun auf den DNS-Namen des Ziel-DCs (rmd_value) anstelle des Rogue-Computers, wodurch KDC_ERR_CLIENT_NAME_MISMATCH beim PKINIT-Schritt vermieden wird. Bei aus AD-Templates erstellten Vorlagen wird das angefragte SAN ignoriert, daher ist die Änderung ein sicheres No-op.

Referenzen

Kategorien