Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
ImproHound — BloodHound में आपके AD टियरिंग को तोड़ने वाले हमले के रास्तों की पहचान करें। | Kitploit
उपकरण/GitHubGitHub/improsec/improhound
विशेषाधिकार वृद्धिभेद्यता विश्लेषणजानकारी एकत्र करनापेनिट्रेशन टेस्टिंग
GitHubimprosec/improhound

ImproHound

BloodHound में आपके AD टियरिंग को तोड़ने वाले हमले के रास्तों की पहचान करें।

रिपॉजिटरी देखें
328363 साल पहलेKitploit द्वारा समीक्षित

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

GitHub release (latest SemVer) GitHub all releases

ImproHound

BloodHound में उन हमले के पथों की पहचान करें जो आपके AD टियरिंग को तोड़ रहे हैं

ImproHound एक dotnet स्टैंडअलोन win x64 exe है जिसमें GUI है। ImproHound का उपयोग करने के लिए, आपको AD से आवश्यक डेटा एकत्र करने के लिए SharpHound चलाना होगा। फिर आप डेटा को अपने BloodHound इंस्टॉलेशन में अपलोड करेंगे। ImproHound BloodHound के अंतर्निहित Neo4j डेटाबेस से कनेक्ट होगा। ImproHound में, आप OU संरचना के माध्यम से AD को टियरों में वर्गीकृत करेंगे, और ImproHound उन AD संबंधों की पहचान करेगा जो AD ऑब्जेक्ट्स को उच्च (शून्य के करीब) टियर के ऑब्जेक्ट से समझौता करने में सक्षम बनाते हैं और टियरिंग उल्लंघनों को एक csv फ़ाइल में सहेज लेंगे।

ImproHound ब्लॉगपोस्ट

ImproHound डेमो वीडियो

ImproHound DEF CON Adversary Village प्रस्तुति

विषय-सूची
  • स्थापना
  • उपयोग
  • AD ऑब्जेक्ट्स को टियर करने के दिशानिर्देश
  • निर्भरताओं का नवीनतम परीक्षित संस्करण

स्थापना

1. अपना BloodHound डेटाबेस सेट करें

  1. BloodHound स्थापित करें

  2. अपने AD में SharpHound के साथ BloodHound डेटा एकत्र करें

    ध्यान दें: इससे आपके AV, SIEM आदि में शोर उत्पन्न होगा।

    उदाहरण: cmd से SharpHound.exe चलाएँ, सभी एकत्र करें (हाँ, GPOLocalGroup All में शामिल नहीं है):

    root@kitploit:~
    SharpHound.exe --CollectionMethods All,GPOLocalGroup
    

    टिप 1: फ़ॉरेस्ट के अन्य डोमेन से डेटा एकत्र करने के लिए Domain पैरामीटर का उपयोग करें।

    टिप 2: और भी अधिक डेटा प्राप्त करने के लिए द सेशन लूप कलेक्शन मेथड का उपयोग करें।

  3. BloodHound GUI में अपना BloodHound डेटा अपलोड करें

    BloodHound में एक बग है जो कभी-कभी BloodHound डेटा ज़िप अपलोड करते समय डोमेन json फ़ाइल को छोड़ देता है। डेटा अपलोड के बाद BloodHound में DB सांख्यिकी जाँचें और सुनिश्चित करें कि डोमेन ऑब्जेक्ट मौजूद हैं।

2. APOC Neo4j प्लगइन स्थापित करें (हमें जिन शानदार ग्राफ़ संचालनों की आवश्यकता है, उन्हें सक्षम करता है)

  1. अपने Neo4j संस्करण से मेल खाने वाले APOC संस्करण को डाउनलोड करें (apoc-x.x.x.x-all.jar)।

    संस्करण संगतता मैट्रिक्स में अपने Neo4j संस्करण से मेल खाने वाला APOC संस्करण ढूँढें।

  2. याद रखने की कोशिश करें कि आपने Neo4j कहाँ स्थापित किया है और APOC jar-फ़ाइल को $NEO4J_HOME/plugins/ के अंतर्गत रखें।

    • लिनक्स में $NEO4J_HOME: /var/lib/neo4j/
    • विंडोज़ में $NEO4J_HOME: Neo4j सेवा जाँचें। यह स्थान प्रकट करेगी।
  3. अपने पसंदीदा टेक्स्ट एडिटर में neo4j.conf संपादित करें ताकि अप्रतिबंधित APOC पहुंच की अनुमति हो, पंक्ति को बदलकर: #dbms.security.procedures.unrestricted=my.extensions.example,my.procedures.* इससे: dbms.security.procedures.unrestricted=apoc.*

    • लिनक्स में neo4j.conf: /etc/neo4j/neo4j.conf
    • विंडोज़ में neo4j.conf: $NEO4J_HOME/conf/neo4j.conf

    यदि आप एक होस्ट पर ImproHound और दूसरे पर BloodHound चलाना चाहते हैं, तो आपको BloodHound होस्ट पर Neo4j डेटाबेस से दूरस्थ कनेक्शन की अनुमति देनी होगी। ऐसा करने के लिए, neo4j.conf में पंक्ति से # हटाएँ।

