Содержание статьи
Почему стоит уделить особое внимание именно атакам на Active Directory?
Инфраструктура многих компаний построена на основе службы каталогов Active Directory. Даже с учетом того, что сеть может содержать небольшое количество хостов, серверов, сервисов и служб, за достаточно короткий промежуток времени в системе происходят тысячи событий, из‑за чего становится затруднительно анализировать компьютерные инциденты.
Помимо этого, в интернете можно найти множество материалов по реализации как простых, так и продвинутых атак на AD. Поэтому любой скрипт‑кидди, вооружившись парой утилит, может рискнуть и попробовать свои силы в хакинге, что уж говорить про серьезных киберпреступников.
Все это способствует тому, что ребятам из блю‑тима важно обладать знаниями в сфере безопасности инфраструктуры и уметь быстро реагировать на подобные инциденты, а также находить ошибки в конфигурации AD.
Kerberoasting
Перед тем как мы приступим к разбору первой лабораторной работы, начнем с небольшого экскурса в теорию, чтобы знать врага в лицо.
Протокол Kerberos в Active Directory используется для аутентификации пользователей и предоставления доступа к службам. Когда пользователь пытается получить доступ к ресурсу, который управляется именем субъекта‑службы (SPN), при использовании Kerberos контроллер домена создает сервисный билет (ST) и шифрует его с использованием хеша пароля SPN. После этого веб‑сервер расшифровывает и подтверждает подлинность ST.
Однако, если запрос на получение сервисного билета исходит от самого контроллера домена, проверка того, имеет ли пользователь необходимые права для доступа к предоставляемым SPN ресурсам, не выполняется.
Теперь о самом интересном: злоумышленники, зная конкретную службу (или SPN), которую они намерены атаковать, могут отправить запрос на ST с контроллера домена и получить обратно ST, зашифрованный хешем пароля соответствующего SPN.
Часто для проведения атаки Kerberoasting используют утилиту GetUserSPNs из комплекта достаточно мощного инструмента аудита Impacket. Таким образом, злоумышленник получает хеш SPN, который он может пробрутить в автономном режиме и завладеть паролем учетки в открытом виде. Если коротко, то в этом и заключается вся суть описанной атаки. В рамках MITRE ATT&CK Kerberoasting она относится к подтехнике T1558.003.
Campfire-1
Итак, читаем описание лабораторной работы Campfire-1, скачиваем архив, распаковываем его и видим, что нам предоставлены prefetch-файлы машины жертвы, журналы событий рабочей станции и контроллера домена.
Начнем поиск иголки в стоге сена с просмотра событий с кодом 4769
в журнале безопасности на контроллере домена. Этот код обозначает запрос билета службы Kerberos.
Даже в средней по размеру инфраструктуре Active Directory такие запросы могут происходить больше тысячи раз за пару минут, поэтому отфильтруем средство просмотра событий по ID 4769
, что значительно упростит наш поиск.
Теперь нам предстоит отсеять обычные операции AD от подозрительных. Для этого рассмотрим форму события поподробнее.
Здесь мы видим, что учетная запись DC01\
запросила сервисный билет для сервиса, названного DC01\
. В Windows имена, заканчивающиеся символом доллара (\
), обычно являются учетными записями служб и машинными учетными записями. Аналогично служба DC01$
связана с этой учетной записью службы.
Все это относится к стандартным операциям AD. Ниже мы можем увидеть параметр под названием «Тип шифрования билета» со значением 0x12
, что эквивалентно AES256-CTS-HMAC-SHA1-96
. В легитимных случаях использования операций с билетами Kerberos тип шифрования будет 0x12
или 0x11
.
Если мы увидим тип шифрования 0x17
, что соответствует потоковому шифру RC4, это будет поводом глубже изучить ситуацию: злоумышленник может запросить билет с таким типом шифрования, потому что это позволит ему взломать пароль, затратив меньше усилий.
info
Все основные инструменты с открытым исходным кодом, такие как Impacket и Rubeus, запрашивают билеты с типом шифрования RC4.
Запомним идентификаторы, которые помогут быстро отследить необходимое событие с подозрением на Kerberoasting, поэтому обращаем внимание на следующие важные моменты.
Учетные записи, которые не являются учетной записью службы или машины (и не заканчиваются символом
$
). Следовательно, под подозрением любая стандартная учетная запись домена пользователя (эта учетная запись была скомпрометирована, и с ее помощью злоумышленник совершил атаку).Названия служб, которые не заканчиваются символом
$
.Тип шифрования билета
0x17
, что соответствует шифрованию RC4, которое позволит злоумышленникам легко взломать хеш.
С помощью перечисленных критериев легко находим нужное событие.
Видно, что учетная запись домена alonzo.
запросила билет для службы MSSQLService
с типом шифрования 0x17
с компьютера, имеющего IP-адрес 172.
. Запомним эти индикаторы компрометации, поскольку дальнейший анализ будет основываться на построении таймлайна от этого события с использованием IP-адреса и имени учетной записи.
Попробуем разобраться с тем, какие действия происходили от имени учетки alonzo.
. Для этого откроем журнал событий PowerShell. Дата и время ранее найденного нами события Kerberoasting — 2024-05-21
(и да, не забываем переводить время в UTC). В журнале событий PowerShell на хосте ищем подозрительную активность примерно в это же время.
Подозревая, что вредоносные действия были совершены с использованием powershell.
, отфильтруем события по ID 4104
(в этих событиях можно будет увидеть тело выполняемого скрипта).
И действительно, находим подозрительное событие с байпасом выполнения сценария PowerShell буквально за пару минут до совершения атаки.
Такое действие позволяет выполнять сценарии в сеансе PowerShell. Из дальнейшего анализа событий видно, что все они были частью одного сценария.
Обнаружены доказательства зловредности сценария PowerView.
, который использовался для совершения действий на этапе постэксплуатации.
Пришло время проанализировать файлы предварительной загрузки. Для этого воспользуемся утилитой PECmd
Эрика Циммермана. Преобразуем prefetch-файлы в .
:
PECmd.exe -d "путь/к/папке/с/файлами/предварительной/загрузки" --csv . --csvf наш_ксв_файл.csv
Для более удобного анализа с помощью Timeline Explorer открываем .
и фильтруем дату инцидента по последнему запуску.
Сопоставив временные метки событий, находим, что в интересующий нас промежуток времени запускался RUBEUS.
— инструмент, используемый при пентесте и атаках на AD.
Меры предотвращения
Чтобы предотвратить такие атаки, важно использовать длинные и сложные пароли для учетных записей служб. Это значительно замедлит взлом хешей.
Для привилегированных служб рассмотри возможность применять управляемые группы сервисных учетных записей (GMSA), чтобы гарантировать использование длинных, сложных паролей, которые часто меняются.
Реализация управления привилегированным доступом (PAM) также поможет ограничить воздействие привилегированных учетных данных и уменьшить поверхность атаки для Kerberoasting, одновременно обеспечивая мониторинг всех изменений разрешений для групп безопасности.
AS-REP Roasting
А теперь еще немного теории, чтобы понять, что это за зверь такой — AS-REP Roasting. Запрос сервера аутентификации (AS-REQ) обычно называют предварительной аутентификацией Kerberos. Первое, что происходит во время аутентификация внутри Kerberos, — это запрос аутентификации к контроллеру домена, чтобы можно было проверить юзера, пытающегося пройти аутентификацию.
Продолжение доступно только участникам
Материалы из последних выпусков становятся доступны по отдельности только через два месяца после публикации. Чтобы продолжить чтение, необходимо стать участником сообщества «Xakep.ru».
Присоединяйся к сообществу «Xakep.ru»!
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее