hacktricks/linux-hardening/freeipa-pentesting.md

212 lines
12 KiB
Markdown
Raw Normal View History

# FreeIPA Pentesting
2022-10-22 14:44:59 +00:00
<details>
<summary><strong>Jifunze AWS hacking kutoka sifuri hadi shujaa na</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)</strong></a><strong>!</strong></summary>
2022-10-22 14:44:59 +00:00
2024-02-11 02:13:58 +00:00
Njia nyingine za kusaidia HackTricks:
2023-12-30 20:49:23 +00:00
* Ikiwa unataka kuona **kampuni yako ikitangazwa kwenye HackTricks** au **kupakua HackTricks kwa PDF** Angalia [**MIPANGO YA USAJILI**](https://github.com/sponsors/carlospolop)!
* Pata [**bidhaa rasmi za PEASS & HackTricks**](https://peass.creator-spring.com)
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa [**NFTs**](https://opensea.io/collection/the-peass-family) za kipekee
* **Jiunge na** 💬 [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au **kikundi cha** [**telegram**](https://t.me/peass) au **tufuate** kwenye **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Shiriki mbinu zako za udukuzi kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos za github.
2022-10-22 14:44:59 +00:00
</details>
2024-02-11 02:13:58 +00:00
## Taarifa Msingi
2022-10-22 14:44:59 +00:00
FreeIPA ni **mbadala wa chanzo wazi** wa Microsoft Windows **Active Directory**, hasa kwa mazingira ya **Unix**. Inachanganya **directory ya LDAP kamili** na Kituo cha Usambazaji cha Kufungua Kichwa cha MIT kwa usimamizi kama Active Directory. Kwa kutumia **Mfumo wa Cheti wa Dogtag** kwa usimamizi wa vyeti vya CA & RA, inasaidia **uthibitishaji wa hatua nyingi**, ikiwa ni pamoja na kadi za akili. SSSD imeingizwa kwa mchakato wa uthibitishaji wa Unix.
2022-10-22 14:44:59 +00:00
## Alama za Vidole
2022-10-22 14:44:59 +00:00
### Faili & Mazingira ya Mazingira
2024-02-05 02:28:59 +00:00
* Faili katika `/etc/krb5.conf` ndio mahali ambapo habari ya mteja wa Kerberos, inayohitajika kwa usajili kwenye kikoa, imehifadhiwa. Hii ni pamoja na maeneo ya KDC na watumishi wa admin, mipangilio ya msingi, na ramani.
* Vipimo vya mfumo kwa wateja na watumishi wa IPA vimeset katika faili iliyoko katika `/etc/ipa/default.conf`.
* Wenyewe ndani ya kikoa lazima wawe na faili ya `krb5.keytab` katika `/etc/krb5.keytab` kwa mchakato wa uthibitishaji.
* Mazingira mbalimbali ya mazingira (`KRB5CCNAME`, `KRB5_KTNAME`, `KRB5_CONFIG`, `KRB5_KDC_PROFILE`, `KRB5RCACHETYPE`, `KRB5RCACHEDIR`, `KRB5_TRACE`, `KRB5_CLIENT_KTNAME`, `KPROP_PORT`) hutumiwa kuashiria faili na mipangilio maalum inayohusiana na uthibitishaji wa Kerberos.
2022-10-22 14:44:59 +00:00
### Programu za Binary
2022-10-22 14:44:59 +00:00
Zana kama vile `ipa`, `kdestroy`, `kinit`, `klist`, `kpasswd`, `ksu`, `kswitch`, na `kvno` ni muhimu katika kusimamia uwanja wa FreeIPA, kushughulikia tiketi za Kerberos, kubadilisha nywila, na kupata tiketi za huduma, miongoni mwa utendaji mwingine.
2022-10-22 14:44:59 +00:00
2024-02-11 02:13:58 +00:00
### Mtandao
2022-10-22 15:26:54 +00:00
2024-02-11 02:13:58 +00:00
Mchoro unatolewa kuonyesha usanidi wa kawaida wa seva ya FreeIPA.
2022-10-22 15:26:54 +00:00
## Uthibitishaji
2022-10-22 14:44:59 +00:00
Uthibitishaji katika FreeIPA, ukitumia **Kerberos**, unafanana na ule katika **Active Directory**. Upatikanaji wa rasilimali za kikoa unahitaji tiketi sahihi ya Kerberos, ambayo inaweza kuhifadhiwa katika maeneo mbalimbali kulingana na usanidi wa uwanja wa FreeIPA.
2022-10-22 14:44:59 +00:00
2024-02-11 02:13:58 +00:00
### **Faili za Tiketi za CCACHE**
2022-10-22 14:44:59 +00:00
Faili za CCACHE, zilizohifadhiwa kawaida katika **`/tmp`** na ruhusa za **600**, ni muundo wa binary wa kuhifadhi siri za Kerberos, muhimu kwa uthibitishaji bila nywila ya wazi ya mtumiaji kutokana na uhamishaji wao. Kupasua tiketi ya CCACHE inaweza kufanywa kwa kutumia amri ya `klist`, na kutumia tena Tiketi sahihi ya CCACHE kunahusisha kuuza nje `KRB5CCNAME` kwa njia ya faili ya tiketi.
2022-10-22 14:44:59 +00:00
2022-10-22 15:26:54 +00:00
### **Unix Keyring**
2022-10-22 14:44:59 +00:00
Kwa upande mwingine, Tiketi za CCACHE zinaweza kuhifadhiwa kwenye keyring ya Linux, ikitoa udhibiti zaidi juu ya usimamizi wa tiketi. Upeo wa uhifadhi wa tiketi hutofautiana (`KEYRING:jina`, `KEYRING:process:jina`, `KEYRING:thread:jina`, `KEYRING:kikao:jina`, `KEYRING:endelevu:uidnumber`), na `klist` inaweza kufasiri habari hii kwa mtumiaji. Hata hivyo, kutumia tena Tiketi ya CCACHE kutoka kwenye keyring ya Unix kunaweza kuleta changamoto, na zana kama **Tickey** inapatikana kwa kuchimba tiketi za Kerberos.
2022-10-22 14:44:59 +00:00
2024-02-05 02:28:59 +00:00
### Keytab
2022-10-22 14:44:59 +00:00
Faili za Keytab, zenye mabwana ya Kerberos na funguo zilizofichwa, ni muhimu kwa kupata tiketi sahihi za kutoa ruhusa (TGT) bila kuhitaji nywila ya bwana. Kupasua na kutumia upya siri kutoka kwenye faili za keytab kunaweza kufanywa kwa urahisi na zana kama `klist` na hati kama **KeytabParser**.
2022-10-22 14:44:59 +00:00
### Karatasi ya Udanganyifu
2022-10-22 14:44:59 +00:00
Unaweza kupata maelezo zaidi kuhusu jinsi ya kutumia tiketi katika linux kwenye kiungo kifuatacho:
2022-10-22 14:44:59 +00:00
{% content-ref url="privilege-escalation/linux-active-directory.md" %}
[linux-active-directory.md](privilege-escalation/linux-active-directory.md)
{% endcontent-ref %}
## Uchambuzi
2022-10-22 14:44:59 +00:00
2022-10-22 15:26:54 +00:00
{% hint style="warning" %}
Unaweza kufanya **uchambuzi** kupitia **ldap** na zana nyingine za **binary**, au **kuunganisha kwenye ukurasa wa wavuti kwenye bandari 443 ya seva ya FreeIPA**.
2022-10-22 15:26:54 +00:00
{% endhint %}
### Wenyewe, Watumiaji, na Vikundi <a href="#id-4b3b" id="id-4b3b"></a>
2022-10-22 15:26:54 +00:00
Inawezekana kuunda **wenyewe**, **watumiaji** na **vikundi**. Wenyewe na watumiaji wamepangwa katika vyombo vinavyoitwa "**Vikundi vya Wenyeji**" na "**Vikundi vya Watumiaji**" mtawalia. Haya ni sawa na **Vipengele vya Shirika** (OU).
2022-10-22 14:44:59 +00:00
Kwa chaguo-msingi katika FreeIPA, seva ya LDAP inaruhusu **kufunga kwa siri**, na seti kubwa ya data inaweza kuchambuliwa **bila kuthibitishwa**. Hii inaweza kuchambua data yote inayopatikana bila kuthibitishwa:
2022-10-22 14:44:59 +00:00
```
2024-02-11 02:13:58 +00:00
ldapsearch -x
2022-10-22 14:44:59 +00:00
```
Ili kupata **maji zaidi**, unahitaji kutumia kikao kilichothibitishwa (angalia sehemu ya Uthibitishaji kujifunza jinsi ya kuandaa kikao kilichothibitishwa).
2022-10-22 14:44:59 +00:00
```bash
# Get all users of domain
ldapsearch -Y gssapi -b "cn=users,cn=compat,dc=domain_name,dc=local"
# Get users groups
ldapsearch -Y gssapi -b "cn=groups,cn=accounts,dc=domain_name,dc=local"
# Get all the hosts
ldapsearch -Y gssapi -b "cn=computers,cn=accounts,dc=domain_name,dc=local"
# Get hosts groups
2024-02-11 02:13:58 +00:00
ldapsearch -Y gssapi -b "cn=hostgroups,cn=accounts,dc=domain_name,dc=local"
2022-10-22 14:44:59 +00:00
```
Kutoka kwenye mashine iliyoshirikishwa kwenye kikoa utaweza kutumia **faili za binary zilizosakinishwa** kuchambua kikoa:
2022-10-22 14:44:59 +00:00
```bash
ipa user-find
ipa usergroup-find
ipa host-find
ipa host-group-find
-------------------
ipa user-show <username> --all
ipa usergroup-show <user group> --all
ipa host-find <host> --all
ipa hostgroup-show <host group> --all
```
2022-10-22 15:26:54 +00:00
{% hint style="info" %}
2024-02-11 02:13:58 +00:00
Mtumiaji wa **admin** wa **FreeIPA** ni sawa na **domain admins** kutoka **AD**.
2022-10-22 15:26:54 +00:00
{% endhint %}
### Hashes <a href="#id-482b" id="id-482b"></a>
2022-10-22 15:26:54 +00:00
Mtumiaji wa **root** kutoka kwenye **IPA server** ana ufikivu wa **hashes** za nywila.
2022-10-22 15:26:54 +00:00
- Hash ya nywila ya mtumiaji imehifadhiwa kama **base64** kwenye sifa ya "**userPassword**". Hash hii inaweza kuwa **SSHA512** (toleo za zamani za FreeIPA) au **PBKDF2\_SHA256**.
- **Nthash** ya nywila imehifadhiwa kama **base64** kwenye “**ipaNTHash**” ikiwa mfumo una **integration** na **AD**.
2022-10-22 15:26:54 +00:00
Ku-crack hizi hashes:
2022-10-22 15:26:54 +00:00
- Ikiwa freeIPA imeunganishwa na AD, **ipaNTHash** ni rahisi ku-crack: Unapaswa **decode** **base64** -> encode tena kama **ASCII** hex -> John The Ripper au **hashcat** wanaweza kukusaidia ku-crack haraka
- Ikiwa toleo la zamani la FreeIPA limetumika, basi **SSHA512** hutumika: Unapaswa kudecode **base64** -> pata SSHA512 **hash** -> John The Ripper au **hashcat** wanaweza kukusaidia ku-crack
- Ikiwa toleo jipya la FreeIPA limetumika, basi **PBKDF2\_SHA256** hutumika: Unapaswa kudecode **base64** -> pata PBKDF2\_SHA256 -> urefu wake ni 256 byte. John anaweza kufanya kazi na bits 256 (32 byte) -> SHA-265 hutumika kama function ya pseudo-random, ukubwa wa block ni 32 byte -> unaweza kutumia tu biti za kwanza 256 za hash yetu ya PBKDF2\_SHA256 -> John The Ripper au hashcat wanaweza kukusaidia ku-crack
2022-10-22 15:26:54 +00:00
<figure><img src="../.gitbook/assets/image (655).png" alt=""><figcaption></figcaption></figure>
2022-10-22 15:26:54 +00:00
Kuondoa hashes unahitaji kuwa **root kwenye server ya FreeIPA**, hapo unaweza kutumia chombo **`dbscan`** kuzitoa:
2022-10-22 15:26:54 +00:00
<figure><img src="../.gitbook/assets/image (293).png" alt=""><figcaption></figcaption></figure>
2022-10-22 15:26:54 +00:00
### HBAC-Rules <a href="#id-482b" id="id-482b"></a>
2022-10-22 14:44:59 +00:00
Hizi ni sheria zinazotoa ruhusa maalum kwa watumiaji au mwenyeji juu ya rasilimali (wenyeji, huduma, vikundi vya huduma...).
2022-10-22 14:44:59 +00:00
```bash
# Enumerate using ldap
ldapsearch -Y gssapi -b "cn=hbac,dc=domain_name,dc=local"
# Using ipa
ipa hbacrule-find
# Show info of rule
ipa hbacrule-show <hbacrule> --all
```
#### Sera za Sudo
2022-10-22 14:44:59 +00:00
FreeIPA inawezesha udhibiti uliojumuishwa wa **ruhusa za sudo** kupitia sera za sudo. Sera hizi huruhusu au kuzuia utekelezaji wa amri za sudo kwenye mwenyeji ndani ya kikoa. Mshambuliaji anaweza kwa uwezekano kutambua mwenyeji husika, watumiaji, na amri zilizoruhusiwa kwa kuchunguza seti hizi za sera.
2022-10-22 14:44:59 +00:00
```bash
# Enumerate using ldap
ldapsearch -Y gssapi -b "cn=sudorules,cn=sudo,dc=domain_name,dc=local"
# Using ipa
ipa sudorule-find
# Show info of rule
ipa sudorule-show <sudorule> --all
```
### Kudhibiti Upatikanaji kulingana na Majukumu
2022-10-22 14:44:59 +00:00
**Jukumu** linaundwa na **madaraka** mbalimbali, kila moja ikijumuisha mkusanyiko wa **ruhusa**. Majukumu haya yanaweza kupewa Watumiaji, **Vikundi** vya Watumiaji, **Mwenyeji**, Vikundi vya Wenyeji, na Huduma. Kwa mfano, fikiria jukumu la "Msimamizi wa Mtumiaji" katika FreeIPA kuonyesha muundo huu.
2022-10-22 14:44:59 +00:00
Jukumu la `Msimamizi wa Mtumiaji` lina madaraka haya:
2022-10-22 14:44:59 +00:00
- **Msimamizi wa Watumiaji**
- **Msimamizi wa Vikundi**
- **Msimamizi wa Hatua za Mtumiaji**
2022-10-22 14:44:59 +00:00
Kwa kutumia amri zifuatazo, ni rahisi kuchunguza majukumu, madaraka, na ruhusa:
2022-10-22 14:44:59 +00:00
```bash
# Using ldap
ldapsearch -Y gssapi -b "cn=roles,cn=accounts,dc=westeros,dc=local"
# Using ipa binary
ipa role-find
ipa role-show <role> --all
2024-02-11 02:13:58 +00:00
ipa privilege-find
2022-10-22 14:44:59 +00:00
ipa privilege-show <privilege> --all
ipa permission-find
ipa permission-show <permission> --all
```
### Mfano wa Skenario ya Shambulizi
2022-10-22 14:44:59 +00:00
Katika [https://posts.specterops.io/attacking-freeipa-part-iii-finding-a-path-677405b5b95e](https://posts.specterops.io/attacking-freeipa-part-iii-finding-a-path-677405b5b95e) unaweza kupata mfano rahisi wa jinsi ya kutumia baadhi ya ruhusa kudhoofisha uwanja.
2022-10-22 14:44:59 +00:00
### Linikatz/LinikatzV2
* [https://github.com/Orange-Cyberdefense/LinikatzV2](https://github.com/Orange-Cyberdefense/LinikatzV2)
* [https://github.com/CiscoCXSecurity/linikatz](https://github.com/CiscoCXSecurity/linikatz)
2022-10-22 14:44:59 +00:00
## Privesc
### ~~Uundaji wa mtumiaji wa mizizi~~
2022-10-22 14:44:59 +00:00
{% hint style="warning" %}
Ikiwa unaweza **kuunda mtumiaji mpya kwa jina `root`**, unaweza kujifanya kuwa yeye na utaweza **kuingia kwa SSH kwenye mashine yoyote kama mizizi.**
2022-10-22 14:44:59 +00:00
**HII IMESASISHWA.**
2022-10-22 14:44:59 +00:00
{% endhint %}
2024-02-11 02:13:58 +00:00
Unaweza kuangalia maelezo ya kina katika [https://posts.specterops.io/attacking-freeipa-part-iv-cve-2020-10747-7c373a1bf66b](https://posts.specterops.io/attacking-freeipa-part-iv-cve-2020-10747-7c373a1bf66b)
2022-10-22 14:44:59 +00:00
2024-02-11 02:13:58 +00:00
## Marejeo
2024-02-05 02:28:59 +00:00
* [https://posts.specterops.io/attacking-freeipa-part-iv-cve-2020-10747-7c373a1bf66b](https://posts.specterops.io/attacking-freeipa-part-iv-cve-2020-10747-7c373a1bf66b)
* [https://posts.specterops.io/attacking-freeipa-part-i-authentication-77e73d837d6a](https://posts.specterops.io/attacking-freeipa-part-i-authentication-77e73d837d6a)
* [https://posts.specterops.io/attacking-freeipa-part-ii-enumeration-ad27224371e1](https://posts.specterops.io/attacking-freeipa-part-ii-enumeration-ad27224371e1)
* [https://www.youtube.com/watch?v=9dOu-7BTwPQ](https://www.youtube.com/watch?v=9dOu-7BTwPQ)
2022-10-22 14:44:59 +00:00
<details>
<summary><strong>Jifunze kuhusu kudukua AWS kutoka sifuri hadi shujaa na</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
2022-10-22 14:44:59 +00:00
2024-02-11 02:13:58 +00:00
Njia nyingine za kusaidia HackTricks:
2023-12-30 20:49:23 +00:00
* Ikiwa unataka kuona **kampuni yako ikitangazwa kwenye HackTricks** au **kupakua HackTricks kwa PDF** Angalia [**MIPANGO YA KUJIUNGA**](https://github.com/sponsors/carlospolop)!
* Pata [**bidhaa rasmi za PEASS & HackTricks**](https://peass.creator-spring.com)
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa [**NFTs**](https://opensea.io/collection/the-peass-family) ya kipekee
* **Jiunge na** 💬 [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au kikundi cha [**telegram**](https://t.me/peass) au **tufuate** kwenye **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Shiriki mbinu zako za kudukua kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
2022-10-22 14:44:59 +00:00
</details>