
Active Directory वातावरण में Resource-Based Constrained Delegation हमले के पथों का पता लगाने का उपकरण
एक्टिव डायरेक्टरी वातावरण में Resource-Based Constrained Delegation हमले के पथ खोजने का उपकरण
लगभग पूरी तरह से अद्भुत ब्लॉग पोस्ट "Wagging the Dog: Abusing Resource-Based Constrained Delegation to Attack Active Directory" Elad Shamir और "A Case Study in Wagging the Dog: Computer Takeover" harmj0y पर आधारित। यदि आप वास्तव में समझना चाहते हैं कि यहाँ क्या हो रहा है, तो ये दो ब्लॉग पोस्ट पढ़ें। मैं ईमानदारी से केवल आधा ही समझता हूँ (और यह भी उदारता है)।
मुझे C# अच्छी तरह से नहीं आती, इसलिए मैंने SharpSploit और SharpView के सोर्स कोड को पढ़कर C# में डोमेन से संवाद करने का तरीका समझा।
Get-RBCD-Threaded आपके वर्तमान डोमेन में सभी एक्टिव डायरेक्टरी उपयोगकर्ताओं, समूहों (विशेषाधिकार प्राप्त समूहों जैसे "Domain Admins" और "BUILTIN\Administrators" को छोड़कर), और कंप्यूटर ऑब्जेक्ट्स को क्वेरी करेगा और उनके SID की एक सूची बनाएगा। फिर यह डोमेन में कंप्यूटर ऑब्जेक्ट्स पर सभी DACL के लिए AD को क्वेरी करेगा। DACL में प्रत्येक ACE की जाँच की जाएगी कि क्या उपयोगकर्ता/समूह/कंप्यूटर SID में से किसी के पास कंप्यूटर ऑब्जेक्ट पर "GenericAll", "GenericWrite", "WriteOwner", या "WriteDacl" विशेषाधिकार है, या क्या SID के पास ms-DS-Allowed-To-Act-On-Behalf-Of-Other-Identity विशेषता (GUID:3f78c3e5-f79a-46bd-a0b8-9d18116ddc79) पर "WriteProp" अनुमतियाँ हैं। यदि ऐसा है, तो आप Resource-Based Constrained Delegation हमले की ओर बढ़ रहे हैं!
Visual Studio में कंपाइल करें। यह DACL ऑब्जेक्ट में खोज को तेज़ करने के लिए Parallel.ForEach का उपयोग करता है, इसलिए .NET v4 न्यूनतम आवश्यकता है।
-u|-username=, प्रमाणित करने के लिए उपयोगकर्ता नाम
-p|-password=, उपयोगकर्ता का पासवर्ड
-d|-domain=, प्रमाणित करने के लिए पूर्ण योग्य डोमेन नाम
-s|-searchforest, विश्वास संबंधों के माध्यम से डोमेन और फ़ॉरेस्ट खोजें। सभी डोमेन और फ़ॉरेस्ट की गणना करें
-pwdlastset=, स्टेल कंप्यूटर ऑब्जेक्ट्स को हटाने के लिए pwdLastSet के आधार पर कंप्यूटर फ़िल्टर करें। यदि आप इसे 90 पर सेट करते हैं, तो यह उन कंप्यूटर ऑब्जेक्ट्स को फ़िल्टर करेगा जिनकी pwdLastSet तिथि 90 दिनों से अधिक पुरानी है
-i|-insecure, यदि LDAPS कनेक्शन समस्याएँ पैदा कर रहा है तो असुरक्षित LDAP कनेक्शन को बाध्य करें
-o|-outputfile=, CSV फ़ाइल में आउटपुट करें। फ़ाइल का पूरा पथ और फ़ाइल नाम प्रदान करें
-h|-?|-help, सहायता विकल्प दिखाएँ
अब आप प्रमाणित करने के लिए उपयोगकर्ता नाम, पासवर्ड और डोमेन निर्दिष्ट कर सकते हैं। यदि u/p/d विकल्प खाली हैं, तो Get-RBCD-Threaded आपके वर्तमान उपयोगकर्ता संदर्भ में डोमेन से प्रमाणित करने का प्रयास करेगा।
-o एक CSV फ़ाइल में आउटपुट देगा। आउटपुट को सहेजने के लिए पूर्ण फ़ाइल पथ और फ़ाइल नाम प्रदान करें।
डिफ़ॉल्ट खोज LDAPS को बाध्य करने के लिए पोर्ट 636 का उपयोग करती है। इससे समस्याएँ हो सकती हैं। यदि आपको सर्वर उपलब्ध न होने या इसी प्रकार की कोई त्रुटि मिलती है, तो कनेक्ट स्ट्रिंग से पोर्ट 636 हटाने के लिए "-i" फ़्लैग आज़माएँ।
"pwdLastSet" को फ़िल्टरिंग विकल्प के रूप में जोड़ा गया है। बड़े वातावरण में आपको बहुत सारे स्टेल कंप्यूटर ऑब्जेक्ट मिल सकते हैं जो ACL में "गंतव्य" ऑब्जेक्ट के रूप में मौजूद नहीं हैं, और RBCD हमले के लिए उपयोग नहीं किए जा सकते (कम से कम मेरी जानकारी में)। pwdLastSet को दिनों की संख्या पर सेट करें। उदाहरण: "-pwdlastset=90" आपके परिणामों से उन कंप्यूटर ऑब्जेक्ट्स को फ़िल्टर करेगा जिनकी pwdLastSet तिथि वर्तमान दिनांक और समय से 90 दिन या उससे अधिक पुरानी है।
20k+ उपयोगकर्ताओं, समूहों और कंप्यूटरों (कुल 60k+ ऑब्जेक्ट) वाले वातावरण में परीक्षण किया गया। Get-RBCD-Threaded को पूरा होने में ~60 सेकंड लगे। इसकी तुलना में, इस gist में मेरे हैक किए गए PowerView कमांड ने समान खोज करने में कई घंटे लगाए और कभी पूरा नहीं हुआ।
यह उपकरण आपके लिए प्रतिनिधित्व हमला नहीं करेगा। आपको यह जानने के लिए Elad Shamir और harmj0y के ब्लॉग पढ़ने होंगे कि यह कैसे करना है। यह केवल RBCD हमले के लिए संभावित लक्ष्य खोजने में आपकी सहायता करेगा।
मेरे AD लैब से उदाहरण उपयोग:

