Обнаружение атак на Active Directory с помощью Azure
В следующем году будет 20 лет с момента создания службы каталогов Active Directory. За это время служба обросла функционалом, протоколами, различными клиентами. Но необходимость поддерживать совместимость с рядом устаревших клиентов вынуждает иметь настройки по-умолчанию, ориентированные на совместимость. Администраторы часто не меняют их, а это создает большой риск. В этой статье мы рассмотрим обнаружение атак, которые могут привести к domain dominance.
Что общего между между атаками на Active Directory и Azure? 1 марта 2018 года был выпущен сервис Azure Advanced Threat Protection. Это сервис, который является облачным аналогом локального продукта Advanced Threat Analytics. В отличии от локальной версии, облачная не имеет искусственных ограничений для машинного обучения и обновляется регулярно, как и любые облачные сервисы. С его помощью можно обнаружить как типовые атаки, так и аномальное поведение пользователей.
Для начала работы можно зарегистрировать пробную подписку.
После первичных настроек потребуется скачать и инсталлировать шлюз для сбора данных на все контроллеры домена в сети предприятия. На этом настройка завершена.
Теперь предлагаю рассмотреть пример атаки по следующему сценарию: сотрудник-инсайдер, который завладел правами администратора на локальной машине, планирует повысить свои привилегии в домене.
Для начала сотруднику потребуется понять, какую учетную запись ему потребуется скомпрометировать, чтобы получить привилегии в домене. Его интересует группа Domain Admins. Для обнаружения членов Domain Admins он делает запрос в командной строке:
net group "Domain Admins” /domain
Обнаружив пользователей группы, теперь необходимо узнать, на какой машине есть активные сессии одного из пользователей. Остановимся на пользователе trainer.
Для обнаружения сессий я воспользуюсь известным среди пентестеров инструментом Bloodhound. Как видно на схеме, пользователь trainer имеет активную сессии на рабочей станции W10-notGuarded, доступ к которой у злоумышленника также присутствует.
Перейдем на портал Azure ATP и посмотрим новые предупреждения. Запросы на обнаружение групп и сессий были обнаружены.
Вернемся к злоумышленнику. Подключившись к рабочей станции, злоумышленник может сделать дамп процесса lsass с помощью task manager (или из командной строки с помощью procdump). Для этой операции потребуется debug-привилегия.
Получив дамп, злоумышленник может скопировать его на свою рабочую станцию и проанализировать его с помощью Mimikatz.
Скопируем дамп в одну папку с Mimikatz, запустим Mimikatz и подключим дамп для анализа
Sekurlsa::minidump lsass.dmp
Выведем результаты в текстовый файл
Log
Извлечем содержимое дампа
Sekurlsa::logonpasswords
Открыв текстовый файл Mimikatz.log можно найти учетные данные пользователя trainer. Нас интересует NTLM-хэш пароля. Значения на скриншоте скрыты в целях конфиденциальности.
Операция хэширования является необратимой, поэтому извлечь пароль из хэша невозможно. Если пароль был простым, то есть вероятность подбора через радужные таблицы. Предположим, что нам не повезло и пароль не смогли подобрать по хэшу. Тогда в игру вступают атаки класса Pass-the-Hash.
Прежде чем рассматривать атаки, кратко работает как работает аутентификация Kerberos в Active Directory, чтобы понимать, за счет чего данная атака возможна. Чтобы клиент Active Directory могу получить доступ к определенному ресурсу, ему потребуется TGS-билет. Получение билета TGS «на пальцах» выглядит следующим образом:
- Клиент отправляет контроллеру домена текущую дату и время, шифруя их с помощью общего секрета.
- Контроллер домена, получив и расшифровав запрос, оправляет клиенту TGT-билет, в котором содержится информация о пользователе, членом каких групп он является и тд
- Когда клиенту нужен доступ к ресурсу, он обращается к контроллеру, предъявляет TGT-билет и получает TGS-билет
- С этим билетом аутентифицируется на нужном ресурсе
На каком этапе возможна атака, связанная с имеющимся у нас NTLM-хэшем? NTLM-хэш является тем самым общим секретом, которым обладает клиент и контроллер домена. Соответственно, зная NTLM-хэш, можно получить TGT-билет практически легитимно.
Для осуществления атаки нам потребуется рабочая станция в одной сети с контроллером домена и Mimikatz. Сама рабочая станция необязательно должна входить в домен.
Я переключусь на доменную рабочую станцию, за которой работает пользователь jdoe. Проверю, что у меня нет доступа к желаемому ресурсу, но он должен быть у пользователя trainer.
Я открою Mimikatz и повышу привилегии до debug
Privilege::debug
Затем укажу команду:
Sekurlsa::pth /user:trainer /domain:contoso.com /ntlm:
(указать реальный хэш)
Открылась новая командная строка. Проверяю доступ к файлу — доступ предоставлен. При этом, я по-прежнему пользователь jdoe, но у меня есть Kerberos-билеты пользователя trainer.
Данная атака называется Overpass-the-Hash и является эксплуатацией особенностей работы протокола Kerberos. Предотвращение атак возможно с помощью грамотной настройки и обнаружения.
Давайте вернемся на портал Azure ATP и посмотрим что было обнаружено.
Один алерт — Unusual Protocol Implementation. Это обнаружение «нетипичной» аутентификации.
Второй — Encryption Downgrade Activity. Обнаружение запроса Kerberos-билета с помощью Mimikatz.
Таким образом мы оперативно обнаружили одну из атак на протокол Kerberos.
Важно учитывать, что обнаружение атак не исключает необходимость тщательной настройки безопасности Active Directory в соответствии с наилучшими практиками.
Посмотреть Azure ATP в действии вы можете 21 апреля на Azure Global Bootcamp в Москве очно или в онлайн-трансляции.
Узнать больше об основах и других возможностях обеспечения безопасности с помощью Azure можно в новой бесплатной электронной книге «Инфраструктура безопасности Microsoft Azure» на русском языке.
В книге приводится общая информация, советы по проектированию, сценарии развертывания, передовые методики, результаты опросов на технологические темы и пошаговые инструкции, которые помогут вам составить всеобъемлющее предоставление о возможностях обеспечения безопасности Azure.
Об авторе
Сергей Чубаров — руководитель инфраструктурных проектов в компании Prof IT. Обладатель статуса Most Valuable Professional (MVP) по Microsoft Azure. Помимо проектной работы является спикером на технических мероприятиях и региональным лидером среди русскоговорящих тренеров MCT.
Global Azure Bootcamp 2018 Russia
21 апреля, в субботу, проведем Global Azure Bootcamp Russia 2018 — глобальный форум по облачным технологиям Azure. Ежегодно Azure сообщество выбирает единый день проведения конференции в более чем 200 городах по всему миру, где ИТ-эксперты могут обменяться своими знаниями и опытом друг с другом и поделиться им с новичками. Приходите, участие бесплатное.
Регистрация.