FreeIPA Pentesting
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
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. Koristeći 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.
Sistemom široki podrazumevani 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, između ostalog.
Ilustracija je pružena da prikaže tipičnu FreeIPA server konfiguraciju.
Autentifikacija u FreeIPA, koristeći Kerberos, odražava onu u Active Directory. Pristup resursima domena zahteva važeći Kerberos tiket, koji se može čuvati 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 se mogu čuvati u Linux keyring-u, nudeći veću kontrolu nad upravljanjem tiketima. Opseg čuvanja tiketa varira (KEYRING:name
, KEYRING:process:name
, KEYRING:thread:name
, KEYRING:session:name
, KEYRING:persistent:uidnumber
), pri čemu klist
može da parsira 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 tiketa (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.
Možete pronaći više informacija o tome kako koristiti tikete u linuxu na sledećem linku:
Linux Active DirectoryMožete izvršiti enumeraciju putem ldap i drugih binarnih alata, ili povezivanjem na veb stranicu na portu 443 FreeIPA servera.
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, i 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).
Sa mašine koja je pridružena domenu moći ćete da koristite instalirane binarne datoteke za enumeraciju domena:
Korisnik admin u FreeIPA je ekvivalent domenama admina iz AD.
Korisnik root sa IPA servera ima pristup lozinkama hash.
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.
Da biste probili ove hash:
• 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
Da biste izvukli hash, morate biti root na FreeIPA serveru, tamo možete koristiti alat dbscan
da ih izvučete:
To su pravila koja dodeljuju specifične dozvole korisnicima ili hostovima nad resursima (hostovi, usluge, grupe usluga...)
FreeIPA omogućava centralizovanu kontrolu nad sudo permissions 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.
Uloga Administrator korisnika
ima ove privilegije:
Administratori korisnika
Administratori grupa
Administratori korisnika na sceni
Sa sledećim komandama moguće je enumerisati uloge, privilegije i dozvole:
U 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.
Ako možete napraviti novog korisnika sa imenom root
, možete se pretvarati da ste on i moći ćete da SSH-ujete na bilo koju mašinu kao root.
OVO JE ISPRAVLJENO.
Možete proveriti detaljno objašnjenje u https://posts.specterops.io/attacking-freeipa-part-iv-cve-2020-10747-7c373a1bf66b
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)