Pentest обучение
September 7

Kerberoasting

В среде AD существуют так называемые Service Principal Names (SPN) - уникальные идентификаторы, связанные с учетными записями, которые запускают службы или приложения. Когда клиент хочет получить доступ к службе на сервере, он использует SPN, чтобы найти соответствующую учетную запись службы.

При проведении Kerberoasting атаки атакующего интересуют SPN, ассоциирующиеся с учетными записями пользователей, а не компьютеров, ввиду нецелесообразности восстановления паролей последних (слишком сложные для восстановления). Билеты TGS шифруются с использованием хэша сервисной учетной записи. Это позволяет атакующему восстановить пароль сервисной учетной записи при условии, что пароль недостаточно стойкий.

Атаку можно разделить на несколько этапов:

  • Атакующий проходит аутентификацию в домене (AS_req и AS_rep).
  • Атакующий использует билет TGT для запроса билета TGS для конкретного SPN (TGS_req и TGS_rep).
  • Атакующий извлекает хэш зашифрованного билета TGS из TGS_rep.

Несколько фактов об атаке:

  • Легкость в эксплуатации. Для реализации атакующему достаточно иметь доменную учетную запись с любым уровнем привилегий;
  • Полученные хеши сервисных учетных записей можно подвергнуть офлайн перебору, что значительно снижает шансы обнаружения и угрозу блокирования учетной записи, как в случае password spraying атаки.

Пример реализации атаки с помощью GetUserSPNs.py:

GetUserSPNs.py -request -dc-ip 10.10.10.26 TESTDOMAIN.local/testuser1:Testuser! > kerberoast.txt

где:

  • 10.10.10.26 – IP-адрес DC;
  • TESTDOMAIN.local – имя домена;
  • testuser1:Testuser! – логин и пароль доменной учетной записи;
  • > kerberoast.txt – записываем результат атаки в текстовый файл.

Далее хэш подвергается перебору и, если пароль недостаточно стойкий, атакующий получает пароль сервисной учетной записи.

Пример использования John the Ripper для перебора хэша:

john --format=krb5tgs --wordlist=$wordlist kerberoastables.txt

С помощью Rubeus также можно выполнить Kerberoasting.

Первым шагом может быть сбор статистики:

.\Rubeus.exe kerberoast /stats

Данная функция очень полезна злоумышленникам. Она помогает выяснить количество Kerberoastable пользователей и поддерживаемые ими типы шифрования для запросов билетов.

Cам запрос:

В результате мы получили хэш TGS (зашифрованный по алгоритму RC4) для учетной записи iis_svc.

С помощью PowerView тоже можно провести Kerberoasting.

Import-Module .\PowerView.ps1
Get-DomainUser * -spn | select samaccountname
Get-DomainUser -Identity sqldev | Get-DomainSPNTicket -Format Hashcat

Life-Hack Media:

Life-Hack - Жизнь-Взлом

Новости Кибербеза

Курсы по программированию

Юмор