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 je open-source **alternativa** za Microsoft Windows **Active Directory**, uglavnom za **Unix** okruženja. Kombinuje kompletnu **LDAP direktoriju** sa MIT **Kerberos** sistemom za distribuciju ključeva za upravljanje sličnim Active Directory. Koristi Dogtag **Sistem sertifikata** za upravljanje CA i RA sertifikatima, podržava **multi-factor** autentifikaciju, uključujući pametne kartice. SSSD je integrisan za Unix procese autentifikacije.
* Datoteka na `/etc/krb5.conf` je mesto gde se čuvaju informacije o Kerberos klijentu, neophodne za upis u domen. Ovo uključuje lokacije KDC-a i admin servera, podrazumevane postavke i mape.
* Podrazumevane postavke za IPA klijente i servere su postavljene u datoteci koja se nalazi na `/etc/ipa/default.conf`.
* Hostovi unutar domena moraju imati `krb5.keytab` datoteku na `/etc/krb5.keytab` za procese autentifikacije.
* Različite promenljive okruženja (`KRB5CCNAME`, `KRB5_KTNAME`, `KRB5_CONFIG`, `KRB5_KDC_PROFILE`, `KRB5RCACHETYPE`, `KRB5RCACHEDIR`, `KRB5_TRACE`, `KRB5_CLIENT_KTNAME`, `KPROP_PORT`) se koriste za upućivanje na specifične datoteke i postavke relevantne za Kerberos autentifikaciju.
Alati kao što su `ipa`, `kdestroy`, `kinit`, `klist`, `kpasswd`, `ksu`, `kswitch`, i `kvno` su centralni za upravljanje FreeIPA domenima, rukovanje Kerberos tiketima, menjanje lozinki i dobijanje servisnih tiketa, među ostalim funkcionalnostima.
Autentifikacija u FreeIPA, koristeći **Kerberos**, odražava onu u **Active Directory**. Pristup resursima domena zahteva važeći Kerberos tiket, koji može biti smešten na različitim mestima u zavisnosti od konfiguracije FreeIPA domena.
CCACHE datoteke, obično smeštene u **`/tmp`** sa **600** dozvolama, su binarni formati za čuvanje Kerberos kredencijala, važni za autentifikaciju bez korisničke lozinke u običnom tekstu zbog njihove prenosivosti. Parsiranje CCACHE tiketa može se izvršiti korišćenjem `klist` komande, a ponovna upotreba važećeg CCACHE tiketa uključuje izvoz `KRB5CCNAME` na putanju datoteke tiketa.
Alternativno, CCACHE tiketi mogu biti smešteni u Linux keyring, nudeći veću kontrolu nad upravljanjem tiketima. Opseg skladištenja tiketa varira (`KEYRING:name`, `KEYRING:process:name`, `KEYRING:thread:name`, `KEYRING:session:name`, `KEYRING:persistent:uidnumber`), pri čemu `klist` može parsirati ove informacije za korisnika. Međutim, ponovna upotreba CCACHE tiketa iz Unix keyring-a može predstavljati izazove, a alati poput **Tickey** su dostupni za ekstrakciju Kerberos tiketa.
Keytab datoteke, koje sadrže Kerberos principe i enkriptovane ključeve, su ključne za dobijanje važećih tiketa za dodelu (TGT) bez potrebe za lozinkom principa. Parsiranje i ponovna upotreba kredencijala iz keytab datoteka može se lako izvršiti pomoću alata kao što su `klist` i skripti kao što je **KeytabParser**.
Moguće je kreirati **hostove**, **korisnike** i **grupe**. Hostovi i korisnici su raspoređeni u kontejnere nazvane “**Host Groups**” i “**User Groups**” respektivno. Ovi su slični **Organizacijskim jedinicama** (OU).
Podrazumevano u FreeIPA, LDAP server omogućava **anonimne veze**, a veliki deo podataka je enumerabilan **neautentifikovano**. Ovo može enumerisati sve dostupne podatke neautentifikovano:
Da biste dobili **više informacija**, potrebno je da koristite **autentifikovanu** sesiju (proverite odeljak o autentifikaciji da biste saznali kako da pripremite autentifikovanu sesiju).
* Hash lozinke korisnika se čuva kao **base64** u atributu “**userPassword**”. Ovaj hash može biti **SSHA512** (stare verzije FreeIPA) ili **PBKDF2\_SHA256**.
* **Nthash** lozinke se čuva kao **base64** u “**ipaNTHash**” ako sistem ima **integraciju** sa **AD**.
• Ako je freeIPA integrisan sa AD, **ipaNTHash** je lako probiti: Trebalo bi da **dekodirate****base64** -> ponovo kodirate kao **ASCII** hex -> John The Ripper ili **hashcat** vam mogu pomoći da ga brzo probijete
• Ako se koristi stara verzija FreeIPA, onda se koristi **SSHA512**: Trebalo bi da dekodirate **base64** -> pronađete SSHA512 **hash** -> John The Ripper ili **hashcat** vam mogu pomoći da ga probijete
• Ako se koristi nova verzija FreeIPA, onda se koristi **PBKDF2\_SHA256**: Trebalo bi da dekodirate **base64** -> pronađete PBKDF2\_SHA256 -> njegova **dužina** je 256 bajta. John može raditi sa 256 bita (32 bajta) -> SHA-265 se koristi kao pseudo-random funkcija, veličina bloka je 32 bajta -> možete koristiti samo prvih 256 bita našeg PBKDF2\_SHA256 hash -> John The Ripper ili hashcat vam mogu pomoći da ga probijete
FreeIPA omogućava centralizovanu kontrolu nad **sudo dozvolama** putem sudo pravila. Ova pravila omogućavaju ili ograničavaju izvršavanje komandi sa sudo na hostovima unutar domena. Napadač bi potencijalno mogao da identifikuje primenljive hostove, korisnike i dozvoljene komande ispitujući ove skupove pravila.
**Uloga** se sastoji od različitih **privilegija**, od kojih svaka obuhvata skup **dozvola**. Ove uloge mogu biti dodeljene korisnicima, grupama korisnika, **hostovima**, grupama hostova i uslugama. Na primer, uzmite u obzir podrazumevanu ulogu “Administrator korisnika” u FreeIPA kao primer ove strukture.
U [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žete pronaći jednostavan primer kako zloupotrebiti neka prava da biste kompromitovali domen.
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.