Learn & practice AWS Hacking:<imgsrc="/.gitbook/assets/arte.png"alt=""data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<imgsrc="/.gitbook/assets/arte.png"alt=""data-size="line">\
Learn & practice GCP Hacking: <imgsrc="/.gitbook/assets/grte.png"alt=""data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<imgsrc="/.gitbook/assets/grte.png"alt=""data-size="line">](https://training.hacktricks.xyz/courses/grte)
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
FreeIPA to otwarte źródło **alternatywa** dla Microsoft Windows **Active Directory**, głównie dla środowisk **Unix**. Łączy kompletny **katalog LDAP** z MIT **Kerberos** Key Distribution Center do zarządzania podobnego do Active Directory. Wykorzystując system **Dogtag Certificate System** do zarządzania certyfikatami CA i RA, wspiera **uwierzytelnianie wieloskładnikowe**, w tym karty inteligentne. SSSD jest zintegrowany z procesami uwierzytelniania Unix.
* Plik w `/etc/krb5.conf` to miejsce, gdzie przechowywane są informacje klienta Kerberos, niezbędne do rejestracji w domenie. Obejmuje to lokalizacje KDC i serwerów administracyjnych, ustawienia domyślne i mapowania.
* Hosty w domenie muszą mieć plik `krb5.keytab` w `/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 na konkretne pliki i ustawienia związane z uwierzytelnianiem Kerberos.
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 serwisowych, wśród innych funkcji.
Uwierzytelnianie w FreeIPA, wykorzystujące **Kerberos**, odzwierciedla to w **Active Directory**. Dostęp do zasobów domeny wymaga ważnego biletu Kerberos, który może być przechowywany w różnych lokalizacjach w zależności od konfiguracji domeny FreeIPA.
Pliki CCACHE, zazwyczaj przechowywane w **`/tmp`** z uprawnieniami **600**, są formatami binarnymi do przechowywania poświadczeń Kerberos, ważnymi dla uwierzytelniania bez hasła w postaci tekstu jawnego użytkownika z powodu ich przenośności. Analizowanie 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.
Alternatywnie, bilety CCACHE mogą być przechowywane w kluczyku Linux, oferując większą kontrolę nad zarządzaniem biletami. Zakres przechowywania biletów różni się (`KEYRING:name`, `KEYRING:process:name`, `KEYRING:thread:name`, `KEYRING:session:name`, `KEYRING:persistent:uidnumber`), a `klist` jest w stanie analizować te informacje dla użytkownika. Jednak ponowne użycie biletu CCACHE z kluczyka Unix może stwarzać wyzwania, a narzędzia takie jak **Tickey** są dostępne do ekstrakcji biletów Kerberos.
Pliki keytab, zawierające zasady Kerberos i zaszyfrowane klucze, są kluczowe do uzyskania ważnych biletów przyznawania biletów (TGT) bez potrzeby znajomości hasła zasady. Analizowanie 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**.
Możesz przeprowadzić **enumerację** za pomocą **ldap** i innych **narzędzi binarnych**, lub **łącząc się z stroną internetową na porcie 443 serwera FreeIPA**.
Możliwe jest tworzenie **hostów**, **użytkowników** i **grup**. Hosty i użytkownicy są sortowani w kontenerach 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 połączenia**, a duża część danych jest enumerowana **bez uwierzytelnienia**. To może enumerować wszystkie dane dostępne bez uwierzytelnienia:
Aby uzyskać **więcej informacji**, musisz użyć **uwierzytelnionej** sesji (sprawdź sekcję Uwierzytelnianie, aby dowiedzieć się, jak przygotować uwierzytelnioną sesję).
* Hash hasła użytkownika jest przechowywany jako **base64** w atrybucie “**userPassword**”. Ten hash może być **SSHA512** (stare wersje FreeIPA) lub **PBKDF2\_SHA256**.
* **Nthash** hasła jest przechowywany jako **base64** w “**ipaNTHash**”, jeśli system ma **integrację** z **AD**.
• Jeśli freeIPA jest zintegrowany z AD, **ipaNTHash** jest łatwy do złamania: Należy **dekodować****base64** -> ponownie zakodować jako **ASCII** hex -> John The Ripper lub **hashcat** mogą pomóc w szybkim złamaniu
• Jeśli używana jest stara wersja FreeIPA, to używany jest **SSHA512**: Należy dekodować **base64** -> znaleźć hash SSHA512 -> John The Ripper lub **hashcat** mogą pomóc w złamaniu
• Jeśli używana jest nowa wersja FreeIPA, to używany jest **PBKDF2\_SHA256**: Należy dekodować **base64** -> znaleźć PBKDF2\_SHA256 -> jego **długość** to 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 hasha PBKDF2\_SHA256 -> John The Ripper lub hashcat mogą pomóc w złamaniu
FreeIPA umożliwia centralne zarządzanie **uprawnieniami sudo** za pomocą reguł sudo. Reguły te pozwalają lub ograniczają wykonywanie poleceń z sudo na hostach w obrębie domeny. Atakujący może potencjalnie zidentyfikować odpowiednie hosty, użytkowników i dozwolone polecenia, analizując te zestawy reguł.
**Rola** składa się z różnych **uprawnień**, z których każde obejmuje zbiór **zezwolenia**. Te role mogą być przypisane do Użytkowników, Grup Użytkowników, **Hostów**, Grup Hostów i Usług. Na przykład, rozważmy domyślną rolę „Administrator Użytkowników” w FreeIPA, aby zilustrować tę strukturę.
W [https://posts.specterops.io/attacking-freeipa-part-iii-finding-a-path-677405b5b95e](https://posts.specterops.io/attacking-freeipa-part-iii-finding-a-path-677405b5b95e) można znaleźć prosty przykład, jak nadużyć niektóre uprawnienia, aby skompromitować domenę.
Ucz się i ćwicz Hacking AWS:<imgsrc="/.gitbook/assets/arte.png"alt=""data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<imgsrc="/.gitbook/assets/arte.png"alt=""data-size="line">\
Ucz się i ćwicz Hacking GCP: <imgsrc="/.gitbook/assets/grte.png"alt=""data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<imgsrc="/.gitbook/assets/grte.png"alt=""data-size="line">](https://training.hacktricks.xyz/courses/grte)
* **Dołącz do** 💬 [**grupy Discord**](https://discord.gg/hRep4RUj7f) lub [**grupy telegramowej**](https://t.me/peass) lub **śledź** nas na **Twitterze** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**