• B правой части каждого сообщения есть стрелки и . Не стесняйтесь оценивать ответы. Чтобы автору вопроса закрыть свой тикет, надо выбрать лучший ответ. Просто нажмите значок в правой части сообщения.

Вопрос по kerberos as_rep roasting

Tak10

New member
03.09.2025
2
0
Доброго времени суток. Возник ряд вопросов по взлому хэша полученного в результате атаки as_rep roasting.
#Вводные:
Если я правильно понимаю то в результате атаки происходит перехват kerberos_as_rep. Сам ответ, как я понимаю, состоит из двух сообщений:
Первое сообщение зашифровано с использованием секрета клиента и содержит:
-Сессионный ключ для KDC
-Метка времени
-Срок жизни TGT
Второе сообщение (TGT) зашифровано уже с использованием секрета KDC и включает в себя те же самые данные, что и первое сообщение, но вместе с принципалом клиента.
Секрет клиента которым зашифровано первое сообщение создается с использованием хэш функции string2key. Хэш может вычисляться разными способами в зависимости от соответствующих настроек Kerberos, в частности поддерживаются следующие алгоритмы:
-RC4_HMAC_MD5
-AES128_CTS_HMAC_SHA1_96
-AES256_CTS_HMAC_SHA1_96
Если я правильно понимаю суть атаки, то на основе первого сообщения зашифрованного секретом клиента можно попробовать подобрать пароль клиента, так как секрет клиента создан на основе его пароля. Например с помощью hashcat:
hashcat -m 18200 asrep_hash.txt wordlist.txt
#Собственно сами вопросы:
Так вот как именно в данном случае работает подбор по словарю, учитывая то что перехваченное сообщение которое мы взламываем не содержит пароль клиента? А точнее как именно hashcat понимает что он подобрал корректный пароль?
Я правильно понимаю что hashcat поочередно генерирует из каждого пароля из словаря предпологаемый ключ, после чего пытается расшифровать сообщение получившимся ключом, а то подходит ли получившийся ключ определяет по какомуто шаблону которому должно соответствовать корректно расшифрованное первое сообщение kerberos_as_rep?
Если мое предположение верно то как hashcat понимает какой из трех основных алгоритмов используемых для генерации секрета клиента ему необходимо использовать?
Сори за количество текста. Буду очень благодарен если кто нибудь сможет подтвердить, или опровергнуть мое предположение, доходчиво обьяснив детали.
 
Решение
Ты почти всё правильно понял про AS-REP Roasting, но есть нюансы, которые делают эту атаку красивой.

Когда ты перехватываешь AS-REP, первая часть ответа действительно зашифрована ключом, производным от пароля пользователя. Но вот в чём фишка: в структуре Kerberos AS-REP есть специальная часть, которая называется enc-part.

Эта enc-part содержит определённые поля с предсказуемой структурой. В частности, там есть PA-ENC-TIMESTAMP, это зашифрованная временная метка.

Hashcat не просто тупо расшифровывает и смотрит "похоже ли на правду". Он использует известную структуру данных внутри зашифрованного блока.

Вот как это работает на практике:
  1. Hashcat берёт слово из словаря
  2. Генерирует из него ключ через string2key
  3. Пытается...
Ты почти всё правильно понял про AS-REP Roasting, но есть нюансы, которые делают эту атаку красивой.

Когда ты перехватываешь AS-REP, первая часть ответа действительно зашифрована ключом, производным от пароля пользователя. Но вот в чём фишка: в структуре Kerberos AS-REP есть специальная часть, которая называется enc-part.

Эта enc-part содержит определённые поля с предсказуемой структурой. В частности, там есть PA-ENC-TIMESTAMP, это зашифрованная временная метка.

Hashcat не просто тупо расшифровывает и смотрит "похоже ли на правду". Он использует известную структуру данных внутри зашифрованного блока.

Вот как это работает на практике:
  1. Hashcat берёт слово из словаря
  2. Генерирует из него ключ через string2key
  3. Пытается расшифровать enc-part
  4. Проверяет контрольную сумму (checksum)
Если контрольная сумма сошлась, значит бинго, пароль найден. Это ключевой момент: в Kerberos используется криптография с проверяемым шифротекстом (authenticated encryption).

Для RC4-HMAC проверяется HMAC, для AES проверяется целостность через HMAC-SHA1. Если расшифровка прошла корректно, контрольная сумма обязательно совпадёт.

Определение алгоритма шифрования - тут всё проще, чем кажется. В самом AS-REP ответе есть поле etype (encryption type), которое явно указывает используемый алгоритм:
  • 23 = RC4-HMAC
  • 17 = AES128-CTS-HMAC-SHA1-96
  • 18 = AES256-CTS-HMAC-SHA1-96
Hashcat читает это поле из хэша и автоматически выбирает нужный алгоритм. Поэтому для разных типов шифрования у него разные режимы: -m 18200 для RC4, -m 19600 для AES128, -m 19700 для AES256.

Проверено на практике: вся красота в том, что злоумышленнику не нужен доступ к KDC или знание его секретов. Достаточно перехватить один AS-REP ответ для пользователя с отключенной Kerberos предварительной аутентификацией.

Структура данных в enc-part достаточно специфична, чтобы с высокой вероятностью определить правильность расшифровки. Плюс контрольные суммы гарантируют, что случайное совпадение практически невозможно.

Короче, твоё понимание в целом верное. Hashcat действительно перебирает пароли, генерирует ключи и проверяет корректность расшифровки по известной структуре и контрольным суммам. А тип шифрования он узнаёт из самого перехваченного сообщения.
 
Решение
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab

Похожие темы