FreeIPA Pentesting
Основна інформація
FreeIPA є відкритим альтернативним до Microsoft Windows Active Directory, головним чином для Unix середовищ. Вона поєднує повний LDAP каталог з MIT Kerberos Центром розподілу ключів для управління, подібного до Active Directory. Використовуючи Dogtag Certificate System для управління сертифікатами CA & RA, вона підтримує багатофакторну аутентифікацію, включаючи смарт-карти. SSSD інтегрований для процесів аутентифікації Unix.
Відбитки
Файли та змінні середовища
Файл
/etc/krb5.conf
- це місце зберігання інформації клієнта Kerberos, необхідної для вступу в домен. Це включає місцезнаходження KDC та адміністративних серверів, налаштування за замовчуванням та відображення.Системні налаштування за замовчуванням для клієнтів та серверів IPA встановлені у файлі, розташованому за адресою
/etc/ipa/default.conf
.Хостам у домені необхідно мати файл
krb5.keytab
за адресою/etc/krb5.keytab
для процесів аутентифікації.Різні змінні середовища (
KRB5CCNAME
,KRB5_KTNAME
,KRB5_CONFIG
,KRB5_KDC_PROFILE
,KRB5RCACHETYPE
,KRB5RCACHEDIR
,KRB5_TRACE
,KRB5_CLIENT_KTNAME
,KPROP_PORT
) використовуються для вказівки на конкретні файли та налаштування, що стосуються аутентифікації Kerberos.
Виконувані файли
Інструменти, такі як ipa
, kdestroy
, kinit
, klist
, kpasswd
, ksu
, kswitch
та kvno
, є центральними для управління доменами FreeIPA, обробки квитків Kerberos, зміни паролів та отримання сервісних квитків, серед інших функцій.
Мережа
Надається ілюстрація для зображення типового налаштування сервера FreeIPA.
Аутентифікація
Аутентифікація в FreeIPA, використовуючи Kerberos, відображає ту, що в Active Directory. Доступ до ресурсів домену потребує дійсного квитка Kerberos, який може бути збережений в різних місцях в залежності від конфігурації домену FreeIPA.
Файли квитків CCACHE
Файли CCACHE, зазвичай зберігаються в /tmp
з дозволами 600, є бінарними форматами для зберігання облікових даних Kerberos, важливих для аутентифікації без текстового пароля користувача через їх переносність. Розбір квитка CCACHE можна виконати за допомогою команди klist
, а повторне використання дійсного квитка CCACHE включає експорт KRB5CCNAME
до шляху файлу квитка.
Ключовий кільцевий набір Unix
Альтернативно, квитки CCACHE можна зберігати в ключовому кільці Linux, що пропонує більше контролю над управлінням квитками. Обсяг зберігання квитків варіюється (KEYRING:name
, KEYRING:process:name
, KEYRING:thread:name
, KEYRING:session:name
, KEYRING:persistent:uidnumber
), з klist
здатним розбирати цю інформацію для користувача. Однак повторне використання квитка CCACHE з ключового кільця Unix може викликати виклики, існують інструменти, такі як Tickey для видобування квитків Kerberos.
Keytab
Файли Keytab, що містять принципали Kerberos та зашифровані ключі, є критичними для отримання дійсних квитків для надання квитків (TGT) без необхідності пароля принципала. Розбір та повторне використання облікових даних з файлів Keytab можна легко виконати за допомогою утиліт, таких як klist
, та сценаріїв, таких як KeytabParser.
Шпаргалка
Більше інформації про використання квитків в Linux можна знайти за наступним посиланням:
pageLinux Active DirectoryПерелік
Ви можете виконати перелік через ldap та інші бінарні інструменти або підключення до веб-сторінки на порті 443 сервера FreeIPA.
Хости, Користувачі та Групи
Можливо створювати хости, користувачів та групи. Хости та користувачі розміщуються в контейнерах, які називаються "Групи хостів" та "Групи користувачів" відповідно. Це схоже на Організаційні одиниці (OU).
За замовчуванням у FreeIPA, LDAP-сервер дозволяє анонімні зв'язки, і велика кількість даних доступна для переліку без аутентифікації. Це може перелічити всі дані, доступні без аутентифікації:
Для отримання більш докладної інформації вам потрібно використовувати аутентифіковану сесію (перевірте розділ Аутентифікація, щоб дізнатися, як підготувати аутентифіковану сесію).
З машини, приєднаної до домену, ви зможете використовувати встановлені бінарні файли для переліку домену:
Користувач admin FreeIPA еквівалентний адміністраторам домену з AD.
Хеші
Користувач root з сервера IPA має доступ до хешів паролів.
Хеш паролю користувача зберігається у вигляді base64 в атрибуті "userPassword". Цей хеш може бути SSHA512 (старі версії FreeIPA) або PBKDF2_SHA256.
Nthash паролю зберігається у вигляді base64 в "ipaNTHash", якщо система інтегрована з AD.
Для розшифрування цих хешів:
• Якщо FreeIPA інтегрована з AD, ipaNTHash легко розшифрувати: Вам потрібно декодувати base64 -> повторно закодувати його у вигляді ASCII шістнадцяткового -> John The Ripper або hashcat можуть допомогти швидко розшифрувати його
• Якщо використовується стара версія FreeIPA, то використовується SSHA512: Вам потрібно декодувати base64 -> знайти хеш SSHA512 -> John The Ripper або hashcat можуть допомогти розшифрувати його
• Якщо використовується нова версія FreeIPA, то використовується PBKDF2_SHA256: Вам потрібно декодувати base64 -> знайти PBKDF2_SHA256 -> його довжина 256 байт. John може працювати з 256 бітами (32 байти) -> SHA-265 використовується як псевдовипадкова функція, розмір блоку 32 байти -> ви можете використовувати лише перші 256 біт нашого хешу PBKDF2_SHA256 -> John The Ripper або hashcat можуть допомогти розшифрувати його
Для вилучення хешів вам потрібно бути root на сервері FreeIPA, там ви можете використовувати інструмент dbscan
для їх вилучення:
Правила HBAC
Це правила, які надають конкретні дозволи користувачам або хостам для ресурсів (хостів, служб, груп служб...).
Правила Sudo
FreeIPA дозволяє централізоване керування правами sudo за допомогою правил sudo. Ці правила дозволяють або обмежують виконання команд за допомогою sudo на хостах у межах домену. Зловмисник може потенційно визначити застосовні хости, користувачів та дозволені команди, переглянувши ці набори правил.
Контроль доступу на основі ролей
Роль складається з різних привілеїв, кожен з яких охоплює набір дозволів. Ці ролі можуть бути призначені користувачам, групам користувачів, хостам, групам хостів та сервісам. Наприклад, розглянемо роль "Адміністратор користувачів" у FreeIPA для ілюстрації цієї структури.
Роль Адміністратор користувачів
має такі привілеї:
Адміністратори користувачів
Адміністратори груп
Адміністратори етапів користувачів
За допомогою наступних команд можна перелічити ролі, привілеї та дозволи:
Приклад сценарію атаки
У https://posts.specterops.io/attacking-freeipa-part-iii-finding-a-path-677405b5b95e ви можете знайти простий приклад того, як зловживати деякими дозволами для компрометації домену.
Linikatz/LinikatzV2
Підвищення привілеїв
створення користувача root
Якщо ви можете створити нового користувача з ім'ям root
, ви можете видаавати себе за нього і матимете можливість SSH на будь-яку машину як root.
ЦЕ БУЛО ВИПРАВЛЕНО.
Ви можете перевірити детальний пояснення в https://posts.specterops.io/attacking-freeipa-part-iv-cve-2020-10747-7c373a1bf66b
Посилання
Last updated