Гайд - От DA до EA с помощью ESC5 | End Way - форум программирования и сливов различных скриптов
  • Присоединяйтесь к нам в телеграм канал! EndWay канал | EndSoft канал | EWStudio канал
  • Хочешь поставить скрипт, но не умеешь?
    А может ты хочешь свой уникальный скрипт?

    Тогда добро пожаловать в нашу студию разработки!

    Телеграм бот: EWStudioBot
    Телеграм канал: EWStudio

Гайд От DA до EA с помощью ESC5

DeCoded

Кибермаг
Автор темы
8 Янв 2023
731
1,758
93
<статья переведена с английского языка, так что заранее прошу прощения за возможные дефекты перевода>
8–11 минут

Существует новый практичный способ повышения с администратора домена до администратора предприятия.

ESC5​

Вы слышали об ESC1 и ESC8. Но как насчет ESC5? ESC5 также известен как “Контроль доступа к уязвимым объектам PKI”. В техническом документе Уилла Шредера и Ли Кристенсена при обсуждении ESC5 упоминаются три класса объектов:

  • Объект компьютера AD сервера CA (т. Е. компрометация через S4U2self или S4U2proxy)
  • Сервер RPC / DCOM сервера CA
  • Любой дочерний объект AD или контейнер в контейнере (например, контейнер шаблонов сертификатов, контейнер центров сертификации, объект theNTAuthCertificates, контейнер служб регистрации и т.д.)
Я собираюсь объяснить, как работает третий пункт, и продемонстрировать, как вы можете использовать его для перехода от доверия к домену вплоть до корпоративного администратора.

Иерархия LDAP ADCS​

ADCS хранит информацию о центрах сертификации и шаблонах сертификатов в LDAP. Вы можете увидеть эти объекты, открыв ADSI и подключившись к контексту именования конфигурации. Затем перейдите вниз:

1*zkWpGQDTpsgUMwNz2i6b-g.png

Конфигурация > Службы > Службы открытых ключей

Вот график этой иерархии, включающий объекты, которыми мы собираемся злоупотреблять:

1*EeBSsTyqNg3hI7GNoGZ-lA.png

В контейнере “Шаблоны сертификатов” хранятся шаблоны, которые могут быть опубликованы в центре сертификации ADCS. Когда вы видите это диалоговое окно, оно буквально просто перечисляет объекты шаблона, которые находятся в этом контейнере:

1*bfmWzT0NisA3wV-mQI4PkA.png

В контейнере “Службы регистрации” хранится один объект pKIEnrollmentService для каждого центра сертификации. В этих объектах перечислены шаблоны, которые были “опубликованы” в CA в их свойстве “certificateTemplates”:

1*IZ85H91hcviUTaYvT6Q4mQ.png

Это два объекта LDAP, которыми вам нужно управлять для выполнения шаблона сертификата ESC5 — one и объекта pKIEnrollmentService. Для целей этого блога мы предполагаем, что объект pKIEnrollmentService связан с центром сертификации, которому доверено выполнять аутентификацию домена, и что ему доверяют либо как корневому центру сертификации, либо по цепочке до корневого центра сертификации.

Прежде чем я покажу вам, как проводить атаку, мне нужно заложить еще кое-какой фундамент.

Любопытный случай с контекстом именования конфигурации​

Контекст именования конфигурации (NC) - это место, где Active Directory хранит данные конфигурации для всего леса, которые должны быть реплицированы по всему лесу AD. Отличительным именем для NC является CN=Configuration,DC=example,DC=local, где DC=example,DC=local - DN корневого домена леса.

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

Но чего вы, возможно, не знаете, так это того, что верно и обратное: если объект в конфигурации изменяется в дочернем домене, это изменение реплицируется вплоть до корня леса. Это потому, что каждый доступный для записи контроллер домена в лесу имеет доступную для записи копию контекста именования конфигурации леса.

Йонас Бюлов Кнудсен, Мартин Сон Кристенсен и Тобиас Торбьерн Мунк Торп создали сообщение в блоге, в котором они злоупотребили этим механизмом, чтобы перейти от администратора домена в дочернем домене к администратору предприятия в корне леса, злоупотребляя ссылками объекта групповой политики на сайты.

