
Certighost POC
Это proof-of-concept инструмент для демонстрации CVE-2026-54121, также известного как Certighost. Подробный анализ читайте здесь: https://gist.github.com/H0j3n/a5ef2609b5f2944ac2390a191a534c26
Proof of concept представляет собой автономный Python-скрипт. Требуются impacket, cryptography, pyasn1, asn1crypto и dnspython.
sudo pip install --break-system-packages git+https://github.com/fortra/impacket.git cryptography pyasn1 asn1crypto pycryptodome dnspython
Запускайте от root, поскольку поддельные LDAP и SMB-сервисы прослушивают привилегированные порты 389 и 445.
sudo python3 certighost.py -d playground.local -u lowpriv -p 'Password1234' --dc-ip 192.168.1.10
При успешном выполнении целевой сертификат (.pfx) и кэш Kerberos (.ccache) записываются в текущий каталог.
GHOSTABCDEFGH$) или использует переданную через --computer-name.cdc, указывающий на контролируемый IP (через --listener; необязательно, автоматически определяется, если опущен), а также атрибут rmd, содержащий DNS-имя целевого DC.STATUS_NOLOGON_SERVER_TRUST_ACCOUNT. certighost теперь содержит надлежащий внутрискриптовый хотпатч поддельного пути SMB NetLogon (устанавливающий бит E 0x20 вместе с битом K 0x800 в ParameterControl, согласно MS-NRPC 2.2.1.4.15), поэтому эксплойт работает против CA, размещённого на контроллере домена, без необходимости установки другой/форкнутой версии Impacket.EDITF_ATTRIBUTESUBJECTALTNAME2 / ESC6), запрос на сертификат теперь устанавливает идентичность SAN:dns в DNS-имя целевого DC (rmd_value) вместо имени поддельного компьютера, избегая KDC_ERR_CLIENT_NAME_MISMATCH на этапе PKINIT. Для шаблонов, создаваемых из AD, SAN из запроса игнорируется, поэтому изменение безопасно и ничего не меняет (no-op).