
एक उपकरण जो पूरे डोमेन में Shadow Credentials को spray करने के लिए है, ताकि डोमेन में अन्य ऑब्जेक्ट्स पर लंबे समय से भूली हुई GenericWrite/GenericAll DACLs का दुरुपयोग किया जा सके।
Shadow Credentials को पूरे डोमेन में फैलाने (spray) के लिए एक उपकरण, ताकि डोमेन में अन्य वस्तुओं पर लंबे समय से भूले हुए GenericWrite/GenericAll DACL का दुरुपयोग किया जा सके।
कई कार्यों (engagements) में मैं BloodHound में देखता हूँ कि समूह "Everyone" / "Authenticated Users" / "Domain Users" या कोई अन्य व्यापक समूह, जिसमें डोमेन के लगभग सभी उपयोगकर्ता शामिल हैं, के पास डोमेन में अन्य वस्तुओं पर कुछ GenericWrite/GenericAll DACL हैं।

इन अधिकारों का दुरुपयोग लक्ष्य वस्तु पर Shadow Credentials जोड़ने और उसका TGT और NT हैश प्राप्त करने के लिए किया जा सकता है।
मुझे ख्याल आया कि हम पूरे डोमेन पर Shadow Credentials फैलाने (spray) का प्रयास कर सकते हैं और देख सकते हैं कि क्या काम करता है (स्पष्ट रूप से यह दृष्टिकोण गैर-गुप्त (non-stealth) कार्यों के लिए बेहतर है, इसे रेड टीम में उपयोग न करें जहाँ गुप्तता आवश्यक है)। जब Shadow Credentials सफलतापूर्वक जोड़ा जाता है, तो हम बस पूरा PKINIT + UnPACTheHash नृत्य करते हैं और वोइला - हमें NT हैश मिल जाते हैं।
चूंकि प्रक्रिया अत्यंत तेज़ है, इसका उपयोग कार्य की शुरुआत में ही किया जा सकता है, और उम्मीद है कि आपके पास शुरू करने से पहले ही कुछ उपयोगकर्ता और कंप्यूटर स्वामित्व में होंगे।
नोट: मैंने अपने पिछले उपकरण से बहुत सारा कोड पुनर्चक्रित (recycle) किया है, इसलिए AV/EDR इसे KrbRelayUp के रूप में चिह्नित कर सकते हैं...
यह कुछ इस प्रकार है:
ShadowSpray CTRL+C का समर्थन करता है, इसलिए यदि किसी भी बिंदु पर आप निष्पादन रोकना चाहते हैं तो बस CTRL+C दबाएँ और ShadowSpray बाहर निकलने से पहले अब तक प्राप्त NT हैश प्रदर्शित करेगा (जैसा कि नीचे डेमो में दिखाया गया है)।
__ __ __ __ __ __
/__` |__| /\ | \ / \ | | /__` |__) |__) /\ \ /
.__/ | | /~~\ |__/ \__/ |/\| .__/ | | \ /~~\ |
Usage: ShadowSpray.exe [-d FQDN] [-dc FQDN] [-u USERNAME] [-p PASSWORD] [-r] [-re] [-cp CERT_PASSWORD] [-ssl]
-r (--RestoreShadowCred) हमले के बाद "msDS-KeyCredentialLink" विशेषता को पुनर्स्थापित करें। (वैकल्पिक)
-re (--Recursive) ShadowSpray हमले को पुनरावर्ती (recursively) करें। (वैकल्पिक)
-cp (--CertificatePassword) प्रमाणपत्र पासवर्ड। (डिफ़ॉल्ट = यादृच्छिक पासवर्ड)
सामान्य विकल्प:
-u (--Username) प्रारंभिक LDAP प्रमाणीकरण के लिए उपयोगकर्ता नाम। (वैकल्पिक)
-p (--Password) प्रारंभिक LDAP प्रमाणीकरण के लिए पासवर्ड। (वैकल्पिक)
-d (--Domain) डोमेन का FQDN। (वैकल्पिक)
-dc (--DomainController) डोमेन नियंत्रक का FQDN। (वैकल्पिक)
-ssl LDAP over SSL का उपयोग करें। (वैकल्पिक)
-y (--AutoY) ShadowSpray हमला शुरू करने की पुष्टि न पूछें। (वैकल्पिक)
Elad Shamir के Shadow Credentials ब्लॉग पोस्ट से लिया गया:
यदि PKINIT प्रमाणीकरण वातावरण में सामान्य नहीं है या लक्ष्य खाते के लिए सामान्य नहीं है, तो "Kerberos authentication ticket (TGT) was requested" घटना (4768) असामान्य व्यवहार का संकेत दे सकती है जब प्रमाणपत्र सूचना विशेषताएँ खाली न हों।
यदि लक्ष्य खाते के लिए Active Directory ऑब्जेक्ट संशोधनों का ऑडिट करने के लिए SACL कॉन्फ़िगर किया गया है, तो "Directory service object was modified" घटना (5136) असामान्य व्यवहार का संकेत दे सकती है यदि msDS-KeyCredentialLink को बदलने वाला विषय Azure AD Connect सिंक्रोनाइज़ेशन खाता या ADFS सेवा खाता नहीं है, जो आमतौर पर Key Provisioning Server के रूप में कार्य करता है और उपयोगकर्ताओं के लिए इस विशेषता को वैध रूप से संशोधित करता है।
एक अधिक विशिष्ट निवारक नियंत्रण एक Access Control Entry (ACE) जोड़ना है जो प्रिंसिपल EVERYONE को किसी भी खाते के लिए msDS-KeyCredentialLink विशेषता को संशोधित करने से DENY करता है जो Key Trust पासवर्डलेस प्रमाणीकरण में नामांकित होने के लिए नहीं है, और विशेष रूप से विशेषाधिकार प्राप्त खातों के लिए।
Detecting UnPACing and shadowed credentials by Henri Hambartsumyan of FalconForce
ShadowSpray विशिष्ट पता लगाना: