FreeIPA Pentesting
मूल जानकारी
FreeIPA Microsoft Windows Active Directory के लिए एक ओपन-सोर्स वैकल्पिक है, मुख्य रूप से Unix वातावरणों के लिए। यह Active Directory के समान प्रबंधन के लिए MIT Kerberos Key Distribution Center के साथ एक पूर्ण LDAP निर्देशिका को संयोजित करता है। CA और RA प्रमाणपत्र प्रबंधन के लिए Dogtag Certificate System का उपयोग करते हुए, यह स्मार्टकार्ड सहित मल्टी-फैक्टर प्रमाणीकरण का समर्थन करता है। Unix प्रमाणीकरण प्रक्रियाओं के लिए SSSD एकीकृत है।
फिंगरप्रिंट्स
फ़ाइलें और पर्यावरण चर
/etc/krb5.conf
पर फ़ाइल, जिसमें डोमेन में पंजीकरण के लिए आवश्यक Kerberos क्लाइंट जानकारी संग्रहित है। इसमें KDCs और व्यवस्थापक सर्वर के स्थान, डिफ़ॉल्ट सेटिंग्स, और मैपिंग शामिल हैं।/etc/ipa/default.conf
पर फ़ाइल में IPA क्लाइंट और सर्वर के लिए सिस्टम-व्यापी डिफ़ॉल्ट सेटिंग्स सेट किए गए हैं।डोमेन में होस्ट को प्रमाणीकरण प्रक्रियाओं के लिए
/etc/krb5.keytab
परkrb5.keytab
फ़ाइल होनी चाहिए।विभिन्न पर्यावरण चर (
KRB5CCNAME
,KRB5_KTNAME
,KRB5_CONFIG
,KRB5_KDC_PROFILE
,KRB5RCACHETYPE
,KRB5RCACHEDIR
,KRB5_TRACE
,KRB5_CLIENT_KTNAME
,KPROP_PORT
) करोबेरोस प्रमाणीकरण के संबंधित फ़ाइल और सेटिंग्स को इंगित करने के लिए उपयोग किए जाते हैं।
बाइनरी
ipa
, kdestroy
, kinit
, klist
, kpasswd
, ksu
, kswitch
, और kvno
जैसे उपकरण FreeIPA डोमेन प्रबंधन, करोबेरोस टिकट, पासवर्ड बदलना, और सेवा टिकट प्राप्त करने जैसे अन्य कार्यों के लिए महत्वपूर्ण हैं।
नेटवर्क
एक चित्रण प्रदान किया गया है जो एक साधारण FreeIPA सर्वर सेटअप को दर्शाता है।
प्रमाणीकरण
FreeIPA में करोबेरोस का उपयोग करके प्रमाणीकरण, Active Directory में उसी तरह का है। डोमेन संसाधनों तक पहुंच के लिए एक वैध करोबेरोस टिकट की आवश्यकता होती है, जो FreeIPA डोमेन कॉन्फ़िगरेशन के आधार पर विभिन्न स्थानों पर संग्रहीत किया जा सकता है।
CCACHE टिकट फ़ाइलें
CCACHE फ़ाइलें, जो सामान्यत: /tmp
में 600 अनुमतियों के साथ संग्रहीत होती हैं, करोबेरोस क्रेडेंशियल संग्रहण के लिए बाइनरी प्रारूप होती हैं, जो पोर्टेबिलिटी के कारण उपयोगकर्ता के प्लेनटेक्स्ट पासवर्ड के बिना प्रमाणीकरण के लिए महत्वपूर्ण हैं। CCACHE टिकट का पार्सिंग klist
कमांड का उपयोग करके किया जा सकता है, और एक वैध CCACHE टिकट का पुनः उपयोग करने के लिए KRB5CCNAME
को टिकट फ़ाइल के पथ पर निर्यात करना शामिल है।
Unix Keyring
वैकल्पिक रूप से, CCACHE टिकट को लिनक्स की कीरिंग में संग्रहीत किया जा सकता है, जो टिकट प्रबंधन पर अधिक नियंत्रण प्रदान करता है। टिकट संग्रहण का दायरा भिन्न होता है (KEYRING:name
, KEYRING:process:name
, KEYRING:thread:name
, KEYRING:session:name
, KEYRING:persistent:uidnumber
), जिसे klist
उपयोगकर्ता के लिए इस सूचना का पार्सिंग करने में सक्षम है। हालांकि, Unix कीरिंग से CCACHE टिकट का पुनः उपयोग करना चुनौतियों का सामना कर सकता है, जिसमें Tickey जैसे उपकरण उपलब्ध हैं करोबेरोस टिकट निकालने के लिए।
Keytab
करोबेरोस प्रिंसिपल्स और एन्क्रिप्टेड कुंजियों को संग्रहित करने वाली Keytab फ़ाइलें, मुख्य रूप से प्रिंसिपल के पासवर्ड की आवश्यकता न होने पर वैध टिकट ग्रांटिंग टिकट (TGT) प्राप्त करने के लिए महत्वपूर्ण हैं। Keytab फ़ाइल से क्रेडेंशियल का पार्सिंग और पुनः उपयोग करना आसानी से klist
और KeytabParser जैसे स्क्रिप्ट के साथ किया जा सकता है।
चीटशीट
आप निम्नलिखित लिंक में लिनक्स में टिकट का उपयोग कैसे करें के बारे में अधिक जानकारी पा सकते हैं:
pageLinux Active Directoryगणना
आप लडप और अन्य बाइनरी उपकरणों के माध्यम से गणना कर सकते हैं, या FreeIPA सर्वर के पोर्ट 443 में वेब पेज से कनेक्ट करके भी कर सकते हैं।
होस्ट, उपयोगकर्ता, और समूह
होस्ट, उपयोगकर्ता, और समूह बनाना संभव है। होस्ट और उपयोगकर्ता को "होस्ट समूह" और "उपयोगकर्ता समूह" कहलाने वाले कंटेनर में वर्गीकृत किया जा सकता है। ये संगठनात्मक इकाइयों (OU) के समान हैं।
FreeIPA में डिफ़ॉल्ट रूप से, LDAP सर्वर अनामत प्रबंधन की अनुमति देता है, और बड़ा डेटा अनाधिकृत रूप से गणनीय है। यह सभी डेटा अनाधिकृत उपलब्ध है:
अधिक जानकारी प्राप्त करने के लिए आपको प्रमाणित सत्र का उपयोग करना होगा (प्रमाणीकरण अनुभाग की जांच करें जिससे आप प्रमाणित सत्र कैसे तैयार करें इसका ज्ञान प्राप्त होगा)।
एक डोमेन जुड़ी मशीन से आप इंस्टॉल किए गए बाइनरी का उपयोग करके डोमेन को जांचने में सक्षम होंगे:
FreeIPA का व्यवस्थापक उपयोगकर्ता AD से डोमेन व्यवस्थापकों के समकक्ष है।
हैश
IPA सर्वर के रूट उपयोगकर्ता के पास पासवर्ड हैश तक पहुंच है।
एक उपयोगकर्ता का पासवर्ड हैश “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-265 को प्सेडो-रैंडम फ़ंक्शन के रूप में उपयोग किया जाता है, ब्लॉक का आकार 32 बाइट है -> आपको केवल हमारे PBKDF2_SHA256 हैश के पहले 256 बिट का उपयोग करना है -> John The Ripper या hashcat आपको इसे क्रैक करने में मदद कर सकते हैं
हैशों को निकालने के लिए आपको FreeIPA सर्वर में रूट होना चाहिए, वहां आप उन्हें निकालने के लिए उपकरण dbscan
का उपयोग कर सकते हैं:
HBAC-नियम
ये नियम उपयोगकर्ताओं या होस्टों को संसाधनों (होस्ट, सेवाएं, सेवा समूह...) पर विशेष अनुमतियाँ प्रदान करते हैं।
सुडो-नियम
FreeIPA सुडो-नियम के माध्यम से सुडो अनुमतियों पर केंद्रीकृत नियंत्रण सक्षम करता है। ये नियम डोमेन के होस्ट पर सुडो के साथ कमांड का निषेध या अनुमति देते हैं। एक हमलावर संभावित रूप से इन नियमसमूहों की जांच करके लागू होने वाले होस्ट, उपयोगकर्ता, और अनुमत कमांड्स की पहचान कर सकता है।
भूमिका-आधारित पहुंच नियंत्रण
एक भूमिका कई विशेषाधिकारों से बनी होती है, प्रत्येक में कई अनुमतियाँ शामिल होती हैं। ये भूमिकाएँ उपयोगकर्ताओं, उपयोगकर्ता समूहों, होस्ट, होस्ट समूहों, और सेवाओं को सौंपी जा सकती हैं। उदाहरण के लिए, इस संरचना को दिखाने के लिए फ्रीआईपीए में डिफ़ॉल्ट "उपयोगकर्ता प्रशासक" भूमिका को ध्यान में रखें।
भूमिका उपयोगकर्ता प्रशासक
के इन विशेषाधिकारों से यह संबंधित है:
उपयोगकर्ता प्रशासक
समूह प्रशासक
स्टेज उपयोगकर्ता प्रशासक
निम्नलिखित कमांड का उपयोग करके भूमिकाएँ, विशेषाधिकार और अनुमतियों को गणना करना संभव है:
हमला परिदृश्य उदाहरण
https://posts.specterops.io/attacking-freeipa-part-iii-finding-a-path-677405b5b95e में आपको कुछ अनुमतियों का दुरुपयोग करने का एक सरल उदाहरण मिलेगा जिससे डोमेन को कंप्रमाइज किया जा सकता है।
Linikatz/LinikatzV2
Privesc
रूट उपयोगकर्ता निर्माण
यदि आप नाम root
वाले नए उपयोगकर्ता बना सकते हैं, तो आप उसकी अनुकरण कर सकते हैं और आप किसी भी मशीन में रूट के रूप में SSH कर सकते हैं।
यह सुधार किया गया है।
आप https://posts.specterops.io/attacking-freeipa-part-iv-cve-2020-10747-7c373a1bf66b में एक विस्तृत व्याख्या की जांच कर सकते हैं।
संदर्भ
Last updated