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)