AD CS Domain Persistence
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Це резюме технік збереження домену, представлених у https://www.specterops.io/assets/resources/Certified_Pre-Owned.pdf. Перевірте його для отримання додаткових деталей.
Як можна визначити, що сертифікат є CA сертифікатом?
Можна визначити, що сертифікат є CA сертифікатом, якщо виконуються кілька умов:
Сертифікат зберігається на CA сервері, а його приватний ключ захищений DPAPI машини або апаратним забезпеченням, таким як TPM/HSM, якщо операційна система це підтримує.
Поля Issuer і Subject сертифіката збігаються з відмінним ім'ям CA.
У сертифікатах CA присутнє розширення "CA Version" виключно.
Сертифікат не має полів Extended Key Usage (EKU).
Щоб витягти приватний ключ цього сертифіката, підтримуваним методом є інструмент certsrv.msc
на CA сервері через вбудований GUI. Проте цей сертифікат не відрізняється від інших, що зберігаються в системі; отже, можна застосувати методи, такі як THEFT2 technique для витягнення.
Сертифікат і приватний ключ також можна отримати за допомогою Certipy з наступною командою:
Після отримання сертифіката CA та його приватного ключа у форматі .pfx
, можна використовувати інструменти, такі як ForgeCert, для генерації дійсних сертифікатів:
Користувач, на якого націлено підробку сертифіката, повинен бути активним і здатним аутентифікуватися в Active Directory, щоб процес був успішним. Підробка сертифіката для спеціальних облікових записів, таких як krbtgt, є неефективною.
Цей підроблений сертифікат буде дійсним до дати закінчення, зазначеної в ньому, і доки сертифікат кореневого ЦС є дійсним (зазвичай від 5 до 10+ років). Він також дійсний для машин, тому в поєднанні з S4U2Self зловмисник може підтримувати стійкість на будь-якій доменній машині доти, поки сертифікат ЦС є дійсним. Більше того, сертифікати, згенеровані цим методом, не можуть бути відкликані, оскільки ЦС не знає про них.
Об'єкт NTAuthCertificates
визначено для містити один або кілька сертифікатів ЦС в атрибуті cacertificate
, який використовує Active Directory (AD). Процес перевірки з боку доменного контролера включає перевірку об'єкта NTAuthCertificates
на наявність запису, що відповідає ЦС, зазначеному в полі Видавець аутентифікуючого сертифіката. Аутентифікація продовжується, якщо знайдено відповідність.
Зловмисник може додати самопідписаний сертифікат ЦС до об'єкта NTAuthCertificates
, якщо він має контроль над цим об'єктом AD. Зазвичай лише члени групи Enterprise Admin, разом з Domain Admins або Administrators в домена кореня лісу, мають право змінювати цей об'єкт. Вони можуть редагувати об'єкт NTAuthCertificates
, використовуючи certutil.exe
з командою certutil.exe -dspublish -f C:\Temp\CERT.crt NTAuthCA126
, або за допомогою PKI Health Tool.
Ця можливість є особливо актуальною, коли використовується разом з раніше описаним методом, що включає ForgeCert для динамічної генерації сертифікатів.
Можливості для стійкості через модифікації дескрипторів безпеки компонентів AD CS є численними. Модифікації, описані в розділі "Domain Escalation", можуть бути зловмисно реалізовані зловмисником з підвищеним доступом. Це включає додавання "прав контролю" (наприклад, 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.
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)