Что ты делаешь для безопасности Active Directory? (часть 1)

Kate

Administrator
Команда форума
Привет! Если ты не понимаешь с чего начать защищать Active Directory я привожу краткий перевод публикации "The Complete Active Directory Security Handbook. Exploitation, Detection, and Mitigation Strategies" от Picus Security. На своем опыте могу сказать, что восстановление Active Directory после взлома - это сущий ад, вся инфраструктура, завязанная на доменную аутентификацию превращается в руины, и восстановление, по существу, является созданием инфраструктуры Active Directory с нуля.

!!! Данный текст предназначен для усиления мер безопасности Active Directory, а все описанные техники приводятся в качестве примера для понимания направления атак и способов их детектирования !!!

Структура хэндбука от Picus Security включает описание самых распространенных типов атак на Active Directory и методов их обнаружения.

  1. Атака Pass the Hash (Т1550)
Обход обычных встроенных средств контроля доступа с использованием такого контекста, как хэши паролей, билетов Kerberos и токенов доступа к приложениям.

  1. Типовой сценарий Pass-the-Hash атаки:
    • Первичное получение доступа в целевую сеть;
    • Дамп хэшированных учетных данных;
    • Использование полученных данных для продвижения по сети.
    • Для реализации атаки используются такие инструменты, как Mimikatz и evil-winrm, а также встроенный PowerShell.
    Шаг 1. Кража хэша пароля
    Чтобы выгрузить список недавно вошедших в систему пользователей и их учетные данные, злоумышленники запускают тулзу Mimikatz, которая, в свою очередь, использует ряд различных методов для извлечения аутентификационной информации из LSASS памяти, включая анализ структуры памяти и использование API Windows. Ниже пример использования тулзы.
    Пример использования тулзы Mimikatz

    Пример использования тулзы Mimikatz
    Шаг 2. Аутентификация через украденный хэш пароля
    На этом шаге злоумышленник проходит аутентификацию в удаленной системе, используя захваченный NTLM-хэш пароля пользователя, ему не потребуется наличие фактического пароля. Для выполнения этой команды злоумышленнику необходимо предоставить только следующие параметры:
    • /user:(имя пользователя);
    • /domain:(имя домена);
    • /ntlm:(NTLM-хеш пароля пользователя).
      Пример использования украденного хэша паролей

      Пример использования украденного хэша паролей
Шаг 3. Доступ к ресурсу через новую учетную запись пользователя

На третьем этапе злоумышленник использует вновь полученную учетную запись пользователя для перемещения в сети. Например, злоумышленник может использовать утилиту командной строки под названием PsExec для удаленного выполнения команд на другом хосте.

Методы обнаружения атаки Pass‑the‑Hash

Ниже приведен список идентификаторов событий в журнале Windows (Event ID), который поможет детектировать атаки Pass-the-Hash

  • Event ID 1 - Process Create
  • Event ID 5 - Process terminated
  • Event ID 10 - Process accessed
  • Event ID 4624 - An account was successfully logged on
  • Event ID 4663 - An attempt was made to access an object
  • Event ID 4672 - Special privileges assigned to new logon
  • Event ID 4688 - A new process has been created.
Методы митигации атаки Pass-the-Hash

Чтобы снизить риск атак с передачей хэша, можно использовать несколько технических мер.

  1. Использовасние Credential Guard в Windows Defender. Это функция, которая была введена в Windows 10 и Windows Server 2016. Этот инструмент использует виртуализацию для защиты хранилища учетных данных и ограничения доступа только к доверенным процессам.
  2. Другая мера — лишение прав администраторов на рабочих станциях пользователей. Это ограничивает возможности злоумышленника запускать вредоносное ПО и извлекать хэши из LSASS.exe. Кроме того, ограничение количества конечных точек, на которых пользователи имеют права администратора снижает риск использования скомпрометированных учетных данных для повышения привилегий.
  3. Рандомизация и хранение паролей локального администратора с помощью такого решения, как Local Administrator Password Solution (LAPS) от Microsoft также добавляет дополнительный уровень безопасности, поскольку снижает возможность злоумышленника горизонтально перемещаться с локальными учетными записями, использующими один и тот же пароль.
  4. Также рекомендуется запретить аутентификацию локальных учетных записей в сети с помощью групповых политиках.
Атака Pass-the-Ticket (T1550)

Pass-the-Ticket — это атака, в которой злоумышленник использует ранее полученный билет Kerberos, который называется Ticket Granting Ticket (TGT). TGT билет является важнейшим компонентом протокола Kerberos, поскольку он позволяет пользователю проходить аутентификацию в некоторых системах без необходимости каждый раз вводить пароль.

