Открыть сервисСервис

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.
Заметили ошибку или не согласны с информацией в статье? Напишите нам support@bfometr.ru