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 ni mbadala wa chanzo wazi kwa Microsoft Windows Active Directory, hasa kwa mazingira ya Unix. Inachanganya LDAP directory kamili na MIT Kerberos Key Distribution Center kwa usimamizi unaofanana na Active Directory. Inatumia mfumo wa Certificate System wa Dogtag kwa usimamizi wa vyeti vya CA & RA, inasaidia uthibitishaji wa multi-factor, ikiwa ni pamoja na kadi za smart. SSSD imeunganishwa kwa michakato ya uthibitishaji wa Unix.
Faili katika /etc/krb5.conf
ndiyo mahali ambapo taarifa za mteja wa Kerberos, zinazohitajika kwa kujiandikisha katika eneo, zimehifadhiwa. Hii inajumuisha maeneo ya KDCs na seva za admin, mipangilio ya chaguo-msingi, na ramani.
Mipangilio ya chaguo-msingi kwa wateja na seva za IPA imewekwa katika faili iliyoko /etc/ipa/default.conf
.
Hosts ndani ya eneo lazima iwe na faili ya krb5.keytab
katika /etc/krb5.keytab
kwa michakato ya uthibitishaji.
Mabadiliko mbalimbali ya mazingira (KRB5CCNAME
, KRB5_KTNAME
, KRB5_CONFIG
, KRB5_KDC_PROFILE
, KRB5RCACHETYPE
, KRB5RCACHEDIR
, KRB5_TRACE
, KRB5_CLIENT_KTNAME
, KPROP_PORT
) yanatumika kuonyesha faili maalum na mipangilio inayohusiana na uthibitishaji wa Kerberos.
Zana kama ipa
, kdestroy
, kinit
, klist
, kpasswd
, ksu
, kswitch
, na kvno
ni muhimu katika kusimamia maeneo ya FreeIPA, kushughulikia tiketi za Kerberos, kubadilisha nywila, na kupata tiketi za huduma, kati ya kazi nyingine.
Mchoro umeandaliwa kuonyesha usanidi wa kawaida wa seva ya FreeIPA.
Uthibitishaji katika FreeIPA, ukitumia Kerberos, unafanana na ule katika Active Directory. Upatikanaji wa rasilimali za eneo unahitaji tiketi halali ya Kerberos, ambayo inaweza kuhifadhiwa katika maeneo mbalimbali kulingana na usanidi wa eneo la FreeIPA.
Faili za CCACHE, ambazo kawaida huhifadhiwa katika /tmp
zikiwa na ruhusa 600, ni muundo wa binary wa kuhifadhi taarifa za Kerberos, muhimu kwa uthibitishaji bila nywila ya mtumiaji kwa sababu ya kubebeka kwake. Kusoma tiketi ya CCACHE kunaweza kufanywa kwa kutumia amri ya klist
, na kutumia tena Tiketi halali ya CCACHE kunahusisha kusafirisha KRB5CCNAME
hadi kwenye njia ya faili la tiketi.
Kwa upande mwingine, Tiketi za CCACHE zinaweza kuhifadhiwa katika funguo za Linux, zikitoa udhibiti zaidi juu ya usimamizi wa tiketi. Mipaka ya uhifadhi wa tiketi inatofautiana (KEYRING:name
, KEYRING:process:name
, KEYRING:thread:name
, KEYRING:session:name
, KEYRING:persistent:uidnumber
), huku klist
ikiweza kusoma taarifa hii kwa mtumiaji. Hata hivyo, kutumia tena Tiketi ya CCACHE kutoka funguo za Unix kunaweza kuwa na changamoto, huku zana kama Tickey zikiwa zinapatikana kwa ajili ya kutoa tiketi za Kerberos.
Faili za keytab, zinazoshikilia wakala wa Kerberos na funguo zilizofichwa, ni muhimu kwa kupata tiketi halali za kutoa tiketi (TGT) bila kuhitaji nywila ya wakala. Kusoma na kutumia tena taarifa kutoka kwa faili za keytab kunaweza kufanywa kwa urahisi kwa kutumia zana kama klist
na skripti kama KeytabParser.
Unaweza kupata maelezo zaidi kuhusu jinsi ya kutumia tiketi katika linux katika kiungo kinachofuata:
Linux Active DirectoryUnaweza kufanya enumeration kupitia ldap na zana nyingine za binary, au kuungana na ukurasa wa wavuti katika bandari 443 ya seva ya FreeIPA.
Inawezekana kuunda hosts, users na groups. Hosts na watumiaji wamepangwa katika vyombo vinavyoitwa “Host Groups” na “User Groups” mtawalia. Hizi ni sawa na Organizational Units (OU).
Kwa chaguo-msingi katika FreeIPA, seva ya LDAP inaruhusu kuunganishwa kwa siri, na sehemu kubwa ya data inaweza kuhesabiwa bila uthibitisho. Hii inaweza kuhesabu data yote inayopatikana bila uthibitisho:
Ili kupata maelezo zaidi unahitaji kutumia kikao kilichothibitishwa (angalia sehemu ya Uthibitishaji kujifunza jinsi ya kuandaa kikao kilichothibitishwa).
Kutoka kwa mashine iliyojiunga na kikoa utaweza kutumia binaries zilizowekwa kuhesabu kikoa:
Mtumiaji admin wa FreeIPA ni sawa na domain admins kutoka AD.
Mtumiaji root kutoka kwa IPA server ana ufikiaji wa hashes za nywila.
Hash ya nywila ya mtumiaji inahifadhiwa kama base64 katika “userPassword” attribute. Hash hii inaweza kuwa SSHA512 (toleo la zamani la FreeIPA) au PBKDF2_SHA256.
Nthash ya nywila inahifadhiwa kama base64 katika “ipaNTHash” ikiwa mfumo una integration na AD.
Ili kuvunja hizi hashes:
• Ikiwa freeIPA imeunganishwa na AD, ipaNTHash ni rahisi kuvunja: Unapaswa decode base64 -> u-re-encode kama ASCII hex -> John The Ripper au hashcat inaweza kukusaidia kuvunja haraka
• Ikiwa toleo la zamani la FreeIPA linatumika, basi SSHA512 inatumika: Unapaswa decode base64 -> pata SSHA512 hash -> John The Ripper au hashcat inaweza kukusaidia kuvunja
• Ikiwa toleo jipya la FreeIPA linatumika, basi PBKDF2_SHA256 inatumika: Unapaswa decode base64 -> pata PBKDF2_SHA256 -> urefu wake ni byte 256. John anaweza kufanya kazi na bits 256 (byte 32) -> SHA-265 inatumika kama kazi ya pseudo-random, saizi ya block ni byte 32 -> unaweza kutumia tu bits 256 za kwanza za hash yetu ya PBKDF2_SHA256 -> John The Ripper au hashcat inaweza kukusaidia kuvunja
Ili kutoa hashes unahitaji kuwa root katika server ya FreeIPA, hapo unaweza kutumia chombo dbscan
kutoa hizo:
Hizi ni sheria zinazotoa ruhusa maalum kwa watumiaji au mwenyeji juu ya rasilimali (wenyeji, huduma, vikundi vya huduma...)
FreeIPA inaruhusu udhibiti wa kati juu ya sudo permissions kupitia sudo-rules. Sheria hizi zinaruhusu au kuzuia utekelezaji wa amri na sudo kwenye mwenyeji ndani ya eneo. Mshambuliaji anaweza kutambua wenyeji, watumiaji, na amri zinazoruhusiwa kwa kuchunguza seti hizi za sheria.
A role inajumuisha privileges mbalimbali, kila moja ikiwa na mkusanyiko wa permissions. Majukumu haya yanaweza kutolewa kwa Watumiaji, Vikundi vya Watumiaji, Hosts, Vikundi vya Hosts, na Huduma. Kwa mfano, fikiria jukumu la default “User Administrator” katika FreeIPA ili kuonyesha muundo huu.
Jukumu la User Administrator
lina privileges hizi:
User Administrators
Group Administrators
Stage User Administrators
Kwa amri zifuatazo inawezekana kuhesabu majukumu, privileges na permissions:
Katika https://posts.specterops.io/attacking-freeipa-part-iii-finding-a-path-677405b5b95e unaweza kupata mfano rahisi wa jinsi ya kutumia ruhusa fulani kuathiri eneo.
Ikiwa unaweza kuunda mtumiaji mpya mwenye jina root
, unaweza kujifanya kuwa yeye na utaweza SSH kwenye mashine yoyote kama root.
HII IMEPATWA.
Unaweza kuangalia maelezo ya kina katika https://posts.specterops.io/attacking-freeipa-part-iv-cve-2020-10747-7c373a1bf66b
Jifunze & fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Jifunze & fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)