यह उपकरण LDAP क्वेरी का उपयोग करके केवल Active Directory को क्वेरी करता है, जिसका पता लगाना आसान नहीं हो सकता। बड़ी संख्या में LDAP क्वेरी/एक सिस्टम पर ट्रैफ़िक का पता लगाने के लिए Netflow का उपयोग संभव है।
इसे पहचानने का दूसरा संभावित तरीका हनीपॉट खातों के माध्यम से है। विचार यह होगा कि एक कंप्यूटर ऑब्जेक्ट बनाया जाए जिस पर किसी उपयोगकर्ता/समूह के पास लिखने का विशेषाधिकार हो। RBCD हमला कंप्यूटर ऑब्जेक्ट को संशोधित करने और फिर उस पर kerberos टिकट सौंपने पर निर्भर करता है। हनीपॉट कंप्यूटर ऑब्जेक्ट के लिए संभावित पहचान बिंदु हो सकते हैं:
मैंने यह उपकरण पेनिट्रेशन टेस्ट में मेरी मदद के लिए बनाया है। हालांकि, रक्षक/ब्लू टीम/सिसएडमिन आसानी से इसका उपयोग अपने वातावरण में कमजोरियों को खोजने और (उम्मीद है) उन्हें ठीक करने के लिए कर सकते हैं।