24 января 2018 года на конференции безопасности Microsoft BlueHat исследователями Benjamin Delpy и Vincent Le Toux была продемонстрирована новая технология атаки против инфраструктуры Active Directory.
Название новой техники атаки — DCShadow. Такая атака позволяет злоумышленнику создать поддельный контроллер домена в среде Active Directory для репликации вредоносных объектов в рабочую инфраструктуру Active Directory.
В первую очередь атака примечательна тем, что ее автором является автор утилиты mimikatz, одной из популярнейших утилит для эксфильтрации паролей в Windows среде. На ее основе работает множество утилит и фреймворков для пост-эксплуатации в Windows среде. В своей время она наделала немало шума, позволяя получать пароли Windows пользователей в открытом виде.
В атаке DCShadow используется триггер DrsReplicaAdd (DRSR 4.11.19.2) для запуска репликации. Это позволяет изменить атрибут replTo контроллера домена и выполнить немедленную репликацию.
Основной вектор атаки DCShadow заключается в создании нового сервера и объектов nTDSDSA в разделе Configuration. Техника атаки хорошо представлена на следующей схеме:
С помощью DCShadow больше не нужно пытаться реплицировать данные, необходимо регистрировать новые контроллеры домена в целевой инфраструктуре для внедрения объектов Active Directory или изменения существующих (путем замены содержимого атрибутов). Идея подложного контроллера домена не является новой и уже использовалась для атак, но требовала инвазивных методов (например установки виртуальной машины с Windows Server).
Для того чтобы сервер являлся контролером домена, он должен выполнять следующие функции:
- использовать хранилище данных, способное реплицировать свою информацию по протоколам LDAP, соответствовать спецификациям MS-DRSR и MS-ADTS;
- быть источником аутентификации, доступным по протоколам Kerberos, NTLM, Netlogon или WDigest;
- использовать систему управления групповыми политиками;
- DNS-провайдер (необязательная роль).
В дополнение к размещению этих служб контроллер домена в процессе создания должен быть зарегистрирован в инфраструктуре каталога, который должен быть принят другим контроллером домена в качестве источника репликации. Репликация данных организована с помощью встроенного процесса службы NTD, называемого средством проверки согласованности знаний (Knowledge Consistency Checker — KCC). Основной функцией KCC является создание и поддержка топологии репликации. По умолчанию KCC инициирует репликации каждые 15 минут для обеспечения последовательного и регулярного обновления.
Авторами техники DCShadow был определен минимальный набора изменений, необходимых для внедрения нового сервера в топологию репликации. Для достижения этой цели атака DCShadow должна изменить целевую базу данных инфраструктуры Active Directory, чтобы разрешить подложному серверу быть частью процесса репликации.
Согласно спецификации MS-ADTS, контроллер домена представлен в базе данных Active Directory объектом класса nTDSDSA, который всегда находится в контексте именования конфигурации домена. Объекты NTDS-DSA могут быть созданы только как дочерние объекты сервера, которые, в свою очередь, могут быть только частью объектов организации или сервера. Таким образом, целью атаки DCShadow является создание нового сервера и объектов nTDSDSA в разделе «Конфигурация» схемы.
Однако недостаточно просто добавить объект чтобы позволить подложному серверу инициировать репликацию. Чтобы быть частью процесса репликации необходимо выполнить два требования:
- доверять другим серверам;
- предоставить поддержку аутентификации для подключения других серверов к подложному серверу чтобы реплицировать данные.
Используя действительную учетную запись, подложный сервер может рассматриваться как надежный сервер Active Directory. Атрибуты Kerberos SPN предоставят поддержку аутентификации для других контроллеров домена.
Это требование выполняется с использованием Kerberos (SPN). SPN используются службой Kerberos (KDC) для шифрования тикета Kerberos с учетной записью компьютера, связанной с SPN. Техника DCShadow позволяет добавить SPN, используемый для аутентификации.
Авторы техники атаки выделили минимальный набор SPN, необходимых для прохождения процесса репликации. Результаты их исследований показывают, что двум SPN требуется, чтобы другой контроллер домена подключался к подложному серверу:
- класс DRS (GUID E3514235-4B06-11D1-AB04-00C04FC2DCD2);
- класс глобального каталога (GC).
DCShadow позволяет установить эти два SPN на атакующий компьютер с помощью RPC-функции DRSAddEntryс. Теперь есть возможность зарегистрировать подложный контроллер домена для участия в процессе репликации и пройти аутентификацию другим контроллером домена.
Последним шагом атаки DCShadow является запуск процесса репликации. Для необходимо следующее:
- подождать, пока процесс KCC другого контроллера домена начнет процесс репликации (15 минут);
- внести репликацию, вызвав функцию DRSReplicaAdd RPC, которая изименит содержимое атрибута repsTo, который начнет немедленную репликацию данных.
Принудительная репликация с помощью IDL_DRSReplicaAdd RPC является последним шагом атаки DCShadow. Это позволит вводить произвольные данные в целевую инфраструктуру AD. При этом становится возможным добавлять новых пользователей в административную группу и т.д.
Следует отметить, что DCShadow не является уязвимостью, это скорее инновационный способом ввода нелегитимных данных в инфраструктуру Active Directory. Это может позволить злоумышленнику применить новые способы скрытного закрепления в успешно атакованных системах.
Комментарии (8)
Aivendil
31.01.2018 10:52Такое ощущение, что статья — перевод, хотя заявлена, вроде, как авторский материал. Сложно представить, что фраза «С помощью DCShadow больше не нужно пытаться реплицировать данные, необходимо регистрировать новые контроллеры домена в целевой инфраструктуре» была сразу насписана по русски.
Visphord
31.01.2018 12:14Enterprice admin — не самое большое, что можно получить из домена. С использованием тех-же техник автора утилитки можно получить золотой билетик, который скинуть уже не так просто как сменить пароль админу. А если копнуть еще глубже — я понял что можно засесть так, что без создания всего леса с 0 выкинуть хакера будет нереально.
prundukevich
1. Чтобы внедрить подложный доменный контроллер необходимо получить highly privileged account like domain or Enterprise admins.
Вопрос. Если получить такие права — нельзя ли в АД вообще всё что угодно делать? Какова тогда цель атаки?
LukaSafonov Автор
Цель атаки пост-эксплуатация и скрытное закрепление в системе.
amarao
Очень узкая и специфичная атака.
С учётом, что админ домена чаще всего может менять схему AD, вфигачить в схему объект нового типа, который может «логиниться» на компьютеры куда проще, чем изображать ценый контроллер домена.
KoMePcAHT
нормальный админ первым делом лишит себя возможности менять схему, создаст для этого отдельную учетку и будет использовать по мере надобности
amarao
А потом на установке эксчейнжа могут быть замечательные сюрпризы, если пользователь имеет право менять схему, но не является локальным админом. А если является — то именно эту учётку и будут компрометировать.
Алсо, нормальные «Администратор»'ы не сидят с админскими правами на рабочих машинах.
Aivendil
Да, тоже начал читать и дойдя до схемы процесса, в которой первый шаг получить Enterprise Admin, был несколько удивлён.