April 13

Pentesting Active Directory (PART 1) | Перевод: THREAD

Введение

Active Directory (AD) - это служба каталогов для сетевых сред на базе Windows, которая имеет решающее значение для централизованного управления ресурсами организации, такими как пользователи, компьютеры, группы, сетевые устройства, общие файловые ресурсы, групповые политики, устройства и доверия. Иерархическая и распределенная структура AD делает его масштабируемым решением, способным поддерживать миллионы объектов в каждом домене и позволяющим создавать дополнительные домены по мере роста организации.

Однако централизация информации также делает главной целью злоумышленников, которые все чаще используют ее в качестве ключевого компонента своих путей атаки. Подсчитано, что около 95% компаний полагаются на Active Directory, что делает ее критически важной для злоумышленников, стремящихся проникнуть в сеть. Успешный фишинг может предоставить злоумышленнику доступ к среде AD в качестве обычного пользователя домена, что обеспечивает достаточный доступ для начала сопоставления домена и поиска слабых мест.

Одна из причин, по которой AD стала главной целью злоумышленников, заключается в том, что она предоставляет функции аутентификации и авторизации в среде домена Windows. Хотя AD разработан с обратной совместимостью, многие из его функций по умолчанию не считаются безопасными, что делает его уязвимым для неправильной настройки и использования. Кроме того, базовая учетная запись пользователя AD может перечислять большинство объектов в AD, что делает чрезвычайно важным надлежащую защиту среды AD.

В последние годы AD подвергается все большему количеству атак, и операторы программ-вымогателей специально выделяют ее в качестве важнейшей части своих путей атаки. Например, программа-вымогатель Conti использовалась в более чем 400 атаках по всему миру и использует недавние критические ошибки Active Directory, такие как PrintNightmare (CVE-2021-34527) и Zerologon (CVE-2020-1472), для повышения привилегий.

Лес AD, Дерево AD / Компоненты

Контроллер домена

Контроллер домена обычно считается надзирателем за Active Directory, ответственным за настройку каталога и его функциональность. Основное назначение Контроллера домена - предоставлять доступ к сетевым ресурсам и учетным записям пользователей путем предоставления услуг аутентификации и авторизации пользователям и службам. Контроллер домена имеет наивысший уровень приоритета в Active Directory, обладая наибольшей степенью контроля и административных полномочий. По сути, контроллер домена выполняет функции администратора Active Directory.

Хранилище данных Active Directory

Хранилище данных Active Directory представляет собой набор файлов базы данных и процессов, которые поддерживают и хранят информацию о пользователях, службах и приложениях. Он содержит важный файл “NTDS.DIT”, который находится в папке “%SystemRoot%\ NTDS” на всех контроллерах домена. Этот файл доступен только через процессы и протоколы контроллера домена и считается наиболее важным компонентом всего Active Directory.

Логические Компоненты Active Directory

Логические компоненты Active Directory состоят из различных элементов, которые существуют в хранилище данных Active Directory и устанавливают правила создания объекта в среде Active Directory. Эти компоненты являются неотъемлемыми компонентами Active Directory и работают вместе для обеспечения бесперебойного функционирования AD.

Домен

Домен служит организационной единицей, которая группирует объекты и обеспечивает управление этими объектами. Домен создает границу для аутентификации и авторизации, позволяя контролировать доступ к ресурсам в пределах этого конкретного домена. Например, подумайте о http://abc.com как о домене.

Дерево

Деревья представляют собой наборы доменов в среде Active Directory, которые совместно используют непрерывное пространство имен с родительским доменом. Они состоят из родительского домена и любых дочерних доменов, которые связаны с ним. Деревья устанавливают доверительные отношения между доменами, что означает, что доверительные отношения между доменами в дереве автоматически распространяются на все домены внутри этого дерева. В контексте Active Directory дерево может быть визуализировано как иерархия доменов, с родительским доменом наверху и дочерними доменами, ответвляющимися от него. Примером древовидной структуры может быть основной домен, такой как “abc.com”, с различными географическими местоположениями, представленными в качестве дочерних доменов, таких как “ca.abc.com” для Канады, “na.abc.com” для Северной Америки и “au.abc.com” для Австралии.

Лес

