
BloodHound में आपके AD टियरिंग को तोड़ने वाले हमले के रास्तों की पहचान करें।
BloodHound में उन हमले के पथों की पहचान करें जो आपके AD टियरिंग को तोड़ रहे हैं
ImproHound एक dotnet स्टैंडअलोन win x64 exe है जिसमें GUI है। ImproHound का उपयोग करने के लिए, आपको AD से आवश्यक डेटा एकत्र करने के लिए SharpHound चलाना होगा। फिर आप डेटा को अपने BloodHound इंस्टॉलेशन में अपलोड करेंगे। ImproHound BloodHound के अंतर्निहित Neo4j डेटाबेस से कनेक्ट होगा। ImproHound में, आप OU संरचना के माध्यम से AD को टियरों में वर्गीकृत करेंगे, और ImproHound उन AD संबंधों की पहचान करेगा जो AD ऑब्जेक्ट्स को उच्च (शून्य के करीब) टियर के ऑब्जेक्ट से समझौता करने में सक्षम बनाते हैं और टियरिंग उल्लंघनों को एक csv फ़ाइल में सहेज लेंगे।
ImproHound DEF CON Adversary Village प्रस्तुति
1. अपना BloodHound डेटाबेस सेट करें
अपने AD में SharpHound के साथ BloodHound डेटा एकत्र करें
ध्यान दें: इससे आपके AV, SIEM आदि में शोर उत्पन्न होगा।
उदाहरण: cmd से SharpHound.exe चलाएँ, सभी एकत्र करें (हाँ, GPOLocalGroup All में शामिल नहीं है):
SharpHound.exe --CollectionMethods All,GPOLocalGroup
टिप 1: फ़ॉरेस्ट के अन्य डोमेन से डेटा एकत्र करने के लिए
Domainपैरामीटर का उपयोग करें।
टिप 2: और भी अधिक डेटा प्राप्त करने के लिए द सेशन लूप कलेक्शन मेथड का उपयोग करें।
BloodHound GUI में अपना BloodHound डेटा अपलोड करें
BloodHound में एक बग है जो कभी-कभी BloodHound डेटा ज़िप अपलोड करते समय डोमेन json फ़ाइल को छोड़ देता है। डेटा अपलोड के बाद BloodHound में DB सांख्यिकी जाँचें और सुनिश्चित करें कि डोमेन ऑब्जेक्ट मौजूद हैं।
2. APOC Neo4j प्लगइन स्थापित करें (हमें जिन शानदार ग्राफ़ संचालनों की आवश्यकता है, उन्हें सक्षम करता है)
अपने Neo4j संस्करण से मेल खाने वाले APOC संस्करण को डाउनलोड करें (apoc-x.x.x.x-all.jar)।
संस्करण संगतता मैट्रिक्स में अपने Neo4j संस्करण से मेल खाने वाला APOC संस्करण ढूँढें।
याद रखने की कोशिश करें कि आपने Neo4j कहाँ स्थापित किया है और APOC jar-फ़ाइल को $NEO4J_HOME/plugins/ के अंतर्गत रखें।
/var/lib/neo4j/अपने पसंदीदा टेक्स्ट एडिटर में neo4j.conf संपादित करें ताकि अप्रतिबंधित APOC पहुंच की अनुमति हो, पंक्ति को बदलकर:
#dbms.security.procedures.unrestricted=my.extensions.example,my.procedures.*
इससे:
dbms.security.procedures.unrestricted=apoc.*
/etc/neo4j/neo4j.conf$NEO4J_HOME/conf/neo4j.confयदि आप एक होस्ट पर ImproHound और दूसरे पर BloodHound चलाना चाहते हैं, तो आपको BloodHound होस्ट पर Neo4j डेटाबेस से दूरस्थ कनेक्शन की अनुमति देनी होगी। ऐसा करने के लिए,
neo4j.confमें पंक्ति#dbms.default_listen_address=0.0.0.0से # हटाएँ।
Neo4j को पुनरारंभ करें
systemctl restart neo4jnet stop neo4j && net start neo4j (PowerShell: net stop neo4j; net start neo4j)3. विंडोज़ (x64) में नवीनतम रिलीज़ ImproHound.exe डाउनलोड करें और चलाएँ
पुष्टि करें कि आप BloodHound GUI में उपयोग किए जाने वाले समान क्रेडेंशियल्स के साथ BloodHound DB में लॉग इन कर सकते हैं।

