DCShadow — новая техника атаки на Active Directory
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. Это может позволить злоумышленнику применить новые способы скрытного закрепления в успешно атакованных системах.