Содержание статьи
Теория
Определения и особенности
Read-only Domain Controller был представлен в Windows Server 2008. Его основная цель — обеспечить безопасное взаимодействие сервера со службой каталогов. Очень часто подобные контроллеры домена ставят в каких‑нибудь удаленных офисах компании, старых филиалах и прочих местах, где невозможно гарантировать достаточную физическую безопасность сервера. Получив доступ к такому устройству, ни один злоумышленник не сможет толком повлиять на домен.
Внутри RODC хранится копия базы AD, но чуточку измененная. Во‑первых, не сохраняется множество атрибутов, например ms-Mcs-AdmPwd
— в этом атрибуте хранится пароль локального администратора при настроенном LAPS. Во‑вторых, разрешено кешировать учетные данные лишь конкретных пользователей. Например, пользователей этого самого удаленного офиса.
Что такое кеширование? Это обычное сохранение учетных данных пользователей. Сохраняются они в файле ntds.
, равно как и на обычном контроллере домена.
Причем RODC не создает домен, а добавляется в существующий. Делается это еще на этапе установки и выглядит вот так.

При этом использование RODC дает множество преимуществ в плане безопасности: отдельный DNS-сервер, изменения в котором никак не отражаются на основном, делегирование роли администратора любому пользователю (причем этот пользователь необязательно должен быть администратором на обычных контроллерах домена).

Также следует выделить особенность репликации (DCSYNC) — она возможна только со стороны обычного контроллера домена. RODC ничего реплицировать не может. Также присутствует изоляция SYSVOL — любые изменения в групповых политиках остаются на RODC и не распространяются на основной домен.
Если рассматривать RODC на «тировой» архитектуре Microsoft, то возникают определенные сложности, так как принадлежащие Tier 0 ресурсы не могут работать в тех местах, где должны находиться RODC. А RODC не должны иметь под контролем какие‑либо ресурсы из Tier 0. Поэтому хосты RODC и учетные данные для подключения к ним никак не могут принадлежать Tier 0, но вот сами компьютерные объекты RODC следует защищать, как Tier 0.
Атрибуты
RODC имеет множество особенностей. Первая — почти вся нужная атакующему информация находится в атрибутах компьютерной учетной записи RODC. Наиболее интересные для нас атрибуты кратко описаны ниже.
managedBy
Здесь указывается объект, которому делегировано административное управление RODC. Любой пользователь или группа, указанные в этом атрибуте, являются локальными администраторами на RODC:
Get-ADComputer 'RODC' -prop managedBy

msDS-RevealOnDemandGroup, msDS-NeverRevealGroup
В этом атрибуте указываются объекты, учетные данные которых могут кешироваться. Кеширование нужно для того, чтобы эти пользователи могли проходить проверку подлинности на RODC.
Get-ADComputer 'RODC' -prop msDS-RevealOnDemandGroup,msDS-NeverRevealGroup

Соответственно, существует атрибут, запрещающий кеширование прописанных в нем учетных данных объектов. Он называется msDS-NeverRevealGroup
.
msDS-AuthenticatedToAccountList
Здесь будут храниться объекты, которые успешно аутентифицировались на RODC:
Get-ADComputer 'RODC' -prop msDS-AuthenticatedToAccountList

msDS-Revealed*
Это целая группа из нескольких атрибутов:
- msDS-RevealedUsers — список объектов, учетные данные которых когда‑либо кешировались на RODC;
- msDS-RevealedDSAs — список RODC, которые кешировали пароль пользователя;
- msDS-RevealedList — список объектов, учетные данные которых были успешно сохранены на RODC.
Get-ADComputer 'RODC' -prop msDS-RevealedList,msDS-RevealedDSAs,msDS-RevealedUsers

Аутентификация пользователей
RODC кеширует учетные данные определенных пользователей как раз таки, чтобы проверить их подлинность. После успешной аутентификации по всем канонам должен быть сгенерирован TGT-билет, но RODC нельзя считать надежным KDC, поэтому у него создается собственная учетная запись krbtgt
. Ее пароль используется для подписи создаваемых TGT.
Упомянутая учетная запись имеет необычное имя: krbtgt_<
. Эти самые цифры — специальный идентификатор ключа, который использовался для шифрования TGT-билета. Имя новой учетной записи KRBTGT хранится в атрибуте msDS-KrbTgtLink
объекта RODC. А у этой самой новой учетной записи KRBTGT в атрибуте msDS-KrbTgtLinkBl
содержится имя RODC. Таким образом, обнаружив RODC, можно связать его с конкретным KRBTGT_XXXXX
. И, соответственно, обнаружив KRBTGT_XXXXX
, можно связать его с конкретным RODC.
Дополнительно отмечу, что RODC имеет право на сброс пароля этой самой KRBTGT_XXXXX
.
Get-ADUser -filter {name -like "krbtgt*"} -prop Name,Created,PasswordLastSet,msDS-KeyVersionNumber,msDS-KrbTgtLinkBl

Get-ADComputer RODC -Properties msDS-KrbTgtLink

Get-ADUser krbtgt_19160 -Properties msDS-SecondaryKrbTgtNumber,msDS-KrbTGTLinkBl

Поиск RODC
Продолжение доступно только участникам
Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее
Вариант 2. Открой один материал
Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.
Я уже участник «Xakep.ru»