mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-23 05:03:35 +00:00
284 lines
34 KiB
Markdown
284 lines
34 KiB
Markdown
# FreeIPA पेंटेस्टिंग
|
|
|
|
<details>
|
|
|
|
<summary><strong>AWS हैकिंग सीखें शून्य से लेकर हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
|
|
|
|
HackTricks का समर्थन करने के अन्य तरीके:
|
|
|
|
* यदि आप चाहते हैं कि आपकी **कंपनी का विज्ञापन HackTricks में दिखाई दे** या **HackTricks को PDF में डाउनलोड करें**, तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
|
* [**आधिकारिक PEASS & HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
|
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा एक्सक्लूसिव [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह
|
|
* 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) में **शामिल हों** या [**telegram group**](https://t.me/peass) में या **Twitter** पर 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm) को **फॉलो** करें.
|
|
* **अपनी हैकिंग ट्रिक्स साझा करें PRs जमा करके** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में.
|
|
|
|
</details>
|
|
|
|
यह जानकारी इन पोस्ट्स से ली गई है:
|
|
|
|
* [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\&feature=youtu.be](https://www.youtube.com/watch?v=9dOu-7BTwPQ\&feature=youtu.be)
|
|
|
|
## मूल जानकारी
|
|
|
|
यह Microsoft Windows **Active Directory** का एक ओपन सोर्स **विकल्प** है, जिसका मुख्य रूप से **Unix** पर्यावरणों के लिए एकीकृत प्रबंधन समाधान के रूप में उपयोग होता है। Active Directory की तरह, FreeIPA एक पूर्ण **LDAP डायरेक्टरी** इंफ्रास्ट्रक्चर को लागू करता है जिसके पीछे MIT **Kerberos** Key Distribution Center होता है। यह Dogtag **Certificate System** का उपयोग CA & RA प्रमाणपत्र प्रबंधन के लिए करता है, जिससे यह **मल्टी-फैक्टर** प्रमाणीकरण को संभाल सकता है, जिसमें स्मार्टकार्ड्स शामिल हैं। SSSD का उपयोग FreeIPA को मानक Unix प्रमाणीकरण प्रक्रिया में एकीकृत करने के लिए किया जाता है।
|
|
|
|
## फिंगरप्रिंट्स
|
|
|
|
### फाइलें & Env Vars
|
|
|
|
* **`/etc/krb5.conf`:** `krb5.conf` फाइल में Kerberos क्लाइंट जानकारी होती है जो **डोमेन में नामांकित** होने के लिए आवश्यक है। इसमें Kerberos रियल्म्स के KDCs और एडमिन सर्वरों के **स्थान**, वर्तमान रियल्म और Kerberos एप्लिकेशनों के लिए डिफॉल्ट्स, और होस्टनेम्स को Kerberos रियल्म्स पर मैपिंग शामिल है।
|
|
* **`/etc/ipa/default.conf`:** यह **IPA सर्वरों के लिए डिफॉल्ट कॉन्फिगरेशन फाइल** है, इसका उपयोग IPA क्लाइंट्स और सर्वरों को चलाते समय सिस्टम-वाइड डिफॉल्ट्स सेट करने के लिए किया जाता है।
|
|
* **`/etc/krb5.keytab`:** `krb5.keytab` फाइल **डोमेन** के अंदर सभी होस्ट्स पर **आवश्यक** होती है। यह KDC के लिए **प्रमाणीकरण** प्रक्रिया का हिस्सा है।
|
|
* **`KRB5CCNAME`:** यदि सेट किया गया है, तो यह वेरिएबल CCACHE टिकट के **स्थान** को इंगित करता है जिसका उपयोग प्रमाणीकरण के लिए किया जाना है।
|
|
* **`KRB5_KTNAME`:** यदि सेट किया गया है, तो यह वेरिएबल Keytab फाइल के **स्थान** को इंगित करता है जिसका उपयोग प्रमाणीकरण के लिए किया जाना है।
|
|
* **`KRB5_CONFIG`:** यदि सेट किया गया है, तो यह वेरिएबल Kerberos कॉन्फिगरेशन फाइल के **स्थान** को इंगित करता है।
|
|
* **`KRB5_KDC_PROFILE`:** यदि सेट किया गया है, तो यह वेरिएबल KDC कॉन्फिगरेशन फाइल के **स्थान** को इंगित करता है, जिसमें Key Distribution Center डेमन के लिए अतिरिक्त कॉन्फिगरेशन निर्देश होते हैं।
|
|
* **`KRB5RCACHETYPE`:** यह वेरिएबल सर्वरों के लिए उपयोग करने के लिए **रिप्ले कैश के डिफॉल्ट प्रकार** को निर्दिष्ट करता है।
|
|
* **`KRB5RCACHEDIR`:** यह वेरिएबल सर्वरों द्वारा उपयोग किए जाने वाले **रिप्ले कैशेस के डिफॉल्ट डायरेक्टरी** को निर्दिष्ट करता है।
|
|
* **`KRB5_TRACE`:** यह वेरिएबल एक **फाइलनेम निर्दिष्ट करता है जिसमें ट्रेस लॉग आउटपुट लिखा जाएगा**। ट्रेस लॉग्स Kerberos लाइब्रेरीज द्वारा आंतरिक रूप से किए गए निर्णयों को स्पष्ट करने में मदद कर सकते हैं।
|
|
* **`KRB5_CLIENT_KTNAME`:** यह वेरिएबल **डिफॉल्ट क्लाइंट keytab** फाइल नाम सेट करता है।
|
|
* **`KPROP_PORT`:** यह वेरिएबल kprop के उपयोग के लिए **डिफॉल्ट पोर्ट** सेट करता है।
|
|
|
|
### बाइनरीज
|
|
|
|
* **ipa:** यह बाइनरी **FreeIPA डोमेन को प्रबंधित करने** के लिए मानक है। इसका उपयोग होस्ट्स, उपयोगकर्ताओं, सुडो नियमों, और बहुत कुछ प्रबंधित करने के लिए किया जा सकता है।
|
|
* **kdestroy:** kdestroy बाइनरी का उपयोग उपयोगकर्ता के सत्र में किसी भी मौजूदा **Kerberos टिकट्स** को **नष्ट** करने के लिए किया जाता है।
|
|
* **kinit:** kinit बाइनरी का उपयोग **Kerberos टिकट्स** को **स्थापित** करने या **नवीनीकृत** करने के लिए किया जाता है।
|
|
* **klist:** klist बाइनरी **सूचीबद्ध** करती है कि कौन से मौजूदा **Kerberos टिकट्स उपयोग में हैं**, और कौन से प्रिंसिपल्स को टिकट्स पहुंच प्रदान करते हैं।
|
|
* **kpasswd:** kpasswd कमांड का उपयोग **Kerberos प्रिंसिपल के पासवर्ड को बदलने** के लिए किया जाता है। kpasswd पहले मौजूदा Kerberos पासवर्ड के लिए प्रॉम्प्ट करता है, फिर नए पासवर्ड के लिए उपयोगकर्ता से दो बार प्रॉम्प्ट करता है, और पासवर्ड बदल दिया जाता है।
|
|
* **ksu:** Ksu का उपयोग su बाइनरी के **विकल्प** के रूप में किया जा सकता है, वर्तमान **उपयोगकर्ता संदर्भ** को स्विच करने के लिए।
|
|
* **kswitch:** kswitch कमांड **मौजूदा क्रेडेंशियल कैश** को **स्विच** करेगा जो उपयोग में है।
|
|
* **kvno:** kvno बाइनरी **निर्दिष्ट Kerberos** प्रिंसिपल्स के लिए एक **सेवा टिकट** प्राप्त करती है और प्रत्येक के की वर्जन नंबरों को प्रिंट करती है।
|
|
|
|
### नेटवर्क
|
|
|
|
यह FreeIPA सर्वर कैसा दिख सकता है:
|
|
|
|
<figure><img src="../.gitbook/assets/image (197).png" alt=""><figcaption></figcaption></figure>
|
|
|
|
## प्रमाणीकरण
|
|
|
|
चूंकि FreeIPA **Kerberos का उपयोग प्रमाणीकरण के लिए करता है**, यह प्रक्रिया **Active Directory** में प्रमाणीकरण के समान है। डोमेन पर संसाधनों तक **पहुंचने** के लिए, उपयोगकर्ता के पास उस संसाधन के लिए एक **वैध Kerberos टिकट** होना
|
|
```
|
|
klist /tmp/krb5cc_0
|
|
```
|
|
<figure><img src="../.gitbook/assets/image (70).png" alt=""><figcaption></figcaption></figure>
|
|
|
|
हमलावर के लिए CCACHE टिकट का पुन: उपयोग करना बहुत आसान है। एक मान्य CCACHE टिकट को **पुन: उपयोग** करने के लिए, **KRB5CCNAME** को वैध टिकट फाइल के **पथ** पर **निर्यात** करें। सिस्टम को पर्यावरण वेरिएबल की पहचान करनी चाहिए और डोमेन के साथ बातचीत करते समय उस क्रेडेंशियल सामग्री का उपयोग करने का प्रयास करेगा।
|
|
```bash
|
|
export KRB5CCNAME=/tmp/krb5cc_0
|
|
klist
|
|
```
|
|
### **Unix Keyring**
|
|
|
|
CCACHE Tickets \*\*\*\* को \*\*\*\* Linux **keyring** में भी **संग्रहित** किया जा सकता है। Keyring **कर्नेल** के अंदर रहता है, और प्रशासकों को संग्रहित टिकटों की प्राप्ति और उपयोग पर **अधिक नियंत्रण** प्रदान करता है। टिकटों को निम्नलिखित विभिन्न तरीकों से सीमित किया जा सकता है:
|
|
|
|
* **`KEYRING:name`:** टिकट एक विशिष्ट नामित Keyring के लिए सीमित हैं।
|
|
* **`KEYRING:process:name`:** टिकट एक विशिष्ट प्रक्रिया आईडी के लिए सीमित हैं।
|
|
* **`KEYRING:thread:name`:** टिकट एक विशिष्ट थ्रेड के लिए सीमित हैं।
|
|
* **`KEYRING:session:name`:** टिकट एक विशिष्ट उपयोगकर्ता सत्र के लिए सीमित हैं।
|
|
* **`KEYRING:persistent:uidnumber`:** टिकट एक विशिष्ट उपयोगकर्ता के लिए सत्र की परवाह किए बिना सीमित हैं (डिफ़ॉल्ट)।
|
|
|
|
प्रशासक द्वारा Unix keyring के अंदर संग्रहित टिकट को किस प्रकार सीमित किया गया है, इसके आधार पर इसे पार्स करना कठिन हो सकता है। हालांकि, Unix keyring में CCACHE Tickets के लिए **डिफ़ॉल्ट** **स्कोप** **`KEYRING:persistent:uidnumber`** है। सौभाग्य से यदि आप **उपयोगकर्ता** के **संदर्भ** में हैं, तो `klist` हमारे लिए इस जानकारी को **पार्स** कर सकता है।
|
|
|
|
हमलावर के रूप में, Unix **keyring** में संग्रहित **CCACHE** Ticket का **पुन: उपयोग** करना टिकट के स्कोप के आधार पर काफी **कठिन** हो सकता है। सौभाग्य से [@Zer1t0](https://github.com/Zer1t0) ने [@Tarlogic](https://twitter.com/Tarlogic) से एक उपकरण बनाया है जो Unix keyring से Kerberos टिकटों को निकाल सकता है। उपकरण का नाम **Tickey** है और इसे [**यहाँ**](https://github.com/TarlogicSecurity/tickey) पाया जा सकता है।
|
|
|
|
### Keytab <a href="#ff38" id="ff38"></a>
|
|
|
|
{% hint style="warning" %}
|
|
आमतौर पर, प्रत्येक होस्ट को उस होस्ट के लिए एक keytab क्रेडेंशियल के साथ तैनात किया जाता है जिसका उपयोग होस्ट स्वयं के लिए एक वैध Credential Cache(CCACHE) Ticket Granting Ticket(TGT) प्राप्त करने के लिए किया जा सकता है।
|
|
{% endhint %}
|
|
|
|
यह **Kerberos प्रिंसिपल्स और एन्क्रिप्टेड कीज़** की जोड़ियों से बना होता है जो प्रिंसिपल से जुड़े Kerberos पासवर्ड से निकाले गए होते हैं। चूंकि ये कीज़ प्रिंसिपल के पासवर्ड से निकाली गई होती हैं, इसलिए यदि वह **पासवर्ड बदलता है तो keytab अमान्य हो जाएगा**।
|
|
|
|
Keytab फाइलों का उपयोग प्रिंसिपल के लिए एक वैध टिकट ग्रांटिंग टिकट (TGT) प्राप्त करने के लिए किया जा सकता है। यह प्रमाणीकरण प्रक्रिया **पासवर्ड की आवश्यकता नहीं होती**, क्योंकि इसमें पासवर्ड से निकाली गई कीज़ होती हैं।
|
|
|
|
Keytab फाइल को पार्स करना बहुत आसान है, और इसे कुछ तरीकों से पूरा किया जा सकता है। Keytab फाइल को **पार्स** करने का सबसे आसान तरीका **klist** के साथ है। दूसरा तरीका [Cody Thomas](https://medium.com/u/645ffcef8682?source=post\_page-----77e73d837d6a--------------------------------) द्वारा बनाई गई एक शानदार पायथन उपयोगिता का उपयोग करता है। उनकी \*\*\*\* [**KeytabParser**](https://github.com/its-a-feature/KeytabParser) \*\*\*\* परियोजना प्रिंसिपल और उसकी संबंधित एन्क्रिप्टेड कीज़ को पार्स करेगी।
|
|
|
|
हमलावर keytab फाइलों में संग्रहित क्रेडेंशियल्स का **पुन: उपयोग** कर सकते हैं, kinit बाइनरी के माध्यम से एक CCACHE Ticket **जनरेट** करके।
|
|
```powershell
|
|
# Parse keytab
|
|
klist -k /rtc/krb5.keytab
|
|
|
|
# Get TGT
|
|
kinit -kt /etc/krb5.keytab host/bastion.westeros.local@WESTEROS.LOCAL
|
|
```
|
|
### Cheatsheet
|
|
|
|
आप निम्नलिखित लिंक में लिनक्स में टिकटों का उपयोग कैसे करें, इसके बारे में अधिक जानकारी पा सकते हैं:
|
|
|
|
{% content-ref url="privilege-escalation/linux-active-directory.md" %}
|
|
[linux-active-directory.md](privilege-escalation/linux-active-directory.md)
|
|
{% endcontent-ref %}
|
|
|
|
## सूचीकरण (Enumeration)
|
|
|
|
{% hint style="warning" %}
|
|
आप **ldap** और अन्य **बाइनरी** टूल्स के माध्यम से, या **FreeIPA सर्वर के पोर्ट 443 पर वेब पेज से कनेक्ट करके** **सूचीकरण** कर सकते हैं।
|
|
{% endhint %}
|
|
|
|
### होस्ट्स, उपयोगकर्ता, और समूह <a href="#4b3b" id="4b3b"></a>
|
|
|
|
**होस्ट्स**, **उपयोगकर्ता** और **समूह** बनाना संभव है। होस्ट्स और उपयोगकर्ता को “**होस्ट समूह**” और “**उपयोगकर्ता समूह**” के रूप में जाने जाने वाले कंटेनरों में वर्गीकृत किया जाता है। ये **संगठनात्मक इकाइयों** (OU) के समान हैं।
|
|
|
|
FreeIPA में डिफ़ॉल्ट रूप से, LDAP सर्वर **गुमनाम बाइंड्स** की अनुमति देता है, और बड़ी मात्रा में डेटा **अप्रमाणित** रूप से सूचीबद्ध किया जा सकता है। यह सभी डेटा को अप्रमाणित रूप से सूचीबद्ध कर सकता है:
|
|
```
|
|
ldapsearch -x
|
|
```
|
|
अधिक **जानकारी** प्राप्त करने के लिए आपको एक **प्रमाणित** सत्र का उपयोग करना होगा (प्रमाणित सत्र तैयार करने के लिए Authentication अनुभाग देखें)।
|
|
```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
|
|
ldapsearch -Y gssapi -b "cn=hostgroups,cn=accounts,dc=domain_name,dc=local"
|
|
```
|
|
एक डोमेन से जुड़ी मशीन से आप **स्थापित बाइनरीज** का उपयोग करके डोमेन का परिगणना कर सकेंगे:
|
|
```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
|
|
```
|
|
{% hint style="info" %}
|
|
**FreeIPA** का **admin** उपयोगकर्ता **AD** के **domain admins** के समान होता है।
|
|
{% endhint %}
|
|
|
|
### हैशेज़ <a href="#482b" id="482b"></a>
|
|
|
|
**IPA सर्वर** का **root** उपयोगकर्ता पासवर्ड **हैशेज़** तक पहुँच सकता है।
|
|
|
|
* उपयोगकर्ता का पासवर्ड हैश “**userPassword**” **एट्रिब्यूट** में **base64** के रूप में संग्रहीत होता है। यह हैश **SSHA512** (FreeIPA के पुराने संस्करणों में) या **PBKDF2_SHA256** हो सकता है।
|
|
* पासवर्ड का **Nthash** “**ipaNTHash**” में **base64** के रूप में संग्रहीत होता है यदि सिस्टम में **AD** के साथ **इंटीग्रेशन** है।
|
|
|
|
इन हैशेज़ को क्रैक करने के लिए:
|
|
|
|
• यदि freeIPA AD के साथ इंटीग्रेटेड है, तो **ipaNTHash** को क्रैक करना आसान है: आपको **base64** को **डिकोड** करना चाहिए -> इसे **ASCII** हेक्स के रूप में पुनः एन्कोड करें -> John The Ripper या **hashcat** आपकी मदद कर सकते हैं इसे जल्दी क्रैक करने में
|
|
|
|
• यदि FreeIPA का पुराना संस्करण प्रयोग किया जा रहा है, तो **SSHA512** का उपयोग होता है: आपको **base64** को डिकोड करना चाहिए -> SSHA512 **हैश** खोजें -> John The Ripper या **hashcat** आपकी मदद कर सकते हैं इसे क्रैक करने में
|
|
|
|
• यदि FreeIPA का नया संस्करण प्रयोग किया जा रहा है, तो **PBKDF2_SHA256** का उपयोग होता है: आपको **base64** को डिकोड करना चाहिए -> PBKDF2_SHA256 खोजें -> इसकी **लंबाई** 256 बाइट है। John 256 बिट्स (32 बाइट) के साथ काम कर सकता है -> SHA-256 का उपयोग प्रीडो-रैंडम फंक्शन के रूप में किया जाता है, ब्लॉक का आकार 32 बाइट है -> आप हमारे PBKDF2_SHA256 हैश के केवल पहले 256 बिट का उपयोग कर सकते हैं -> John The Ripper या hashcat आपकी मदद कर सकते हैं इसे क्रैक करने में
|
|
|
|
<figure><img src="../.gitbook/assets/image (33).png" alt=""><figcaption></figcaption></figure>
|
|
|
|
हैशेज़ को निकालने के लिए आपको **FreeIPA सर्वर में root** होना आवश्यक है, वहाँ आप **`dbscan`** टूल का उपयोग करके उन्हें निकाल सकते हैं:
|
|
|
|
<figure><img src="../.gitbook/assets/image (196).png" alt=""><figcaption></figcaption></figure>
|
|
|
|
### HBAC-नियम <a href="#482b" id="482b"></a>
|
|
|
|
ये नियम हैं जो उपयोगकर्ताओं या होस्ट्स को संसाधनों (होस्ट्स, सेवाएं, सेवा समूह...) पर विशिष्ट अनुमतियाँ प्रदान करते हैं।
|
|
```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
|
|
```
|
|
#### Sudo-नियम
|
|
|
|
FreeIPA एक **केंद्रीकृत** स्रोत के माध्यम से **sudo अनुमतियों को प्रबंधित करने** की क्षमता प्रदान करता है, जिसे sudo-नियम के रूप में जाना जाता है। ये नियम समूह डोमेन में नामांकित होस्ट्स पर **sudo के रूप में कमांड्स को निष्पादित करने की क्षमता** को प्रतिबंधित या प्रतिनिधित्व करने के लिए उपयोग किए जा सकते हैं। एक हमलावर के रूप में हम यह पता लगा सकते हैं कि इन नियम समूहों को किन होस्ट्स और उपयोगकर्ताओं पर लागू किया गया है, और कौन से कमांड्स नियम समूह के माध्यम से अनुमति प्राप्त हैं।
|
|
```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
|
|
```
|
|
### भूमिका-आधारित पहुँच नियंत्रण
|
|
|
|
प्रत्येक **भूमिका** में एक सेट **विशेषाधिकार** होते हैं, और उन संबंधित विशेषाधिकारों में **अनुमतियों** का एक **सेट** होता है। भूमिकाएँ **उपयोगकर्ताओं** पर, उपयोगकर्ता **समूहों**, **होस्टों**, होस्ट समूहों, और सेवाओं पर **लागू** की जा सकती हैं। इस अवधारणा को समझाने के लिए चलिए FreeIPA में डिफ़ॉल्ट “User Administrator” भूमिका पर चर्चा करते हैं।
|
|
|
|
<figure><img src="../.gitbook/assets/image (161).png" alt=""><figcaption></figcaption></figure>
|
|
|
|
जैसा कि ऊपर के स्क्रीनशॉट में दिखाया गया है “User Administrator” भूमिका में निम्नलिखित विशेषाधिकार शामिल हैं:
|
|
|
|
* **User Administrators**
|
|
* **Group Administrators**
|
|
* **Stage User Administrators**
|
|
|
|
हम और गहराई में जाकर प्रत्येक **विशेषाधिकार** को सौंपी गई **अनुमतियों** का विवरण देख सकते हैं:
|
|
|
|
<figure><img src="../.gitbook/assets/image (189).png" alt=""><figcaption></figcaption></figure>
|
|
|
|
जैसा कि हम देख सकते हैं “**User Administrator**” भूमिका में पर्यावरण के भीतर काफी **अधिक अनुमतियाँ** शामिल हैं। **भूमिकाओं**, **विशेषाधिकारों**, और **अनुमतियों** की सामान्य अवधारणा और संरचना को समझना पर्यावरण भर में हमले के मार्गों की पहचान करने के लिए महत्वपूर्ण हो सकता है।
|
|
```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
|
|
ipa privilege-find
|
|
ipa privilege-show <privilege> --all
|
|
ipa permission-find
|
|
ipa permission-show <permission> --all
|
|
```
|
|
### हमले की परिदृश्य उदाहरण
|
|
|
|
[https://posts.specterops.io/attacking-freeipa-part-iii-finding-a-path-677405b5b95e](https://posts.specterops.io/attacking-freeipa-part-iii-finding-a-path-677405b5b95e) में आपको एक सरल उदाहरण मिलेगा कि कैसे कुछ अनुमतियों का दुरुपयोग करके डोमेन को समझौता किया जा सकता है।
|
|
|
|
### Linikatz/LinikatzV2
|
|
|
|
* [https://github.com/Orange-Cyberdefense/LinikatzV2](https://github.com/Orange-Cyberdefense/LinikatzV2)
|
|
* [https://github.com/CiscoCXSecurity/linikatz](https://github.com/CiscoCXSecurity/linikatz)
|
|
|
|
## Privesc
|
|
|
|
### ~~root उपयोगकर्ता निर्माण~~
|
|
|
|
{% hint style="warning" %}
|
|
यदि आप **नया उपयोगकर्ता `root` नाम से बना सकते हैं**, तो आप उसका अनुकरण कर सकते हैं और आप किसी भी मशीन में root के रूप में **SSH कर सकेंगे।**
|
|
|
|
**इसे पैच किया गया है।**
|
|
{% endhint %}
|
|
|
|
"**User Administrators**" विशेषाधिकार बहुत शक्तिशाली है (जैसा कि इसका नाम बताता है):
|
|
|
|
<figure><img src="../.gitbook/assets/image (182).png" alt=""><figcaption></figcaption></figure>
|
|
|
|
इस विशेषाधिकार के साथ वातावरण के अंदर उपयोगकर्ताओं को प्रभावित करने की बहुत सारी शक्तियाँ आती हैं। इस विशेषाधिकार का उपयोग करके हम FreeIPA डोमेन के अंदर एक नया उपयोगकर्ता \_root**\_ बना सकते हैं।
|
|
|
|
<figure><img src="../.gitbook/assets/image (158).png" alt=""><figcaption></figcaption></figure>
|
|
|
|
एक बार जब डोमेन में उपयोगकर्ता बन जाता है, हम \_kinit**\_ के साथ खाते के लिए एक टिकट प्राप्त कर सकते हैं।
|
|
|
|
<figure><img src="../.gitbook/assets/image (178).png" alt=""><figcaption></figcaption></figure>
|
|
|
|
अब हम अपने नए बनाए गए root डोमेन खाते का उपयोग करके **SSH** करने का प्रयास कर सकते हैं।
|
|
|
|
<figure><img src="../.gitbook/assets/image (176).png" alt=""><figcaption></figcaption></figure>
|
|
|
|
जैसा कि दिखाया गया है यह **उपयोगकर्ता को स्थानीय root खाते में ले जाता है**! इसलिए केवल एक स्थानीय उपयोगकर्ता के लिए एक डोमेन उपयोगकर्ता बनाकर हम root@WESTEROS.LOCAL खाते का उपयोग करके प्रमाणित करने और स्थानीय root खाते के **उपयोगकर्ता संदर्भ प्राप्त करने में सक्षम थे**_।_
|
|
|
|
_इस दोष के बारे में अधिक जानकारी के लिए देखें_ [_https://posts.specterops.io/attacking-freeipa-part-iv-cve-2020-10747-7c373a1bf66b_](https://posts.specterops.io/attacking-freeipa-part-iv-cve-2020-10747-7c373a1bf66b)\\
|
|
|
|
<details>
|
|
|
|
<summary><strong>Learn AWS hacking from zero to hero with</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
|
|
|
HackTricks का समर्थन करने के अन्य तरीके:
|
|
|
|
* यदि आप चाहते हैं कि आपकी **कंपनी का विज्ञापन HackTricks में दिखाई दे** या **HackTricks को PDF में डाउनलोड करें** तो [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop) देखें!
|
|
* [**official PEASS & HackTricks swag**](https://peass.creator-spring.com) प्राप्त करें
|
|
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह
|
|
* 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) में **शामिल हों** या [**telegram group**](https://t.me/peass) में या **Twitter** पर 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm) को **फॉलो करें**।
|
|
* **HackTricks** के [**github repos**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) में PRs सबमिट करके अपनी हैकिंग ट्रिक्स साझा करें।
|
|
|
|
</details>
|