Разбираем атаки на Microsoft Active Directory. Техники проникновения и детекта. Ч.1.
Шалом, бегущие в тенях! Привет, случайный подписчик. За последние четыре года ни один Black Hat или DEF CON не обошелся без докладов на тему атак на Microsoft Active Directory. Участники рассказывают о новых векторах и своих изобретениях, но не забывают и о советах, как можно их обнаружить и предотвратить. В этой статье мы рассмотрим популярные способы атак на AD и приведем рекомендации, которые помогут от них защититься. Потихоньку приступаем к практике, господа.
Поехали:
Шесть атак на AD, которые нельзя не заметить
Многие производители программного обеспечения для мониторинга ИБ уже поддерживают в своих продуктах разнообразные техники атак злоумышленников. Рассмотрим некоторые из них.
Pass-the-Hash
Эта техника возможна благодаря архитектурным особенностям протокола аутентификации NTLM, разработанного Microsoft в девяностых годах прошлого века. Для того чтобы залогиниться на удаленном хосте, используется хеш пароля, хранящийся в памяти компьютера, с которого происходит аутентификация. Соответственно, его оттуда можно извлечь.
Mimikatz
Для удобной эксплуатации Pass-the-Hash французский исследователь Бенжамен Делпи (Benjamin Delpy) в 2014 году разработал утилиту mimikatz. Она позволяет дампить из памяти clear-text-пароли и NTLM-хеши.
Brute Force
Если злоумышленнику недостаточно тех учетных данных, которые он извлек с одного хоста, он может прибегнуть к грубой, но действенной технике подбора паролей.
net user /domain
Откуда взять словарь имен пользователей для того, чтобы провести атаку Brute Force? Любому члену домена доступно выполнение команды net user /domain
, которая возвращает полный список имен пользователей из AD.
Kerberoasting
Если же в домене в качестве протокола аутентификации используется Kerberos, то злоумышленник может прибегнуть к атаке Kerberoasting. Любой аутентифицированный в домене пользователь может запросить Kerberos-билет для доступа к сервису (Ticket Granting Service). TGS зашифрован хешем пароля учетной записи, от которой запущен целевой сервис. Злоумышленник, получив таким образом TGS, теперь может расшифровать его, подбирая пароль и не боясь блокировки, поскольку делает это офлайн. В случае успеха он получает пароль от ассоциированной с сервисом учетной записи, которая зачастую бывает привилегированной.
PsExec
После того как злоумышленник получил нужные учетные данные, перед ним встает задача удаленного исполнения команд. Для этого отлично подходит утилита PsExec из набора Sysinternals. Она хорошо себя зарекомендовала как среди IT-администраторов, так и среди атакующих.
Как UAC проверяет действия пользователя в домене?
- UAC не проверяет действия удаленного пользователя, если он локальный админ (46%)
- Проверяются действия всех пользователей, кроме администраторов домена (30%)
- Все команды удаленных пользователей, а локально — за исключением админов (24%)
Семь заклинаний атакующих для захвата Active Directory
Сейчас мы переходим к семи заклинаниям, благодаря которым атакующие могут получить полный контроль над Active Directory. Разделим их на четыре стадии:
- Разведка.
- Продвижение по AD.
- Эксплуатация.
- Захват домена.
На схеме можно увидеть все четыре, а также техники, которые на них применяются. Рассмотрим каждую детально.
Стадия 1. Разведка
Начнем с разведки.
PowerView
Этот инструмент входит в популярный PowerShell-фреймворк для проведения тестирований на проникновение — PowerSploit. Также на него опирается инструмент BloodHound, строящий граф связей объектов внутри AD.
BloodHound сразу предоставляет такие возможности:
- найти аккаунты всех доменных администраторов;
- найти хосты, на которых залогинены доменные администраторы;
- построить кратчайший путь от хоста атакующего до хоста с сессией доменного админа.
Последний пункт дает ответ на вопрос, какие хосты нужно взломать атакующему, чтобы добраться до учетки доменного админа. Такой подход сильно сокращает время на получение полного контроля над доменом.
PowerView отличает от встроенных утилит для получения данных об объектах AD (например, net.exe
) то, что он работает по протоколу LDAP, а не SAMR. Для обнаружения этой активности подойдет событие 1644 с контроллера домена. Логирование данного события включается добавлением соответствующего значения в реестре:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NTDS\Diagnostic\\15 Field Engineering = 5
Стоит обратить внимание на то, что таких событий может быть довольно много, и хорошей альтернативой детекту по событию будет детект по трафику, поскольку LDAP — это clear-text-протокол, соответственно, все запросы в трафике отлично видны.
Еще одна важная особенность этого фреймворка — он написан на чистом PowerShell и не имеет зависимостей. И здесь для детектирования нам поможет появившаяся в PowerShell версии 5 возможность расширенного аудита. Событие 4104 показывает тело скрипта, в котором мы можем поискать характерные для PowerView названия функций.
SPN Scan
Эта техника может заменить атакующему запуск Nmap. После того как атакующий разобрался, какие пользователи и группы есть внутри AD, для полноты картины ему понадобится информация, какие есть сервисы.
Обычно это решается сканированием портов утилитой Nmap. Но теперь эту информацию можно получить и из AD — она там хранится в виде так называемых SPN (Service Principal Names). SPN состоит из serviceclass, он уникален для каждого типа сервиса, затем идет hostname в форме FQDN и для некоторых сервисов — port.
WWW
Обнаружить SPN Scan также поможет аудит событий LDAP.
Важно отметить, что SPN scan имеет явное преимущество перед сканом Nmap: он менее шумный. При использовании Nmap тебе нужно подключаться к каждому узлу и отправлять сотни пакетов на тот диапазон портов, который ты указал. А для получения списка SPN нужно отправить всего один запрос.
Remote Sessions Enumeration
Важной задачей перед атакующим на этапе lateral movement становится определение, какой пользователь на какой машине залогинен. Либо у него уже есть учетные данные пользователя (хеш или Kerberos-тикет) и он ищет хосты, куда можно беспрепятственно залогиниться. Либо он в поисках хоста, где есть живая сессия доменно��о администратора.
Тогда срабатывает сценарий: охота → компрометация любого хоста → залив mimikatz → профит.
Для обнаружения данной техники можно использовать два события. 4624 — это успешный логон на удаленной системе с логон тайпом 3, а также события доступа к сетевой шаре IPC$, и нюанс: название пайпа — srvsvc. Почему пайп так называется, можно понять из трафика.
В левой части в красных рамках обращения к SMB, затем обращения к пайпу — srvsvc
. Вот этот пайп позволяет взаимодействовать по специальному протоколу Server Service Remote Protocol. Конечным хостам он позволяет получать от него различную административную информацию, в том числе среди запросов есть такой, который называется NetSessEnum. В результате этого запроса возвращается полный список залогиненных на удаленной системе пользователей с IP и именами пользователей.
На сегодня всё, киберсталкеры. Надеюсь, вам понравилось. Оставайтесь с нами. Ведь в следующей части данной статьи мы разложим методологию взлома AD Ms по полочкам.