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

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

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

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

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

Категории

Все категории
Loading categories
Certify — C# инструмент для перечисления и эксплуатации неправильных конфигураций в службах сертификации Active Directory (AD CS), позволяющий злоупотреблять шаблонами сертификатов, повышать привилегии и обеспечивать постоянство в домене. | Kitploit
Инструменты/GitHubGitHub/ghostpack/certify
Аутентификация и авторизацияПовышение привилегийАнализ уязвимостейЭксплуатацияТестирование на ПроникновениеRed Teaming
GitHubghostpack/certify

Certify

C# инструмент для перечисления и эксплуатации неправильных конфигураций в службах сертификации Active Directory (AD CS), позволяющий злоупотреблять шаблонами сертификатов, повышать привилегии и обеспечивать постоянство в домене.

Репозиторий
2.0k2828 дней назадПроверено Kitploit

Популярное

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

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

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

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

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

Certify

Certify — это инструмент на C# для перечисления и эксплуатации ошибок конфигурации в службах сертификации Active Directory (AD CS).

@harmj0y и @tifkin_ являются основными авторами Certify и связанного с ним исследования AD CS (блог и технический отчет).

Table of Contents

  • Certify
    • Usage
    • Defensive Considerations
    • Compile Instructions
      • Sidenote: Running Certify Through PowerShell
        • Sidenote Sidenote: Running Certify Over PSRemoting
    • Reflections
    • Acknowledgments

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

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

Рекомендации по защите

Certify был представлен на Black Hat 2021 в рамках доклада «Certified Pre-Owned: Abusing Active Directory Certificate Services» (расписание).

Инструкции по предотвращению и обнаружению см. в нашем техническом отчете.

Инструкции по сборке

Мы не планируем выпускать бинарные файлы для Certify, так что вам придется компилировать самостоятельно :)

Certify собран для .NET 4.7.2 и совместим с Visual Studio 2022 Community Edition. Просто откройте файл проекта .sln, выберите конфигурацию «Release» и выполните сборку.

Примечание: Запуск Certify через PowerShell

Если вы хотите запустить Certify в памяти через оболочку PowerShell, сначала скомпилируйте Certify и закодируйте полученную сборку в base64:

root@kitploit:~
[Convert]::ToBase64String([IO.File]::ReadAllBytes("C:\Temp\Certify.exe")) | Out-File -Encoding ASCII C:\Temp\Certify.txt

Затем Certify можно загрузить в скрипт PowerShell следующим образом (где «aa...» заменяется на строку сборки Certify в base64):

root@kitploit:~
$CertifyAssembly = [System.Reflection.Assembly]::Load([Convert]::FromBase64String("aa..."))

Затем метод Main() и любые аргументы можно вызвать следующим образом:

root@kitploit:~
[Certify.Program]::Main("enum-templates --filter-enabled --filter-vulnerable".Split())

Еще одно примечание: Запуск Certify через PSRemoting

Из-за того, как PSRemoting обрабатывает вывод, нам нужно перенаправить stdout в строку и вернуть её. К счастью, в Certify есть функция, которая помогает с этим.

Если вы следовали инструкциям в разделе Примечание: Запуск Certify через PowerShell для создания Certify.ps1, добавьте в скрипт что-то вроде следующего:

root@kitploit:~
[Certify.Program]::MainString("enum-templates --filter-enabled --filter-vulnerable")

После этого вы сможете запустить Certify через PSRemoting примерно так:

root@kitploit:~
$s = New-PSSession dc.theshire.local
Invoke-Command -Session $s -FilePath C:\Temp\Certify.ps1

Кроме того, аргумент Certify /outfile:C:\FILE.txt перенаправит все потоки вывода в указанный файл.

Размышления

Что касается публичного раскрытия, мы наложили самоэмбарго на выпуск наших наступательных инструментов (Certify, а также ForgeCert) примерно на 45 дней после публикации нашего технического отчета, чтобы дать организациям возможность разобраться с проблемами, связанными со службами сертификации Active Directory. Мы также заблаговременно опубликовали некоторые Yara-правила/IOC для обоих проектов и выпустили ориентированный на защиту PowerShell-проект PSPKIAudit вместе с техническим отчетом. Однако мы обнаружили, что организации и поставщики исторически часто не исправляли проблемы и не создавали средства обнаружения для «теоретических» атак, пока кто-то не доказывал их возможность с помощью концептуального прототипа.

Благодарности

Certify использовал несколько ресурсов, найденных в интернете, в качестве справочных материалов и источника вдохновения:

  • Этот пост о запросе сертификатов из C#.
  • Этот gist для спецификации SAN.
  • Этот пост на StackOverflow об экспорте закрытых ключей.
  • Этот пост PKISolutions о преобразовании pkiExpirationPeriod.
  • Этот раздел MS-CSRA, описывающий DACL безопасности агента регистрации.

Работа над AD CS была основана на работе многих других исследователей. В техническом отчете представлен полный обзор, но вкратце:

  • Benjamin Delpy за его обширную работу по смарт-картам/сертификатам с Mimikatz и Kekeo.
  • PKI Solutions за их отличные посты о PKI в Active Directory, а также за модуль PowerShell PSPKI, на котором основан наш набор инструментов аудита.
  • Книгу «Windows Server 2008 – PKI and Certificate Security» Брайана Комара.
  • Следующие открытые технические спецификации, предоставленные Microsoft:
    • [MS-CERSOD]: Certificate Services Protocols Overview
    • [MS-CRTD]: Certificate Templates Structure
    • [MS-CSRA]: Certificate Services Remote Administration Protocol
    • [MS-ICPR]: ICertPassage Remote Protocol
    • [MS-WCCE]: Windows Client Certificate Enrollment Protocol
  • Репозиторий GitHub Кристофа Фальты, который охватывает некоторые детали атак на шаблоны сертификатов, включая виртуальные смарт-карты, а также некоторые идеи по злоупотреблению на основе ACL.
  • Пост CQURE «The tale of Enhanced Key (mis)Usage», в котором рассматриваются некоторые злоупотребления Subject Alternative Name.
  • Пост Keyfactor 2016 года «Hidden Dangers: Certificate Subject Alternative Names (SANs)»
  • Посты @Elkement: «Sizzle @ hackthebox – Unintended: Getting a Logon Smartcard for the Domain Admin!» и «Impersonating a Windows Enterprise Admin with a Certificate: Kerberos PKINIT from Linux» подробно описывают ошибки конфигурации шаблонов сертификатов.
  • Карл Сёрквист описал подробный и правдоподобный сценарий того, как возникают некоторые из этих ошибок конфигурации, в статье «Supply in the Request Shenanigans».
Скачать инструмент
  • Ceri Coburn опубликовал в 2020 году отличный пост «Attacking Smart Card Based Active Directory Networks», подробно описывающий некоторые злоупотребления смарт-картами и дополнения Certify.
  • Брэд Хилл опубликовал технический отчет «Weaknesses and Best Practices of Public Key Kerberos with Smart Cards», который предоставил хорошие сведения о Kerberos/PKINIT с точки зрения безопасности.