FreeIPA Pentesting
Osnovne informacije
FreeIPA je open-source alternativa Microsoft Windows Active Directory-u, pretežno za Unix okruženja. Kombinuje kompletan LDAP direktorijum sa MIT Kerberos centrom za distribuciju ključeva za upravljanje slično Active Directory-u. Koristi Dogtag Certificate System za upravljanje CA & RA sertifikatima, podržava multi-faktorsku autentikaciju, uključujući pametne kartice. SSSD je integrisan za Unix autentikacione procese.
Otisci
Fajlovi i promenljive okruženja
Fajl na lokaciji
/etc/krb5.conf
je gde se čuvaju informacije o Kerberos klijentu, neophodne za upis u domen. To uključuje lokacije KDC-ova i admin servera, podrazumevane postavke i mapiranja.Podrazumevane postavke za IPA klijente i servere se postavljaju u fajlu na lokaciji
/etc/ipa/default.conf
.Hostovi unutar domena moraju imati fajl
krb5.keytab
na lokaciji/etc/krb5.keytab
za autentikacione procese.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 pokazivanje specifičnih fajlova i postavki relevantnih za Kerberos autentikaciju.
Binarni fajlovi
Alati poput 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.
Mreža
Dostupna je ilustracija koja prikazuje tipičan FreeIPA server setup.
Autentikacija
Autentikacija u FreeIPA, koristeći Kerberos, odražava onu u Active Directory-u. Pristup resursima domena zahteva validan Kerberos tiket, koji se može čuvati na različitim lokacijama u zavisnosti od konfiguracije FreeIPA domena.
CCACHE Tiket fajlovi
CCACHE fajlovi, obično smešteni u /tmp
sa 600 dozvolama, su binarni formati za čuvanje Kerberos akreditiva, važni za autentikaciju bez korisnikove plaintext lozinke zbog njihove prenosivosti. Parsiranje CCACHE tiketa se može obaviti korišćenjem klist
komande, a ponovna upotreba validnog CCACHE Tiketa uključuje izvoz KRB5CCNAME
na putanju fajla tiketa.
Unix Keyring
Alternativno, CCACHE Tiketi se mogu čuvati u Linux keyring-u, nudeći više kontrole nad upravljanjem tiketima. Obim čuvanja tiketa varira (KEYRING:ime
, KEYRING:proces:ime
, KEYRING:nit:ime
, KEYRING:sednica:ime
, KEYRING:trajni:uidbroj
), pri čemu je klist
sposoban da parsira ove informacije za korisnika. Međutim, ponovna upotreba CCACHE Tiketa iz Unix keyring-a može predstavljati izazove, sa alatima poput Tickey dostupnim za izvlačenje Kerberos tiketa.
Keytab
Keytab fajlovi, koji sadrže Kerberos principe i šifrovane ključeve, su ključni za dobijanje validnih tiketa za dodelu ključeva (TGT) bez potrebe za korisnikovom lozinkom. Parsiranje i ponovna upotreba akreditiva iz keytab fajlova se lako može izvršiti pomoću alatki poput klist
i skripti poput KeytabParser.
Šifarnik
Više informacija o korišćenju tiketa u linuxu možete pronaći na sledećem linku:
pageLinux Active DirectoryEnumeracija
Možete izvršiti enumeraciju putem ldap-a i drugih binarnih alata, ili povezivanjem na veb stranicu na portu 443 FreeIPA servera.
Hostovi, Korisnici i Grupe
Moguće je kreirati hostove, korisnike i grupe. Hostovi i korisnici su smešteni u kontejnere nazvane “Host Grupe” i “User Grupe” respektivno. Ovi su slični Organizacionim Jedinicama (OU).
Podrazumevano u FreeIPA, LDAP server dozvoljava anonimne bindove, i veliki deo podataka je enumerabilan neautentifikovan. Ovo može enumerisati sve dostupne podatke neautentifikovano:
Da biste dobili više informacija, morate koristiti autentifikovanu sesiju (proverite odeljak o Autentifikaciji kako biste saznali kako da pripremite autentifikovanu sesiju).
Sa računara pridruženog domenu moći ćete koristiti instalirane binarne datoteke za enumeraciju domena:
Korisnik admin u FreeIPA-i je ekvivalentan domain admin-ima iz AD-a.
Hesovi
Korisnik root sa IPA servera ima pristup hesovima lozinki.
Hes lozinke korisnika je sačuvan kao base64 u atributu “userPassword”. Ovaj hes može biti SSHA512 (stare verzije FreeIPA) ili PBKDF2_SHA256.
Nthash lozinke je sačuvan kao base64 u “ipaNTHash” ako sistem ima integraciju sa AD-om.
Da biste probili ove hesove:
• Ako je FreeIPA integrisan sa AD-om, ipaNTHash je lako probiti: Treba da dekodirate base64 -> ponovo kodirate kao ASCII heks -> John The Ripper ili hashcat vam mogu pomoći da ga brzo probijete
• Ako se koristi stara verzija FreeIPA, pa se koristi SSHA512: Treba da dekodirate base64 -> pronađete SSHA512 hes -> John The Ripper ili hashcat vam mogu pomoći da ga probijete
• Ako se koristi nova verzija FreeIPA, pa se koristi PBKDF2_SHA256: Treba da dekodirate base64 -> pronađete PBKDF2_SHA256 -> njegova dužina je 256 bajtova. John može raditi sa 256 bita (32 bajta) -> SHA-265 se koristi kao pseudo-slučajna funkcija, veličina bloka je 32 bajta -> možete koristiti samo prvih 256 bita našeg PBKDF2_SHA256 hesa -> John The Ripper ili hashcat vam mogu pomoći da ga probijete
Da biste izvukli hesove, morate biti root na FreeIPA serveru, tamo možete koristiti alatku dbscan
da ih izvučete:
HBAC-Pravila
Ovo su pravila koja dodeljuju specifična ovlašćenja korisnicima ili hostovima nad resursima (hostovi, servisi, grupe servisa...).
Sudo-pravila
FreeIPA omogućava centralizovanu kontrolu nad sudo dozvolama putem sudo-pravila. Ova pravila omogućavaju ili ograničavaju izvršavanje komandi sa sudo-om na hostovima unutar domena. Napadač bi potencijalno mogao identifikovati primenljive hostove, korisnike i dozvoljene komande pregledom ovih setova pravila.
Kontrola pristupa zasnovana na ulogama
Uloga se sastoji od različitih privilegija, od kojih svaka obuhvata kolekciju dozvola. Ove uloge mogu biti dodeljene korisnicima, korisničkim grupama, računarima, grupama računara i uslugama. Na primer, razmotrite podrazumevanu ulogu "Administrator korisnika" u sistemu FreeIPA da biste ilustrovali ovu strukturu.
Uloga Administrator korisnika
ima sledeće privilegije:
Administratori korisnika
Administratori grupa
Administratori faze korisnika
Pomoću sledećih komandi moguće je nabrojati uloge, privilegije i dozvole:
Primer napadačkog scenarija
U https://posts.specterops.io/attacking-freeipa-part-iii-finding-a-path-677405b5b95e možete pronaći jednostavan primer kako zloupotrebiti određene dozvole da biste kompromitovali domen.
Linikatz/LinikatzV2
Eskalacija privilegija
kreiranje korisnika root
Ako možete kreirati novog korisnika sa imenom root
, možete se predstaviti kao on i moći ćete SSH-ovati na bilo koju mašinu kao root.
OVO JE POPRAVLJENO.
Detaljno objašnjenje možete pronaći na https://posts.specterops.io/attacking-freeipa-part-iv-cve-2020-10747-7c373a1bf66b
Reference
Last updated