![]() |
https://forum.antichat.xyz/attachmen...c5b7b73acc.png
Цитата:
Дальше разберу атаки на Active Directory аутентификацию через Kerberoasting и AS-REP Roasting: от разведки через LDAP до офлайн-крекинга в Hashcat и детектирования каждого шага по Event ID. Не абстрактно - с конкретными командами, флагами и объяснением, почему выбран именно такой подход. Kerberos за 90 секунд - что нужно знать для атаки Перед тем как ломать, надо понимать протокол. Kerberos работает на билетной системе из трёх участников: клиент, KDC (Key Distribution Center, он же контроллер домена) и целевой сервис. Упрощённый флоу:
Kerberoasting атака - полный цикл Kerberoasting (T1558.003, Credential Access по MITRE ATT&CK) - постэксплуатационная техника для извлечения зашифрованных учётных данных сервисных аккаунтов из Active Directory. Любой аутентифицированный доменный пользователь может провернуть это - привилегии Domain Admin не нужны. Разведка - поиск SPN через LDAP Первый шаг - найти аккаунты, к которым привязаны SPN. Тут важно не путать: SPN на машинных аккаунтах (host-based SPN) нам неинтересны. Их пароли - 240 байт криптографически случайных данных, которые ротируются каждые 30 дней по умолчанию (параметр Код:
Domain member: Maximum machine account password ageЧерез PowerShell, если работаю с Windows-хоста: Код: Код:
# Поиск пользовательских аккаунтов с SPNКод:
PasswordLastSetКод:
MemberOfЧерез BloodHound - после сбора данных SharpHound'ом - Kerberoastable-аккаунты находятся встроенным запросом List all Kerberoastable Accounts. BloodHound покажет не просто список, а пути от скомпрометированной учётки до цели - то, чего обычный LDAP-запрос не даст. Через CrackMapExec с Linux-хоста: Bash: Код:
# Перечисление Kerberoastable аккаунтовПосле обнаружения целей запрашиваем сервисные билеты. Два основных инструмента: Impacket (с Linux) и Rubeus (с Windows). Impacket - GetUserSPNs.py: 🔓 Часть контента скрыта: Эксклюзивный контент для зарегистрированных пользователей. Зарегистрироваться или Войти Bash: Код:
# Запрос TGS для всех Kerberoastable аккаунтов
Код:
-hashes LMHASH:NTHASHКод:
aad3b435b51404eeaad3b435b51404eeBash: Код:
# Kerberoasting через pass-the-hashКод: Код:
# Запрос TGS для всех Kerberoastable аккаунтовКод: Код:
# Форсировать AES-шифрование (тише, но крек медленнее)Код:
KRB-ERROR (14)Код:
/enctype:aes256Взлом Kerberos хэшей - Hashcat и режимы Хэши из TGS-билетов крекаются офлайн - KDC об этом не узнает, логов не будет. Тишина. Bash: Код:
# RC4 (etype 23) - Hashcat mode 13100
Правила ( Код:
-rКод:
best64.ruleКод:
Summer2023!Код:
Svc_Password1Что даёт успешный Kerberoasting Получив пароль сервисного аккаунта, атакующий наследует все его права. Если учётка в Domain Admins - игра окончена. Если нет - она часто имеет доступ к базам данных (SQL Server), файловым шарам или используется для делегирования, что открывает путь к lateral movement. По данным CrowdStrike, после получения учётных данных через Kerberoasting атакующий может красть данные, повышать привилегии и закрепляться бэкдорами. AS-REP Roasting - когда пароль не нужен даже для запроса AS-REP Roasting (T1558.004, Credential Access по MITRE ATT&CK) эксплуатирует аккаунты с отключённой преаутентификацией Kerberos. В отличие от Kerberoasting, здесь даже не нужна валидная доменная учётка - достаточно знать имя пользователя. Напомню механику: при обычной аутентификации клиент шлёт AS-REQ с зашифрованной временной меткой. Если преаутентификация отключена ( Код:
DONT_REQUIRE_PREAUTHПоиск аккаунтов без преаутентификации Код: Код:
# PowerShell - поиск аккаунтов с DONT_REQUIRE_PREAUTHПолучение AS-REP и крекинг Impacket - GetNPUsers.py: Bash: Код:
# С доменной учёткой - найдёт все уязвимые аккаунты автоматическиКод:
-format hashcatRubeus: Код: Код:
.\Rubeus.exe asreproast /outfile:asrep_hashes.txtBash: Код:
# AS-REP hash - Hashcat mode 18200Реальные кейсы использования AS-REP Roasting Это не теоретическая угроза. По исследованию The DFIR Report, группировка BlackSuit использовала AS-REP Roasting в атаках с ransomware - целились в аккаунты с отключённой преаутентификацией для получения первоначального доступа к паролям. Группировка Diavol (MITRE ATT&CK Software S0659) действовала аналогично: захват зашифрованных AS-REP-ответов с последующим офлайн-взломом для получения plaintext-паролей. Детектирование Kerberoasting и AS-REP Roasting Переключаюсь в режим Purple Team. Каждая из описанных атак оставляет следы в логах контроллера домена - вопрос в том, сможете ли вы отличить атаку от легитимной активности среди тысяч событий Kerberos в минуту. Event ID 4769 - детектирование Kerberoasting Event ID 4769 (A Kerberos service ticket was requested) генерируется при каждом запросе TGS. В корпоративной среде таких событий - тысячи в минуту. Тупо мониторить 4769 - утонете в шуме. Ключевые поля для фильтрации:
Код: Код:
index=windows EventCode=4769 Ticket_Encryption_Type="0x17"Код:
winlog.event_id: 4769Код:
winlog.event_data.TicketEncryptionType: "0x17"Event ID 4768 - детектирование AS-REP Roasting Event ID 4768 (A Kerberos authentication ticket (TGT) was requested) - основной индикатор AS-REP Roasting. По детальным разборам HackTheBox и Semperis, три условия в связке дают высокоточный индикатор:
Пример запроса для Splunk: Код: Код:
index=windows EventCode=4768 Pre_Authentication_Type=0 Ticket_Encryption_Type="0x17" Service_Name="krbtgt"Код:
Client_AddressHoneypot SPN - ловушка с нулевым false positive Этот приём работает лучше любого SIEM-правила. Создаёте в AD сервисный аккаунт с аппетитным SPN (например, Код:
MSSQLSvc/sqlprod.corp.local:1433Появление Event ID 4769 с Код:
Service_NameПо данным Zscaler, такой deception-based подход позволяет остановить атаку автоматически: при срабатывании алерт уходит в EDR с командой на изоляцию хоста. Это быстрее любой корреляции в SIEM. Практический совет: создайте несколько honeypot-аккаунтов с разными типами SPN (MSSQL, HTTP, exchangeMDB). Rubeus и GetUserSPNs.py запрашивают все SPN разом - любой из honeypot'ов сработает как растяжка. Защита - что реально работает в корпоративных AD-средах gMSA и политика паролей для сервисных аккаунтов Group Managed Service Accounts (gMSA) - самое эффективное средство против Kerberoasting. Пароли gMSA - 240 байт криптографически случайных данных, ротируются автоматически каждые 30 дней. Крекать бессмысленно. По рекомендациям CrowdStrike, gMSA полностью снимают риск, связанный с ручным управлением паролями сервисных учёток. Если gMSA неприменим (старые приложения, специфические конфигурации) - минимум 25 символов со спецсимволами и принудительная ротация. На бумаге это базовая рекомендация, но на практике я встречаю сервисные аккаунты с паролями вроде Код:
Password1Отключение RC4 и форсирование AES Это одновременно замедляет крекинг и делает атаку заметнее в логах. Двойной профит. Через GPO: Computer Configuration → Policies → Windows Settings → Security Settings → Local Policies → Security Options → Network security: Configure encryption types allowed for Kerberos. Оставьте только:
После отключения RC4 любой запрос TGS с Код:
etype 0x17Аудит SPN и аккаунтов без преаутентификации Регулярная проверка - раз в квартал минимум: Код: Код:
# Аккаунты с SPN (потенциальные цели Kerberoasting)PingCastle позволяет проводить комплексный аудит безопасности домена и выявлять подобные проблемы автоматически - рекомендую прогнать хотя бы раз, результаты часто отрезвляют. Связь с другими атаками на Active Directory Kerberoasting и AS-REP Roasting редко существуют в изоляции. На реальном пентесте они - звено цепочки: Kerberoasting → DCSync (T1003.006): получили пароль сервисного аккаунта с правами репликации → выгрузили хэши всех пользователей через DCSync → создали Golden Ticket (T1558.001) с хэшем krbtgt. Домен - наш. AS-REP Roasting → Pass the Ticket (T1550.003): получили пароль пользователя → запросили TGT → используем для lateral movement без повторной аутентификации. Kerberoasting → Silver Ticket (T1558.002): получили пароль сервисного аккаунта → создали поддельный TGS для целевого сервиса без обращения к KDC → доступ к ресурсу без следов в логах контроллера домена. Тихо, как в библиотеке. Для пентестера важно видеть полную картину. BloodHound покажет, что аккаунт Код:
svc_backupКод:
Backup OperatorsПрактический чек-лист: пентест AD аутентификации 🔓 Часть контента скрыта: Эксклюзивный контент для зарегистрированных пользователей. Зарегистрироваться или Войти Пошаговый план для внутреннего пентеста - делай раз, делай два, делай три: Шаг 1: Разведка (Domain Account Discovery, T1087.002) Bash: Код:
# Список Kerberoastable аккаунтов (без запроса билетов)Bash: Код:
python3 GetUserSPNs.py corp.local/user:Password123 -dc-ipBash: Код:
# При наличии учётных данных -request не обязателен (автоматически запрашивает AS-REP)Bash: Код:
# Kerberoasting RC4Bash: Код:
# Проверка полученных учётных данныхЗафиксируйте время каждого действия. После теста передайте SOC-команде timestamps - пусть проверят, что сгенерировалось в логах. Если ни один из ваших запросов не породил алерт - у них проблема, и лучше узнать об этом сейчас, а не когда придёт настоящий гость. Сравнение Kerberoasting и AS-REP Roasting ПараметрKerberoastingAS-REP RoastingMITRE ATT&CKT1558.003T1558.004Нужна доменная учёткаДаНет (достаточно имён пользователей)Целевой аккаунтС привязанным SPNС отключённой преаутентификациейТип билетаTGS (сервисный)AS-REP (аутентификационный)Event ID для детекта47694768Hashcat mode (RC4)1310018200Hashcat mode (AES-256)1970019900 (если в домене отключён RC4; значительно медленнее)Частота в реальных средахВысокаяСредняяОснов ная защитаgMSA, длинные пароли, отключение RC4Включить преаутентификацию Итоги Kerberoasting и AS-REP Roasting - атаки на Active Directory аутентификацию, которые не требуют привилегий, не используют малварь и эксплуатируют штатные механизмы протокола Kerberos. Защита строится на трёх уровнях: усиление паролей (gMSA, 25+ символов), ограничение криптографии (только AES), мониторинг (Event ID 4769/4768 с фильтрацией по etype и honeypot SPN). Ни один из уровней не работает в одиночку - только в связке. Если вы пентестер - проверяйте эти вектора первыми, они дают результат быстрее всего. Если на стороне защиты - прямо сейчас запустите два PowerShell-запроса из раздела «Аудит». Список из двадцати учёток, полученный за пять минут, покажет реальную поверхность атаки вашего домена. Если в этом списке есть аккаунт с Код:
PasswordLastSet |
| Время: 20:56 |