3. विंडोज़ (x64) में नवीनतम रिलीज़ ImproHound.exe डाउनलोड करें और चलाएँ

    पुष्टि करें कि आप BloodHound GUI में उपयोग किए जाने वाले समान क्रेडेंशियल्स के साथ BloodHound DB में लॉग इन कर सकते हैं।

उपयोग

डेटाबेस से कनेक्ट करें

alt text

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

जारी रखें या फिर से शुरू करें

alt text

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

डिफ़ॉल्ट टियरिंग या सभी Tier 2 में

alt text

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

OU संरचना

alt text

यह वह पृष्ठ है जहाँ आप 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 में रिकॉर्ड का उदाहरण:

पहला रिकॉर्ड एक Tier 1 सेवा खाता है जिसके पास Tier 0 उपयोगकर्ता खाते का पासवर्ड बदलने की अनुमति है। संबंध विरासत में मिला है। दुर्भाग्य से, BloodHound डेटा में यह देखना हमेशा संभव नहीं होता कि संबंध कहाँ से विरासत में मिला है, लेकिन आप उपयोगकर्ता और कंप्यूटर में लक्षित AD ऑब्जेक्ट पर अनुमतियों का निरीक्षण करके इसे मैन्युअल रूप से जाँच सकते हैं। दूसरा रिकॉर्ड एक समूह है जिसके पास GPO संपादित करने की अनुमति है, जो संभवतः Tier 0 सर्वर वाले OU से जुड़ा हुआ है क्योंकि यह Tier 0 GPO है।

आप सभी संबंध प्रकारों और उनका शोषण कैसे किया जाता है, इसके बारे में यहाँ देख सकते हैं।

यदि आप पाते हैं कि कोई ऑब्जेक्ट बहुत अधिक टियर (शून्य के सबसे करीब) में है, तो आपको इसे ImproHound में सही करना चाहिए, और फिर इस ऑब्जेक्ट को SOURCE के रूप में उल्लंघनों की जाँच करनी चाहिए। यदि कोई ऑब्जेक्ट बहुत कम टियर (अनंत के सबसे करीब) में है, तो आपको इसे ImproHound में सही करना चाहिए और ऑब्जेक्ट को TARGET के रूप में उल्लंघनों की जाँच करनी चाहिए।

टियरिंग हटाएँ

BloodHound डेटाबेस में सभी टियर लेबल और ImproHound द्वारा बनाए गए नोड्स हटा दिए जाएंगे।

AD ऑब्जेक्ट्स को टियर करने के दिशानिर्देश

AD ऑब्जेक्ट्स को सही ढंग से टियर करना महत्वपूर्ण है। यदि आप एक DC और एक सामान्य निम्न-विशेषाधिकार प्राप्त उपयोगकर्ता को Tier 0 ऑब्जेक्ट के रूप में सेट करते हैं, तो ImproHound यह नहीं पाएगा कि DC पर उपयोगकर्ता की व्यवस्थापक पहुँच एक टियरिंग उल्लंघन है। वही स्थिति यदि आप दोनों को Tier 2 में जोड़ते हैं।

कंप्यूटर

कंप्यूटर को इस आधार पर टियर किया जाता है कि यदि कंप्यूटर से समझौता हो जाए तो यह कितना गंभीर होगा।

  • Tier 0 – डोमेन कंट्रोलर और अन्य सिस्टम जो महत्वपूर्ण के रूप में वर्गीकृत हैं। SCCM, ADFS, PKI, और वर्चुअलाइज़ेशन सर्वर (VMware, Hyper V, आदि) जैसे सिस्टम।
  • Tier 1 – शेष सर्वर बुनियादी ढाँचा
  • Tier 2 – सामान्य वर्कस्टेशन

उपयोगकर्ता