Вот лаборатория, в которой у меня есть корневой домен леса под названием ForestRoot.local и дочерний домен под названием ChildDomain.Корень леса.Местные новости:

1*2b2yOiRnXAo3kWainwOkPg.png

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

1*91k8N_wT0mhLh5tEZqDaOg.png

Мы рассматриваем локальную копию объекта корня леса в домене.

Теперь давайте посмотрим на дескриптор безопасности для этого объекта:

1*OPueg_UsLvozHRl3ovhnfw.png

Как администратор домена в дочернем домене, я не имею никакого контроля над этим объектом. Вы можете видеть, что кнопка для добавления ACE здесь выделена серым цветом. Но вы также можете заметить, что СИСТЕМНЫЙ участник имеет полный контроль над этим объектом.

Я закрою MMC и снова открою его, но на этот раз с помощью PsExec для запуска MMC в качестве СИСТЕМНОГО пользователя:

1*9UjvZueXqyaWJQ20IwygXQ.png

Я снова подключусь к контексту именования локальной конфигурации домена, перейду к контейнеру служб открытых ключей и открою его дескриптор безопасности:

1*LaV8S8dROZ-NXIoBy5KxXQ.png

Теперь мы можем добавить ACEs. Я добавлю ACE к этому объекту, предоставляя Бобу — пользователю в дочернем домене — полный контроль над этим контейнером:

1*r3wB3EppxqnShlT4jct7rg.png

А теперь давайте посмотрим на контейнер служб открытых ключей, но на этот раз на контроллере корневого домена леса, подключенном к контексту именования конфигурации корневого домена леса:

1*2ZuIrvLf0rxZryCevttfxA.png

ACE реплицировался до корня леса из дочернего домена.

Собираем все это вместе​

Как минимум, нам нужны следующие возможности для выполнения ESC5 при злоупотреблении контролем над объектами PKI в LDAP:

  1. Возможность добавлять новые шаблоны в контейнер шаблонов сертификатов.
  2. Доступ на запись к объекту pKIEnrollmentService, связанному с корневым центром сертификации леса или подключенному к нему по цепочке и связанному с центром сертификации, которому доверена аутентификация NT.
В этом примере я собираюсь показать вам, как превратить администратора домена в дочернем домене в администратора предприятия в корне леса. Вы видели ранее, что как администратор домена в дочернем домене мы имеем полный контроль над контейнером служб открытых ключей.

У нас нет полного контроля над объектом pKIEnrollmentService, но мы можем предоставить себе этот контроль, поскольку у этого объекта включено наследование разрешений:

1*mbTa2zGS8n2gSsXh1ywxcw.png

Но у шаблонов по умолчанию отключено наследование разрешений, и мы не можем контролировать их как администратор домена в дочернем домене:

1*yjb49YvTvxruEaCKeGwMHQ.png

Давайте посмотрим на дескриптор безопасности для самого контейнера шаблонов сертификатов:

1*uWfmBMUzlCXjaff2uQ2FBg.png

Мы будем использовать PsExec для запуска mmc в качестве СИСТЕМНОГО пользователя на дочернем DC:

1*lXtbIS8CQ-1LIDNsS-1qow.png

Затем мы подключимся к контексту именования локальной конфигурации домена и перейдем к контейнеру шаблонов сертификатов. Теперь у нас есть полный контроль над этим объектом, который включает в себя возможность добавлять дочерние объекты.

Чтобы воспользоваться этой привилегией, я открою certsrv.msc как СИСТЕМНЫЙ пользователь, затем продублирую существующий шаблон:

1*j7HzsvjomuLflH9XmkT-kQ.png

Это откроет свойства для нашего нового шаблона, где я настрою шаблон, чтобы мы могли выполнить ESC1 с помощью:

  1. Предоставление прав на регистрацию участнику, которого мы контролируем в дочернем домене.
  2. Включение аутентификации клиента в политики приложений.
  3. Разрешение SANS в запросах сертификатов.
  4. Не позволяет получить одобрение менеджера или авторизованные подписи.
