AD CS Domain Persistence
Це підсумок технік постійності домену, які були опубліковані в https://www.specterops.io/assets/resources/Certified_Pre-Owned.pdf. Перевірте це для отримання додаткових деталей.
Підробка сертифікатів за допомогою викрадених сертифікатів ЦС - DPERSIST1
Як ви можете визначити, що сертифікат є сертифікатом ЦС?
Можна визначити, що сертифікат є сертифікатом ЦС, якщо виконуються кілька умов:
Сертифікат зберігається на сервері ЦС, а його приватний ключ захищений DPAPI машини або апаратними засобами, такими як TPM/HSM, якщо операційна система підтримує це.
Як видаючий орган, так і суб'єкт сертифіката відповідають відмінному імені ЦС.
У сертифіката виключно присутнє розширення "Версія ЦС".
У сертифіката відсутні поля розширеного використання ключа (EKU).
Для вилучення приватного ключа цього сертифіката підтримується інструмент certsrv.msc
на сервері ЦС через вбудований GUI. Однак цей сертифікат не відрізняється від інших, збережених у системі; тому можна застосовувати методи, такі як техніка THEFT2 для вилучення.
Сертифікат та приватний ключ також можна отримати за допомогою Certipy за допомогою наступної команди:
Після отримання сертифіката ЦС та його приватного ключа у форматі .pfx
, можна використовувати інструменти, такі як ForgeCert, для генерації дійсних сертифікатів:
Користувач, який є метою підробки сертифікатів, повинен бути активним і мати можливість аутентифікації в Active Directory для успішного процесу. Підробка сертифікатів для спеціальних облікових записів, таких як krbtgt, є неефективною.
Цей підроблений сертифікат буде дійсним до вказаної дати закінчення і доки кореневий сертифікат ЦС є дійсним (зазвичай від 5 до 10+ років). Він також є дійсним для машин, тому разом з S4U2Self зловмисник може зберігати постійність на будь-якій машині домену доти, поки сертифікат ЦС є дійсним. Більше того, сертифікати, згенеровані цим методом, не можуть бути відкликані, оскільки ЦС не відомо про них.
Довіра до сертифікатів Rogue CA - DPERSIST2
Об'єкт NTAuthCertificates
визначено для містить один або кілька сертифікатів ЦС у своєму атрибуті cacertificate
, які використовує Active Directory (AD). Процес перевірки контролера домену включає перевірку об'єкта NTAuthCertificates
на наявність запису, який відповідає ЦС, вказаному в полі Видавця аутентифікуючого сертифіката. Аутентифікація відбувається, якщо знайдено відповідність.
Самопідписаний сертифікат ЦС може бути доданий до об'єкта NTAuthCertificates
зловмисником, за умови, що вони мають контроль над цим об'єктом AD. Зазвичай дозвіл на зміну цього об'єкта мають лише члени групи Enterprise Admin, разом з Domain Admins або Адміністраторами в домені кореня лісу. Вони можуть редагувати об'єкт NTAuthCertificates
, використовуючи certutil.exe
з командою certutil.exe -dspublish -f C:\Temp\CERT.crt NTAuthCA126
, або використовуючи інструмент здоров'я PKI.
Ця можливість особливо актуальна, коли використовується разом з раніше описаним методом, що включає ForgeCert для динамічного генерування сертифікатів.
Зловживання зловмисною конфігурацією - DPERSIST3
Можливості постійності через модифікації дескрипторів безпеки компонентів AD CS є багато. Модифікації, описані в розділі "Підвищення домену", можуть бути зловмисно реалізовані зловмисником з підвищеним доступом. Це включає додавання "прав контролю" (наприклад, WriteOwner/WriteDACL/тощо) до чутливих компонентів, таких як:
Об'єкт комп'ютера AD сервера ЦС
Сервер RPC/DCOM сервера ЦС
Будь-який нащадковий об'єкт або контейнер AD в
CN=Public Key Services,CN=Services,CN=Configuration,DC=<DOMAIN>,DC=<COM>
(наприклад, контейнер Шаблонів сертифікатів, контейнер Видачі сертифікатів, об'єкт NTAuthCertificates тощо)Групи AD делеговані права на управління AD CS за замовчуванням або організацією (такі як вбудована група Cert Publishers та будь-який з її членів)
Прикладом зловживання може бути додавання зловмисником, який має підвищені дозволи в домені, права WriteOwner
до типового шаблону сертифіката User
, зловмисник буде принципалом для цього права. Для експлуатації цього зловмисник спочатку змінив би власника шаблону User
на себе. Після цього mspki-certificate-name-flag
буде встановлено на 1 на шаблоні для активації ENROLLEE_SUPPLIES_SUBJECT
, що дозволяє користувачу вказати альтернативне ім'я в запиті. Після цього зловмисник може зареєструватися за допомогою шаблону, вибравши ім'я адміністратора домену як альтернативне ім'я, і використовувати отриманий сертифікат для аутентифікації як DA.
Last updated