उपयोगकर्ताओं को उन कंप्यूटरों के आधार पर टियर किया जाता है जिनमें वे लॉग ऑन कर सकते हैं और उन AD ऑब्जेक्ट्स के आधार पर जिन पर उनका नियंत्रण है। नियंत्रण अनुमति का एक उदाहरण एक उपयोगकर्ता हो सकता है जिसके पास Tier 1 सर्वर से जुड़े GPO को संपादित करने का अधिकार है, जो उपयोगकर्ता को Tier 1 ऑब्जेक्ट बना देगा।

समूह

एक समूह अपने सदस्यों के निम्नतम टियर (अनंत के सबसे करीब) से संबंधित होता है, जब तक कि समूह में बुरे सदस्य न हों, उदा. Domain Admins में एक सामान्य उपयोगकर्ता।

उदाहरण: Domain Users एक Tier 2 समूह है भले ही आपके Tier 0 उपयोगकर्ता समूह के सदस्य हैं, क्योंकि Domain Users की सदस्यता उपयोगकर्ताओं को विशेषाधिकार नहीं देती है। दूसरी ओर, Domain Admins समूह एक Tier 0 समूह है क्योंकि इस समूह की सदस्यता उपयोगकर्ताओं को बहुत विशेषाधिकार प्राप्त बनाती है। Cloneable Domain Controllers के पास AFAIK कोई AD विशेषाधिकार नहीं है, लेकिन इसमें केवल Tier 0 ऑब्जेक्ट यानी DC होने चाहिए, इसलिए यह एक Tier 0 समूह है।

कंटेनर (OU और डोमेन सहित)

एक कंटेनर अपने बाल ऑब्जेक्ट्स के उच्चतम टियर (शून्य के सबसे करीब) या उससे अधिक से संबंधित होता है।

उदाहरण: आपके पास सभी Tier 0, Tier 1, और Tier 2 उपयोगकर्ता Users कंटेनर में हैं। Users कंटेनर पर पूर्ण नियंत्रण अनुमति वाला एक उपयोगकर्ता सभी उपयोगकर्ताओं से समझौता करने में सक्षम होगा, जिसमें Tier 0 उपयोगकर्ता भी शामिल हैं (कुछ को छोड़कर जो संरक्षित हैं, लेकिन उदाहरण के लिए यह महत्वपूर्ण नहीं है), इसलिए Users कंटेनर को Tier 0 ऑब्जेक्ट होना चाहिए।

GPO

एक GPO का टियर स्तर उन OU के टियर स्तर द्वारा निर्धारित किया जाता है जिनसे वह जुड़ा हुआ है। GPO उन OU के उच्चतम टियर (शून्य के सबसे करीब) से संबंधित होता है जिनसे वह जुड़ा हुआ है। यह सुनिश्चित करने के लिए 'Set tier for GPOs' बटन का उपयोग करें कि सभी GPO इस सिद्धांत का पालन करें।

उदाहरण: एक उपयोगकर्ता जिसके पास Tier 1 OU से जुड़े GPO को संपादित करने की अनुमति है, वह GPO को संशोधित करके Tier 1 OU के अंतर्गत सभी सर्वरों पर व्यवस्थापकों की सदस्यता को नियंत्रित करने में सक्षम होगा।

निर्भरताओं का नवीनतम परीक्षित संस्करण

  • BloodHound 4.2.0
  • Neo4j 4.4.10
  • APOC 4.4.0.8
  • Java/OpenJDK 11.0.16.1 LTS

TODO

  • GetChanges / GetChangesAll को फ़िल्टर करें जहाँ उनमें से केवल एक मौजूद है।
  • डिफ़ॉल्ट रूप से अधिक Tier 0: RODC (krbtgt_xxxxxx सहित), MSOL_, AdminSDHolder, आदि।
टूल डाउनलोड करें
#dbms.default_listen_address=0.0.0.0
  • Neo4j को पुनरारंभ करें

    • लिनक्स: systemctl restart neo4j
    • विंडोज़ (cmd): net stop neo4j && net start neo4j (PowerShell: net stop neo4j; net start neo4j)
  • SourceTierSourceTypeSourceNameSourceDistinguishednameRelationIsInheritedTargetTierTargetTypeTargetNameTargetDistinguishedname
    Tier1User[email protected]CN=svc-monitor,CN=Users,DC=hot,DC=localForceChangePasswordTrueTier0User[email protected]CN=T0_JBK,CN=Users,DC=hot,DC=local
    Tier2Group[email protected]CN=Wrk-Admins,CN=Groups,DC=hot,DC=localGenericWriteTier0GPO[email protected]CN={6AC1786C-016F-11D2-945F-00C04fB984F9},CN=Policies,CN=System,DC=hot,DC=local