डेटाबेस क्रेडेंशियल्स दर्ज करें और कनेक्शन स्थापित करें। ये वही क्रेडेंशियल्स हैं जो आप BloodHound GUI में उपयोग करते हैं।

ImproHound BloodHound डेटाबेस में नोड्स पर एक 'TierX' लेबल बनाता है। यदि आपने पहले इस BloodHound डेटाबेस के साथ ImproHound का उपयोग किया है, तो आपसे पूछा जाएगा कि क्या आप पहले से बनाई गई टियरिंग के साथ जारी रखना चाहते हैं या फिर से शुरू करना चाहते हैं।

ImproHound आपको 'डिफ़ॉल्ट टियरिंग' सेट करने का विकल्प देता है जो Domain Admins को Tier 0, Domain Users को Tier 2 आदि में सेट करेगा, या सभी ऑब्जेक्ट्स को Tier 2 में सेट करेगा।

यह वह पृष्ठ है जहाँ आप AD ऑब्जेक्ट्स को टियरों में वर्गीकृत करेंगे। विंडो OU संरचना प्रदर्शित करती है। प्रत्येक AD ऑब्जेक्ट का एक टियर मान होता है जिसे तीरों के साथ बढ़ाया और घटाया जा सकता है।
बच्चों को टियर पर सेट करें
यदि आप एक डोमेन या AD कंटेनर चुनते हैं, तो आप सभी बच्चों (पुनरावर्ती रूप से) को दिए गए डोमेन/कंटेनर के टियर स्तर पर सेट करने के लिए 'Set children to tier' पर क्लिक कर सकते हैं।
सदस्यों को टियर पर सेट करें
यदि आप एक समूह चुनते हैं, तो आप सभी सदस्यों (पुनरावर्ती रूप से) को दिए गए समूह के टियर स्तर पर सेट करने के लिए 'Set children to tier' पर क्लिक कर सकते हैं।
GPO के लिए टियर सेट करें
यदि आप 'Set tier for GPOs' पर क्लिक करते हैं, तो प्रत्येक GPO का टियर स्तर उस OU के उच्चतम टियर (शून्य के सबसे करीब) के टियर स्तर पर सेट हो जाएगा जिससे GPO जुड़ा हुआ है। OU से न जुड़े GPO का टियर स्तर नहीं बदलेगा।
टियरिंग उल्लंघन प्राप्त करें
BloodHound डेटाबेस में सभी संबंध ढूँढें जहाँ एक AD ऑब्जेक्ट का किसी उच्च टियर (शून्य के करीब) के AD ऑब्जेक्ट पर नियंत्रण है।
आउटपुट के रूप में दो CSV फ़ाइलें उत्पन्न होती हैं:
adobjects-[timestamp].csv: सभी AD ऑब्जेक्ट और वे किस टियर में हैं।
tiering-violations-[timestamp].csv: टियरिंग उल्लंघन।
उल्लंघन CSV में रिकॉर्ड का उदाहरण:
| SourceTier | SourceType | SourceName | SourceDistinguishedname | Relation | IsInherited | TargetTier | TargetType | TargetName | TargetDistinguishedname |
|---|---|---|---|---|---|---|---|---|---|
| Tier1 | User | [email protected] | CN=svc-monitor,CN=Users,DC=hot,DC=local | ForceChangePassword | True | Tier0 | User | [email protected] | CN=T0_JBK,CN=Users,DC=hot,DC=local |
| Tier2 | Group | [email protected] | CN=Wrk-Admins,CN=Groups,DC=hot,DC=local | GenericWrite | Tier0 | GPO | [email protected] | CN={6AC1786C-016F-11D2-945F-00C04fB984F9},CN=Policies,CN=System,DC=hot,DC=local |
पहला रिकॉर्ड एक Tier 1 सेवा खाता है जिसके पास Tier 0 उपयोगकर्ता खाते का पासवर्ड बदलने की अनुमति है। संबंध विरासत में मिला है। दुर्भाग्य से, BloodHound डेटा में यह देखना हमेशा संभव नहीं होता कि संबंध कहाँ से विरासत में मिला है, लेकिन आप उपयोगकर्ता और कंप्यूटर में लक्षित AD ऑब्जेक्ट पर अनुमतियों का निरीक्षण करके इसे मैन्युअल रूप से जाँच सकते हैं। दूसरा रिकॉर्ड एक समूह है जिसके पास GPO संपादित करने की अनुमति है, जो संभवतः Tier 0 सर्वर वाले OU से जुड़ा हुआ है क्योंकि यह Tier 0 GPO है।