🥇Следующий в подборке — кейс из номинации «Пробив инфраструктуры» автора @lm10n



Объект исследования



FreeIPA — система управления идентификацией и доступом в домене, Active Directory для Linux.



Результат



Эксплуатация уязвимости в механизме Kerberos-аутентификации, получение административного доступа к домену и, как следсвие, зарегистированная CVE-2024-3183.



Ход исследования



1) Анализ механики аутентификации в FreeIPA



После получения учетной записи в домене с минимальными правами, было установлено, что система позволяет запрашивать TGS (билеты для аутентификации в сервисах) для любых пользователей через kvno, несмотря на отсутствие специальных привилегий. Однако стандартная атака Kerberoasting не сработала из-за особенностей FreeIPA.



2) Исследование механизма генерации соли для Kerberos



Было замечено, что FreeIPA использует нестандартный механизм формирования соли для ключей шифрования. Анализ исходного кода MIT Kerberos и перехваченных пакетов в Wireshark позволил выявить, что соль можно получить при первой ошибке преаутентификации (KRB5_TRACE).



3) Эксплуатация уязвимости и восстановление паролей



Скрипт на Python позволил перебрать пароли на основе захваченного TGS и полученной соли. После модификации hashcat, который не учитывал особенность соли в FreeIPA, удалось успешно восстановить пароль администратора домена.



4) Полная компрометация домена



После получения TGT для пользователя с минимальными привилегиями был выполнен запрос на получение TGS для администратора. Расшифрование тикета позволило восстановить пароль и получить полный контроль над инфраструктурой.



О найденной уязвимости было сообщено в Red Hat и MIT Kerberos. После анализа запроса разработчики подтвердили проблему и выпустили исправление в FreeIPA 4.12.1. Уязвимости присвоили номер CVE-2024-3183.



Полноценный текст с картинками доступен на Хакере 👈