Ticket Granting Ticket (TGT) — это тип билета, выдаваемого контроллером домена пользователю после успешной аутентификации в домене. Он включает в себя важную информацию, такую как сеансовый ключ пользователя, членство в группе и привилегии. Kerberos шифрует TGT с использованием хэша пароля пользователя и применяет алгоритмы симметричного шифрования (например, DES или AES) в зависимости от конфигурации среды Kerberos. После шифрования TGT отправляется на компьютер пользователя и сохраняется в памяти. Супер понятно и подробно об атаке на Kerberos писали ребята из российской компании R-Vision здесь.

Имея украденный ключ TGT, злоумышленник может запросить Ticket-Granting Service (TGS) у контроллера домена для конкретной службы в целевой системе, чтобы получить доступ к ее ресурсам.

Инструменты и методы для проведения атак типа Pass-the-ticket

Атаки Pass-the-Ticket могут осуществляться с использованием различных общедоступных инструментов, таких как Mimikatz, Kekeo, Rubeus, Creddump7. Злоумышленники часто используют эти инструменты для извлечения TGT Kerberos из памяти скомпрометированной системы, а затем используют TGT тикет для получения доступа к другим системам в сети.

Шаг 1. Захват билетов Kerberos для действительных учетных записей

Злоумышленник может использовать Mimikatz для извлечения всех TGT билетов из памяти скомпроментированной машины.

a351d516ca2b1c10c2bc202447fe922e.png

На этом этапе злоумышленник использует Mimikatz и вставляет полученный TGT в свою сессию, в результате чего сессия получает разрешения украденных TGT для будущего доступа к ресурсам, при этом не требуюЫтся фактические учетные данные.

dd2142c16746cc24c5a4eae0d21b53fe.png
825f12f46005a0372b9e12c6fcb95404.png

Шаг 3. Анализ привилегий украденного билета

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

116c02f0a13f57bb6a9ea5ce84353c98.png

Шаг 4. Доступ к ресурсам через новую учетную запись пользователя

Наконец, злоумышленник может использовать встроенные утилиты ОС для горизонтального перемещения в сети, и получения доступа к другим ресурсам. Например, злоумышленник может использовать PsExec для запуска powershell.exe на удаленной рабочей станции.

Методы обнаружения атаки Pass-The-Ticcket

Ниже приведен список идентификаторов событий в журнале Windows (Event ID), который поможет детектировать атаки Pass-The-Ticcket

  • Event ID 4768 - A Kerberos Authentication Ticket (TGT) was requested.
  • Event ID 4769 - A Kerberos Service Ticket was requested.
  • Event ID 4770 - A Kerberos Service Ticket was renewed.
Методы митигации атаки Pass-The-Ticcket

  1. Использовасние Credential Guard в Windows Defender.
  2. Еще одним важным шагом является ограничение количества конечных точек, на которых пользователи имеют права администратора. Это существенно снижает риск использования злоумышленником украденного билета для бокового перемещения.
Атака Kerberoasting

Атаки Kerberoasting и Pass-the-Ticket — это два разных метода, используемых для кражи или подделки легитимных учетных данных в среде Kerberos. Kerberoasting— это метод получения учетных данных службы путем запроса билетов службы у контроллера домена и их взлома в автономном режиме.

Kerberoasting это атака, используемая для получения хэшей паролей для учетные записи пользователей Active Directory, которые имеют заданный атрибут Service Principal Name (SPN).

В средах Active Directory ServicePrincipalName(SPN) зарегистрированы для учетных записей, известных как «сервисные аккаунты». Эти учетные записи используются для запуска служб и приложений, и им обычно предоставляются наименьшие привилегии, необходимые для выполнения своих функций.

В случае Kerberoasting злоумышленник может использовать значение SPN учетной записи службы для запроса билета службы (TGS). Билет TGS может быть зашифрован (на RC4) с хэшем пароля учетной записи службы, назначенной запрошенному сервисному аккаунту в качестве ключа. Это означает, что злоумышленник, который перехватывает билеты TGS в сетевом трафике или извлек их из памяти системы, может извлечь хэш пароля учетной записи службы и выполнить автономную атаку методом перебора для восстановления пароля в виде открытого текста.

Инструменты и методы для проведения атак Kerberoasting

Атаки Kerberoasting могут выполняться с использованием различных общедоступных инструментов и утилит, таких как Mimikatz, Rubeus, Impacket, John the Ripper, Hashcat.

Шаг 1. Идентификация SPN и запрос TGS

Первым шагом в атаках Kerberoasting является перечисление (или идентификация) ServicePrincipalNames и запросить сервисные билеты (TGS). Скрипт GetUserSPNs (Python) может выполнять все необходимые шаги для запроса билета TGS для службы с учетом его имени SPN и реальных учетных данных домена

2f9aa9958c5eb8f91fa7c1d008de0e8e.png

Шаг 2. Оффлайн взлом хэша

Получив хэш, злоумышленник может выполнить оффлайн перебор паролей, чтобы получить пароль в виде открытого текста, используя сторонние инструменты, такие как John the Ripper и Hashcat.

Шаг 3:Использование полученного пароля в открытом виде для дальнейшего передвижения

