FreeIPA Pentesting
Podstawowe informacje
FreeIPA to otwarte źródło alternatywa dla Microsoft Windows Active Directory, głównie dla środowisk Unix. Łączy kompletny katalog LDAP z Centrum Dystrybucji Kluczy MIT Kerberos do zarządzania podobnie jak Active Directory. Wykorzystując System Certyfikatów Dogtag do zarządzania certyfikatami CA & RA, obsługuje uwierzytelnianie wieloskładnikowe, w tym karty inteligentne. SSSD jest zintegrowany do procesów uwierzytelniania Unix.
Odciski palców
Pliki i zmienne środowiskowe
Plik
/etc/krb5.conf
przechowuje informacje klienta Kerberos, niezbędne do zapisania w domenie. Zawiera lokalizacje KDC i serwerów admina, domyślne ustawienia i mapowania.Domyślne ustawienia dla klientów i serwerów IPA są ustawione w pliku znajdującym się w
/etc/ipa/default.conf
.Hosty w domenie muszą mieć plik
krb5.keytab
w lokalizacji/etc/krb5.keytab
do procesów uwierzytelniania.Różne zmienne środowiskowe (
KRB5CCNAME
,KRB5_KTNAME
,KRB5_CONFIG
,KRB5_KDC_PROFILE
,KRB5RCACHETYPE
,KRB5RCACHEDIR
,KRB5_TRACE
,KRB5_CLIENT_KTNAME
,KPROP_PORT
) są używane do wskazywania konkretnych plików i ustawień związanych z uwierzytelnianiem Kerberos.
Binaria
Narzędzia takie jak ipa
, kdestroy
, kinit
, klist
, kpasswd
, ksu
, kswitch
i kvno
są kluczowe do zarządzania domenami FreeIPA, obsługi biletów Kerberos, zmiany haseł i uzyskiwania biletów usługowych, między innymi funkcjonalności.
Sieć
Przedstawiono ilustrację typowego zestawienia serwera FreeIPA.
Uwierzytelnianie
Uwierzytelnianie w FreeIPA, wykorzystujące Kerberos, odzwierciedla to w Active Directory. Dostęp do zasobów domenowych wymaga ważnego biletu Kerberos, który może być przechowywany w różnych lokalizacjach w zależności od konfiguracji domeny FreeIPA.
Pliki biletów CCACHE
Pliki CCACHE, przechowywane zazwyczaj w /tmp
z uprawnieniami 600, są formatami binarnymi do przechowywania poświadczeń Kerberos, ważnych dla uwierzytelniania bez hasła tekstowego użytkownika ze względu na ich przenośność. Parsowanie biletu CCACHE można wykonać za pomocą polecenia klist
, a ponowne użycie ważnego biletu CCACHE polega na wyeksportowaniu KRB5CCNAME
do ścieżki pliku biletu.
Keyring Unix
Alternatywnie, Bilety CCACHE można przechowywać w keyringu Linux, oferując większą kontrolę nad zarządzaniem biletami. Zakres przechowywania biletów jest zróżnicowany (KEYRING:nazwa
, KEYRING:proces:nazwa
, KEYRING:wątek:nazwa
, KEYRING:sesja:nazwa
, KEYRING:trwały:uidnumber
), z klist
zdolnym do parsowania tych informacji dla użytkownika. Jednak ponowne użycie biletu CCACHE z keyringu Unix może stanowić wyzwanie, a narzędzia takie jak Tickey są dostępne do wydobywania biletów Kerberos.
Keytab
Pliki Keytab, zawierające podmioty Kerberos i zaszyfrowane klucze, są kluczowe do uzyskiwania ważnych biletów granting tickets (TGT) bez konieczności znajomości hasła podmiotu. Parsowanie i ponowne użycie poświadczeń z plików Keytab można łatwo wykonać za pomocą narzędzi takich jak klist
i skryptów, takich jak KeytabParser.
Cheatsheet
Więcej informacji na temat korzystania z biletów w systemie Linux znajdziesz pod następującym linkiem:
pageLinux Active DirectoryWyliczanie
Możesz przeprowadzić wyliczanie za pomocą ldap i innych narzędzi binarnych, lub łącząc się z stroną internetową na porcie 443 serwera FreeIPA.
Hosty, Użytkownicy i Grupy
Możliwe jest tworzenie hostów, użytkowników i grup. Hosty i użytkownicy są sortowane do kontenerów zwanych „Grupami Hostów” i „Grupami Użytkowników” odpowiednio. Są one podobne do Jednostek Organizacyjnych (OU).
Domyślnie w FreeIPA serwer LDAP pozwala na anonimowe wiązania, a duża ilość danych jest wyliczalna nieuwierzytelniona. Można wyliczyć wszystkie dostępne dane nieuwierzytelnione:
Aby uzyskać więcej informacji, musisz użyć uwierzytelnionej sesji (sprawdź sekcję Autoryzacja, aby dowiedzieć się, jak przygotować uwierzytelnioną sesję).
Z maszyny dołączonej do domeny będziesz mógł użyć zainstalowanych binariów do wyliczenia domeny:
Użytkownik admin w FreeIPA jest odpowiednikiem administratorów domeny z AD.
Skróty
Użytkownik root z serwera IPA ma dostęp do skrótów hasła.
Skrót hasła użytkownika przechowywany jest jako base64 w atrybucie "userPassword". Ten skrót może być SSHA512 (w starszych wersjach FreeIPA) lub PBKDF2_SHA256.
Nthash hasła przechowywany jest jako base64 w "ipaNTHash", jeśli system ma integrację z AD.
Aby złamać te skróty:
• Jeśli FreeIPA jest zintegrowany z AD, ipaNTHash jest łatwy do złamania: Należy odkodować base64 -> ponownie zakodować jako ASCII szesnastkowy -> John The Ripper lub hashcat mogą pomóc w szybkim złamaniu
• Jeśli używana jest starsza wersja FreeIPA, a więc używane jest SSHA512: Należy odkodować base64 -> znaleźć skrót SSHA512 -> John The Ripper lub hashcat mogą pomóc w złamaniu
• Jeśli używana jest nowa wersja FreeIPA, a więc używane jest PBKDF2_SHA256: Należy odkodować base64 -> znaleźć PBKDF2_SHA256 -> jego długość wynosi 256 bajtów. John może pracować z 256 bitami (32 bajty) -> SHA-265 używane jako funkcja pseudolosowa, rozmiar bloku to 32 bajty -> można użyć tylko pierwszych 256 bitów naszego skrótu PBKDF2_SHA256 -> John The Ripper lub hashcat mogą pomóc w złamaniu
Aby wydobyć skróty, musisz być rootem na serwerze FreeIPA, tam możesz użyć narzędzia dbscan
do ich wydobycia:
Reguły HBAC
To reguły przyznające określone uprawnienia użytkownikom lub hostom w zasobach (hosty, usługi, grupy usług...).
Reguły Sudo
FreeIPA umożliwia scentralizowaną kontrolę nad uprawnieniami sudo za pomocą reguł sudo. Te reguły pozwalają lub ograniczają wykonywanie poleceń za pomocą sudo na hostach w domenie. Atakujący mógłby potencjalnie zidentyfikować odpowiednie hosty, użytkowników i dozwolone polecenia, analizując te zbiory reguł.
Kontrola dostępu oparta na rolach
Rola składa się z różnych uprawnień, z których każde obejmuje zbiór uprawnień. Te role mogą być przypisane do Użytkowników, Grup Użytkowników, Hostów, Grup Hostów oraz Usług. Na przykład, rozważ domyślną rolę "Administratora Użytkownika" w FreeIPA, aby zilustrować tę strukturę.
Rola Administratora Użytkownika
ma następujące uprawnienia:
Administratorzy Użytkowników
Administratorzy Grup
Administratorzy Etapowi Użytkownicy
Za pomocą poniższych poleceń można wyświetlić role, uprawnienia i pozwolenia.
Przykład scenariusza ataku
W https://posts.specterops.io/attacking-freeipa-part-iii-finding-a-path-677405b5b95e znajdziesz prosty przykład, jak wykorzystać pewne uprawnienia do skompromitowania domeny.
Linikatz/LinikatzV2
Eskalacja uprawnień
Tworzenie użytkownika root
Jeśli możesz utworzyć nowego użytkownika o nazwie root
, możesz się pod niego podszyć i będziesz mógł SSH na dowolną maszynę jako root.
TO ZOSTAŁO NAPRAWIONE.
Możesz sprawdzić szczegółowe wyjaśnienie w https://posts.specterops.io/attacking-freeipa-part-iv-cve-2020-10747-7c373a1bf66b
Odnośniki
Last updated