Концепция леса в Active Directory относится к набору деревьев. Все деревья в лесу связаны между собой общей схемой. Это означает, что конфигурация остается одинаковой для всех ветвей в Лесу. Доверие между всеми доменами поддерживается внутри Леса, и для них типично иметь общего администратора предприятия и администратора схемы. Изображение ниже дает наглядное представление о концепции леса в Active Directory.

Организационные подразделения

Организационные единицы, также известные как подразделения, представляют собой контейнеры в Active Directory, которые используются для группировки объектов, таких как группы пользователей, компьютеры и другие подразделения, и управления ими. Они обеспечивают иерархическую и логическую структуру вашей организации и позволяют эффективно управлять коллекцией объектов. Кроме того, подразделения позволяют делегировать разрешения группам администраторов и применять политики и правила по всей структуре.

Доверительные отношения

Проще говоря, доверительные отношения в Active Directory являются средством установления доступа между ресурсами для получения разрешения на использование ресурсов в другом домене. Доверительные отношения можно в целом разделить на два типа: направленное доверие и транзитивное доверие.

  • Направленное доверие: Этот тип доверия устанавливается в одностороннем направлении, где Доверяющий домен предоставляет доступ Доверенному домену. Визуальное представление этой концепции показано на диаграмме.
  • Транзитивное доверие: Этот тип доверия расширяет отношения за пределы доверия одного домена, чтобы включить другие доверенные домены. Для лучшего понимания этой концепции приведена диаграмма.

Важно отметить: доверительные отношения устанавливаются для обеспечения безопасного доступа к ресурсам в нескольких доменах, что делает их важнейшим компонентом безопасности Active Directory.

Сбор информации с помощью Bloodhound

Шаг 1: Скачайте и установите Bloodhound

  1. Загрузите последнюю версию BloodHound из репозитория GitHub: https://github.com/BloodHoundAD/BloodHound/releases
  2. Извлеките загруженный ZIP-файл в папку на вашей системе.
  3. Установите Neo4j Community Edition (требуется для BloodHound) с сайта: https://neo4j.com/download-center/#community
  4. После установки Neo4j запустите его и создайте новую базу данных графа. Запомните пароль базы данных.

Шаг 2: Запустите BloodHound

  1. Перейдите в папку, куда вы распаковали BloodHound, и запустите файл «BloodHound.exe».
  2. Подключитесь к базе данных Neo4j, введя имя пользователя по умолчанию «neo4j» и пароль, который вы установили для графической базы данных.
  3. После подключения BloodHound отобразит свой основной интерфейс.

Шаг 3: Сбор данных Active Directory с помощью SharpHound

  1. Загрузите последнюю версию SharpHound из репозитория GitHub: https://github.com/BloodHoundAD/SharpHound3/releases
  2. Извлеките загруженный архив в папку на вашей системе.
  3. Запустите SharpHound на целевом домене, используя командную строку с правами администратора. Перейдите в папку, содержащую файл «SharpHound.exe», и выполните следующую команду: SharpHound.exe --CollectionMethod All
  4. После того, как SharpHound закончит сбор данных, он сгенерирует ZIP-файл, содержащий файлы JSON. Этот файл обычно называется «BloodHound-yyyyMMddhhmmss.zip».

Шаг 4: Импорт собранных данных в BloodHound

  1. В BloodHound нажмите кнопку «Загрузить данные» (значок облака со стрелкой вверх) в правом верхнем углу.
  2. Перейдите к месту хранения ZIP-файла, созданного SharpHound, и выберите его.
  3. BloodHound начнет импорт данных, что может занять несколько минут в зависимости от размера данных.

Шаг 5: Проанализируйте результаты

  1. После импорта данных вы можете использовать BloodHound для анализа результатов и выявления потенциальных уязвимостей и путей атак.
  2. Используйте строку поиска в верхнем левом углу, чтобы найти определенных пользователей, компьютеры или группы.
  3. Щелкните по узлам и просмотрите их свойства, входящие и исходящие связи, чтобы проанализировать их соединения и привилегии.
  4. Используйте встроенные запросы BloodHound для определения потенциальных путей атаки, например «Кратчайшие пути к администраторам домена» или «Найти всех администраторов домена».

Выполняя эти шаги и используя BloodHound, вы сможете эффективно проанализировать среду Active Directory и выявить потенциальные уязвимости, которыми могут воспользоваться злоумышленники.

Оригинальная статья | Перевод THREAD