Назад к обновлениям
UpdatedAug 1, 2026

CVE-2026-54121 — Updated!

Certighost POC

Поделиться

CVE-2026-54121 (Certighost)

Это 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) записываются в текущий каталог.

Что делает этот скрипт

  1. Создаёт новую учётную запись компьютера (например, GHOSTABCDEFGH$) или использует переданную через --computer-name.
  2. Запускает два поддельных слушателя: SMB/LSA-сервер на порту 445 и LDAP-сервер на порту 389.
  3. Отправляет запрос на сертификат от имени этой учётной записи компьютера, встраивая настраиваемый атрибут cdc, указывающий на контролируемый IP (через --listener; необязательно, автоматически определяется, если опущен), а также атрибут rmd, содержащий DNS-имя целевого DC.
  4. CA подключается обратно к поддельным LSA/LDAP-слушателям. Они аутентифицируются как созданная учётная запись (проверенная через реальный DC по Netlogon) и отвечают на запросы CA идентичностью целевого DC (sAMAccountName, SID, dNSHostName).
  5. CA выдаёт действительный сертификат, принадлежащий DC.
  6. Скрипт также выполняет PKINIT с использованием pfx DC для запроса .ccache и NT-хэша.

Хронология

  • 28 июля 2026 — Благодарность @GregDurys за PR, исправляющий проблему STATUS_NOLOGON_SERVER_TRUST_ACCOUNT. certighost теперь содержит надлежащий внутрискриптовый хотпатч поддельного пути SMB NetLogon (устанавливающий бит E 0x20 вместе с битом K 0x800 в ParameterControl, согласно MS-NRPC 2.2.1.4.15), поэтому эксплойт работает против CA, размещённого на контроллере домена, без необходимости установки другой/форкнутой версии Impacket.
  • 28 июля 2026 — Благодарность @Hack0ura за упоминание исправления request-SAN. На CA, который учитывает SAN, переданные в запросе (EDITF_ATTRIBUTESUBJECTALTNAME2 / ESC6), запрос на сертификат теперь устанавливает идентичность SAN:dns в DNS-имя целевого DC (rmd_value) вместо имени поддельного компьютера, избегая KDC_ERR_CLIENT_NAME_MISMATCH на этапе PKINIT. Для шаблонов, создаваемых из AD, SAN из запроса игнорируется, поэтому изменение безопасно и ничего не меняет (no-op).

Ссылки

Категории