После взлома пароля злоумышленник может использовать учетные данные сервисной учетной записи для доступа к сетевым ресурсам и достижения своих целей. Это может включать в себя утечку данных, перемещение по сети или повышение привилегий.

Методы обнаружения атаки Kerberoasting

Ниже приведен список идентификаторов событий в журнале Windows (Event ID), который поможет детектировать атаки Kerberoasting

  • Event ID 4769 - A Kerberos Service Ticket was requested.
  • Event ID 4770 - A Kerberos Service Ticket was renewed.
Методы митигации атаки Kerberoasting

  1. Отклонение запросов аутентификации без использования безопасного туннелирования Kerberos Flexible Authentication Secure Tunneling (FAST)
    Это расширение предварительной аутентификации создает безопасный канал между клиентом и контроллером домена, стремясь повысить защиту билетов Kerberos от попыток взлома пароля в автономном режиме. Хотя FAST может устранить угрозу, исходящую от Kerberoasting, его быстрое и эффективное внедрение в организации может оказаться сложной задачей.
  2. Устранение использования небезопасных протоколов в Kerberos
    Основная задача - полностью отключить протокол RC4. Как минимум, можно настроить отдельные учетные записи служб, чтобы они не принимали протокол RC4. Для этого необходимо установити атрибуту msDS-SupportedEncryptionTypesк значение 0x18, чтобы только AES128 и AES256 был включен. Такая настройка не только повышает безопасность, но и упрощает обнаружение вредоносной активности, например, использование RC4 в TGS запрос является очевидным индикатором компроментации.
  3. Внедрение строгой парольной политики для служебных учетных записей.
    Пароли сервисных учетных записей должны генерироваться случайным образом, иметь минимальную длину 30 символов и часто меняться.
Атака Golden Ticket

При успешной атаке несанкционированный доступ к ресурсам и конфиденциальной информации достигается за счет использования сервисной учетная запись KRBTGT – ключевая учетная запись в Kerberos для шифрования и подписи всех билетов в домене.

Первоначально злоумышленник взламывает какую-то систему в домене, затем повышает свои привилегии до уровня администратора домена, чтобы извлечь NTHash, принадлежащий KRBTGT аккаунту и найти Security Identifier (SID). С их помощью злоумышленник создает «Золотой билет» — поддельный билет Kerberos. Этот поддельный билет ведет себя как легитимный. Ticket Granting Ticket (TGT) с индивидуальными привилегиями пользователя, часто имитирующими администратора домена.

Эта атака является очень мощной, поскольку она может предоставить злоумышленникам постоянный и широкий доступ к сети в обход регулярных проверок аутентификации. Устойчивость атаки обусловлена ее основной манипуляцией с системой Kerberos, которая остается эффективной даже при изменении пароля krbtgt. Чтобы полностью свести на нет продолжающуюся атаку Golden Ticket, пароль krbtgt необходимо изменить дважды.

Инструменты и методы для проведения атак Golden Ticket

Злоумышленники могут использовать несколько сторонних инструментов, таких как Mimikatz и Impacket.

Шаг 1. Подделка золотого билета.

Для создания действительного золотого билета необходима определенная информация, например: NTHash krbtgt аккаунта и SID домена. Эту информацию можно получить, воспользовавшись тулзой Impacket, если злоумышленник имеет доступ администратора к контроллеру домена.

Злоумышленник получает дамп NTHash, узнает SID домена, использует скрипт ticketer.py для подделки золотого билета.

Шаг 2. Использование золотого билета

Злоумышленник может использовать инструменты выполнения команд Impacket, такие как psexec.py, smexec.py, или wmiexec.py для загрузки и аутентификации с помощью билета, что в конечном итоге дает злоумышленнику возможность выполнения команды.

Методы обнаружения атаки Golden Ticket

Ниже приведен список идентификаторов событий в журнале Windows (Event ID), который поможет детектировать атаки Golden Ticket

  • Event ID 4769 - A Kerberos Service Ticket was requested.
  • Event ID 4624 - An account was successfully logged on.
  • Event ID 4627 - Identifies the account that requested the logon.
Методы митигации атаки Golden Ticket

  1. Ограничение административных привилегий
    Пользователи не должны обладать административными привилегиями. Например, злоумышленник, получивший доступ к рабочей станции, не должен иметь возможности повысить свои привилегии, чтобы нацелиться на контроллер домена.
  2. Минимизация повышенных привилегий
    Учетные записи служб с высокими привилегиями, такие как администраторы домена, следует предоставлять только в случае необходимости. Ограничивая количество этих учетных записей, можно уменьшить количество целей для злоумышленника, пытающегося получить хеш KRBTGT.
  3. Регулярная смена пароля к учетной записи KRBTGT
    Важно менять пароль пользователя KRBTGT регулярно и сразу после любых изменений в персонале, ответственном за администрирование Active Directory. Пароль следует изменить дважды с интервалом 12–24 часа между двумя изменениями, чтобы избежать перебоев в обслуживании.

 
Сверху