Новый шаблон записывается в нашу локальную копию контекста именования конфигурации предприятия, а затем реплицируется в контекст именования конфигурации контроллера корневого домена леса:

1*fo_UFej1IGu16frcNZgfVA.png

Теперь шаблон должен быть опубликован в CA. Мы можем сделать это как СИСТЕМНЫЙ пользователь дочернего DC, злоупотребив нашим полным контролем над этим объектом:

1*87yrZS-BlfDcAo_aBunMEQ.png

Сертификаты “публикуются” в CA, когда они перечислены в свойстве certificateTemplates этого объекта. Все, что нам нужно сделать, чтобы “опубликовать” шаблон в CA, - это добавить шаблон в этот список:

1*UJdjbYC78JAPs5i2jzbSAg.png

Если мы запустим certsrv.msc на контроллере корневого домена леса и проверим “Шаблоны сертификатов” для нашего центра сертификации, мы действительно сможем увидеть, что этот новый шаблон evil теперь “опубликован” и готов к использованию:

1*Dcg3w7mQhL_vtJ9uD0b1kg.png

Теперь все готово для выполнения ESC1 и превращения DA в дочернем элементе в EA в корне леса.

Мы используем Certify для получения сертификата, указывая наш шаблон evil и администратора предприятия, за которого мы хотим выдавать себя:

1*KP5IDxIrQeY66mcRNUBA0A.png

1*Ua0KLEDkDMM2t2vpiY6d9w.png

Мы преобразуем сертификат в PFX с помощью openssl:

1*xXN50HBbcRrXgUx3n-LJOw.png

Мы помещаем PFX в дочерний домен DC через канал RDP, затем используем Rubeus, чтобы получить TGT для корпоративного администратора, продемонстрировав, что мы не являемся локальными администраторами в корневом домене леса:

1*KsmquWisOURjeqTIzM6vZA.png

Мы можем доказать, что наш TGT действителен с помощью wmic:

1*8lLmrUETA5alZ8JtDJonWQ.png

Думайте в графиках​

Я визуальный человек. Если вы похожи на меня, то представление этого пути атаки в терминах графика поможет вам понять все движущиеся фигуры.

Мы начнем с корневого домена леса и соответствующих объектов в контексте именования его конфигурации. Бирюзовый узел - это головной узел домена, оранжевые узлы - контейнеры, а фиолетовые узлы - объекты CA:

1*nwilvaHo0eT35a0sNH_s-w.png

Теперь мы добавляем дочерний домен, который имеет двустороннее доверие к корневому домену леса:

1*roj3NbxpLibQmFxO1_9oxQ.png

Дочерний домен имеет свой собственный домен-локальную копию контекста именования конфигурации корневого домена леса:

1*uRa8INwfmr-dc98ALg3m-A.png

Изменения, внесенные в домен-локальные объекты в дочернем домене реплицируются до соответствующих им объектов в корневом домене леса:

1*P32XTtA_dYU-wZJ_znGg6g.png

СИСТЕМНЫЙ пользователь на контроллере домена дочернего домена имеет полный контроль над некоторыми объектами в домене-локальной копией контекста именования конфигурации корневого домена леса:

1*RK9kpddurgZDNxzc8LDHNw.png

Полный контроль над контейнером шаблонов сертификатов означает возможность добавлять новые объекты в этот контейнер. Любые новые шаблоны, добавленные здесь, также реплицируются до корневого домена леса:

1*1gNvncCmbf6tgT83_6GkXQ.png

Центр сертификации является корневым центром сертификации для корневого домена forest, а корневой домен forest содержит своих пользователей, таких как пользователь ForestRootDA:

1*8DLZuQgkWQzhJybyUL-pIg.png

Красными краями выделен фактический путь, пройденный от контроллера домена дочернего домена до администратора корневого домена леса:

1*qUH2Qfl4UYhIkLyM2xueNQ.png

Заключение и будущая работа​

В этом сообщении показано, как злоумышленник может использовать ESC5, за которым следует ESC1, чтобы превратить DA в дочернем домене в EA в корне леса.


 
Активность:
Пока что здесь никого нет