AD CS

To find vulnerable certificate templates you can run:
IF SSL ERROR
-scheme ldap
Шаблоны сертификатов хранятся в следующем контейнере:
CN=Certificate Templates,CN=Public Key Services,CN=Services,CN=Configuration,DC=contoso,DC=com
Соответственно, получить шаблоны можно при помощи следующей команды PowerShell, используя модуль AD:
PS > Get-ADObject -SearchBase "CN=Certificate Templates,CN=Public Key Services,CN=
Certipy + BH
Modifiable SAN. ESC1
Это атака основывается на изменении параметра SAN, который позволяет указать альтернативное имя пользователя. Это позволит нам выпустить сертификат на другого пользователя, даже администратора домена. Чтобы атака прошла успешно, шаблон сертификата должен иметь установленный флаг ENROLLEE_SUPPLIES_SUBJECT.
Any or None Purpose Attack. ESC2
Если в шаблоне сертификата указан EKU любого назначения или вообще отсутствует EKU, сертификат можно использовать для чего угодно. Им можно злоупотреблять, как ESC3, например использовать сертификат в качестве требования для запроса другого сертификата от имени любого пользователя.
Enrollment Agent. ESC3
В документации Microsoft указано, что EKU Certificate Request Agent может использоваться, чтобы выдать себя за другого пользователя, и позволяет выпустить сертификат, который может быть использован для совместной подписи запросов от имени любого пользователя для любого шаблона.
После того как мы получили обычного пользователя, запросим сертификат, представившись другим пользователем.
(EDITF_ATTRIBUTESUBJECTALTNAME2). ESC6
EDITF_ATTRIBUTESUBJECTALTNAME2 Этот флаг позволяет указать произвольный SAN (Subject Alternative Name) для всех сертификатов, несмотря на конфигурацию шаблона сертификата.
dNSHostName Spoofing
Полный флоу атаки выглядит следующим образом:
Создание компьютера в домене с
dNSHostName, соответствующим DNS-имени контроллера домена.Замена SPN.
Запрос сертификата для компьютера.
как проверить, уязвим ли контроллер домена к CVE-2022-26923? Главным признаком уязвимости служит наличие SID в ответе на запрос сертификата. Если он есть — патч в системе присутствует, если нет, то патча тоже нет.
Using cert without PKINIT
Last updated