NTDS.DIT¶
NTDS.DIT — это файл базы данных службы каталогов Active Directory (AD) в операционных системах семейства Microsoft Windows Server, начиная с версии Windows 2000. Файл NTDS.DIT (от англ. NT Directory Services — Directory Information Tree) является центральным хранилищем информации о всех объектах домена: пользователях, группах, компьютерах, принтерах, а также о политиках безопасности и парольных хешах. Он расположен по умолчанию в каталоге %SystemRoot%\NTDS\ на контроллере домена и представляет собой базу данных Extensible Storage Engine (ESE), также известную как Jet Blue.
¶Структура и формат
NTDS.DIT представляет собой файл базы данных, управляемый механизмом ESE (Extensible Storage Engine). ESE — это встроенная технология индексирования и поиска, используемая в нескольких продуктах Microsoft, включая Exchange Server. База данных состоит из таблиц, индексов и страниц. Основные таблицы включают:
- Таблица данных (Data Table) — хранит атрибуты объектов (например, имя, пароль, членство в группах).
- Таблица ссылок (Link Table) — хранит связи между объектами (например, членство пользователя в группе).
- Таблица метаданных (Metadata Table) — содержит информацию о структуре схемы Active Directory.
Каждый объект в Active Directory имеет уникальный идентификатор (GUID), а также относительное имя (RDN) и полное доменное имя (DN). Парольные хеши хранятся в атрибуте unicodePwd в зашифрованном виде. Для шифрования используется ключ, производный от пароля учётной записи SYSTEM (SYSTEM account) контроллера домена. Без доступа к этому ключу расшифровать хеши невозможно.
¶История и развитие
Файл NTDS.DIT появился вместе с Active Directory в Windows 2000 Server. До этого в Windows NT 4.0 использовалась база данных SAM (Security Account Manager) для хранения учётных записей локальных пользователей и групп. С появлением Active Directory иерархическая структура доменов потребовала более масштабируемого и отказоустойчивого хранилища.
В Windows 2000 и Windows Server 2003 NTDS.DIT имел фиксированный размер около 4 ГБ. Начиная с Windows Server 2008, размер базы данных стал динамическим и мог достигать десятков гигабайт в зависимости от количества объектов. В Windows Server 2012 и более поздних версиях была улучшена производительность операций чтения/записи, а также добавлена поддержка сжатия страниц для экономии места.
¶Расположение и защита
Файл NTDS.DIT находится в папке %SystemRoot%\NTDS\ на контроллере домена. По умолчанию доступ к этой папке имеют только системные процессы и учётная запись SYSTEM. Администратор домена также может получить доступ, но только через специальные инструменты (например, ntdsutil.exe). Для предотвращения несанкционированного копирования файла используется механизм блокировки: пока служба Active Directory (NTDS) запущена, файл заблокирован для записи и чтения сторонними процессами. Однако существуют методы, позволяющие скопировать NTDS.DIT во время работы системы, например, с помощью теневого копирования тома (Volume Shadow Copy).
¶Использование в атаках
NTDS.DIT является одной из главных целей злоумышленников при компрометации домена Windows. Если атакующий получает доступ к файлу NTDS.DIT и ключу шифрования (обычно извлекаемому из реестра или дампа памяти процесса LSASS), он может расшифровать все парольные хеши пользователей домена. Это позволяет выполнить атаку типа «pass-the-hash» или подобрать пароли в офлайн-режиме.
Основные методы получения NTDS.DIT:
- Теневое копирование (Volume Shadow Copy) — создание снимка тома, содержащего NTDS.DIT, с помощью утилит
vssadminилиdiskshadow. Это не требует остановки службы. - Дамп памяти процесса LSASS — извлечение ключа шифрования из памяти процесса Local Security Authority Subsystem Service (LSASS), который держит ключ в открытом виде.
- Эксплуатация уязвимостей — например, уязвимость Zerologon (CVE-2020-1472) позволяла удалённо сбросить пароль учётной записи контроллера домена, после чего можно было скопировать NTDS.DIT.
- Использование инструментов атак — такие программы, как
mimikatz,impacket-secretsdump,crackmapexec, автоматизируют процесс извлечения хешей из NTDS.DIT.
Для защиты от таких атак рекомендуется:
- Регулярно обновлять контроллеры домена.
- Использовать многофакторную аутентификацию для административных учётных записей.
- Ограничивать физический и сетевой доступ к контроллерам домена.
- Включить аудит доступа к файлу NTDS.DIT.
- Использовать решения для обнаружения аномальной активности (например, Windows Defender ATP).
¶Резервное копирование и восстановление
NTDS.DIT автоматически реплицируется между всеми контроллерами домена в рамках одного домена. Это обеспечивает отказоустойчивость: при выходе из строя одного контроллера данные остаются доступны на других. Однако для восстановления после катастрофического сбоя рекомендуется создавать резервные копии с помощью штатных средств Windows Server Backup или сторонних решений, поддерживающих Active Directory.
Восстановление NTDS.DIT из резервной копии возможно только в том случае, если версия схемы и уровень функциональности домена совпадают. Процесс восстановления включает запуск контроллера домена в режиме восстановления служб каталогов (Directory Services Restore Mode, DSRM) и последующее копирование файла из резервной копии.
¶Производительность и обслуживание
Размер NTDS.DIT может существенно влиять на производительность контроллера домена. Для оптимизации рекомендуется:
- Проводить дефрагментацию базы данных с помощью утилиты
ntdsutil.exe(командаcompact to). - Удалять неиспользуемые объекты (например, старые учётные записи компьютеров).
- Настроить автоматическое удаление мусора (garbage collection) — процесс, который удаляет удалённые объекты и освобождает место.
- Следить за объёмом свободного места на диске, так как NTDS.DIT может расти до десятков гигабайт.
¶Альтернативы и будущее
С развитием облачных технологий Microsoft предлагает альтернативы локальному Active Directory, такие как Azure Active Directory (Azure AD) и Azure AD Domain Services. В этих сервисах NTDS.DIT не используется — данные хранятся в распределённой облачной базе данных. Однако в гибридных сценариях (on-premises + cloud) NTDS.DIT остаётся ключевым компонентом для синхронизации объектов с Azure AD через Azure AD Connect.
В будущем, с переходом на Windows Server 2025 и более поздние версии, возможно дальнейшее улучшение производительности и безопасности NTDS.DIT, но фундаментальная архитектура базы данных ESE останется неизменной.
¶Интересные факты
- Размер NTDS.DIT в крупных организациях с сотнями тысяч пользователей может превышать 100 ГБ.
- В Windows Server 2003 существовала возможность сжатия NTDS.DIT с помощью утилиты
ntdsutil, что позволяло уменьшить размер файла на 30–50%. - Файл NTDS.DIT не может быть перемещён на другой диск без остановки службы Active Directory, но его можно разместить на отдельном томе для повышения производительности.
- При удалении контроллера домена из домена NTDS.DIT не удаляется автоматически — его необходимо удалить вручную или с помощью
dcpromo.
¶Источники
- Microsoft Docs: Active Directory Database (NTDS.DIT) — официальная документация по структуре и управлению базой данных.
- «Windows Server 2019 Active Directory: Configuration and Administration» — книга по администрированию Active Directory.
- «The Active Directory Database (NTDS.DIT)» — статья на сайте Petri IT Knowledgebase.
- «Extracting Password Hashes from NTDS.DIT» — техническая статья на портале PentestLab.
- CVE-2020-1472 (Zerologon) — описание уязвимости в базе Common Vulnerabilities and Exposures.