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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
pyCobaltHound — pyCobaltHound Cobalt Strike के लिए एक Aggressor स्क्रिप्ट एक्सटेंशन है जिसका उद्देश्य Cobalt Strike और Bloodhound के बीच गहरा एकीकरण प्रदान करना है। | Kitploit
उपकरण/GitHubGitHub/nvisosecurity/pycobalthound
भेद्यता परीक्षण फ्रेमवर्कविशेषाधिकार वृद्धिटोहीशोषण फ्रेमवर्कपार्श्व आंदोलनजानकारी एकत्र करनापोस्ट-शोषणरेड टीमिंग
GitHubnvisosecurity/pycobalthound

pyCobaltHound

pyCobaltHound Cobalt Strike के लिए एक Aggressor स्क्रिप्ट एक्सटेंशन है जिसका उद्देश्य Cobalt Strike और Bloodhound के बीच गहरा एकीकरण प्रदान करना है।

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

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

सभी देखें →

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

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

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

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

त्वरित सारांश

pyCobaltHound Cobalt Strike के लिए एक Aggressor स्क्रिप्ट एक्सटेंशन है जिसका उद्देश्य Cobalt Strike और Bloodhound के बीच गहन एकीकरण प्रदान करना है।

pyCobaltHound रेड टीम ऑपरेटरों की सहायता करने का प्रयास करता है:

  • नए एकत्रित क्रेडेंशियल्स द्वारा खोले गए एस्केलेशन पथों की खोज करने के लिए स्वचालित रूप से BloodHound डेटाबेस से क्वेरी करना।
  • समझौता किए गए उपयोगकर्ताओं और कंप्यूटरों को स्वचालित रूप से owned के रूप में चिह्नित करना।
  • ऑपरेटरों को बीकन सत्रों और उपयोगकर्ताओं के एस्केलेशन की क्षमता की जल्दी और आसानी से जांच करने की अनुमति देना।

इसे पूरा करने के लिए, pyCobaltHound अंतर्निहित क्वेरीज़ के एक सेट का उपयोग करता है। ऑपरेटर अपनी स्वयं की क्वेरीज़ जोड़/हटा भी सकते हैं ताकि pyCobaltHound की निगरानी क्षमताओं को ठीक से ट्यून किया जा सके। यह उन्हें अभियानों के दौरान को तुरंत अनुकूलित करने की लचीलापन प्रदान करता है, ताकि अभियान-विशिष्ट लक्ष्यों (उपयोगकर्ता, होस्ट आदि) को ध्यान में रखा जा सके।

pyCobaltHound

स्थापना और उपयोग

pyCobaltHound को स्थापित करने के लिए इस रिपॉजिटरी को क्लोन करें। शामिल सबमॉड्यूल को भी क्लोन करना न भूलें!

आप निम्नलिखित कमांड का उपयोग कर सकते हैं:

  • git clone https://github.com/NVISOsecurity/pyCobaltHound.git --recurse-submodules

निर्भरताएँ

सुनिश्चित करें कि निम्नलिखित निर्भरताएँ सही ढंग से स्थापित हैं:

PyCobalt

PyCobalt Cobalt Strike के लिए एक Python API है। यह कई Aggressor फ़ंक्शन को सीधे Python से उपयोग करने के लिए प्रस्तुत करता है।

सेटअप

सुनिश्चित करें कि आपके पास Python3+ स्थापित है। जबकि PyCobalt macOS और Windows पर भी काम कर सकता है, हमने वास्तव में इसका परीक्षण केवल Linux पर किया है।

PyCobalt Python लाइब्रेरी का उपयोग करने के दो तरीके हैं:

  1. PYTHONPATH का उपयोग करके इसे सीधे रिपॉजिटरी से चलाएं। pyCobaltHound इस दृष्टिकोण को अपनाता है, Python प्रोग्राम के अंदर sys.path वेरिएबल का उपयोग करके खोज पथ सेट करता है।
  2. PyCobalt Python लाइब्रेरी स्थापित करें। ऐसा करने के लिए, python3 setup.py install चलाएं। आपको pycobalthound.py को संशोधित करना होगा ताकि यह सुनिश्चित हो सके कि यह शामिल रिपॉजिटरी के बजाय स्थापित लाइब्रेरी का उपयोग करता है।
टिप्पणियाँ
  • ध्यान दें कि भविष्य में PyCobalt परियोजना के रखरखाव की कोई गारंटी नहीं है। वास्तव में, परियोजना में नवीनतम अपडेट Cobalt Strike 4.2 में किए गए परिवर्तनों को शामिल करना था। चूंकि pyCobaltHound वास्तव में Cobalt Strike और इसके ऑपरेटर के साथ इंटरफेस करने के लिए केवल बुनियादी Aggressor फ़ंक्शन का उपयोग करता है, यह pyCobaltHound के लिए कोई बड़ी समस्या नहीं है।

  • इस परियोजना में उपयोग किया गया PyCobalt सबमॉड्यूल हमारे द्वारा किया गया एक फोर्क है। हालाँकि, हम PyCobalt रिपॉजिटरी को नियंत्रित नहीं करते हैं।

टिप्स और ट्रिक्स
  • PyCobalt चल रहे Python स्क्रिप्ट को प्रबंधित करने के लिए कुछ Script Console कमांड के साथ आता है। जब आप अपनी Aggressor स्क्रिप्ट को रीलोड करते हैं, तो आपको पहले Python स्क्रिप्ट को स्पष्ट रूप से रोक देना चाहिए। अन्यथा वे कुछ किए बिना हमेशा चलती रहेंगी। pyCobaltHound के विकास के दौरान हमने देखा कि इससे अपरिभाषित व्यवहार भी हो सकता है।

    pyCobaltHound को रीलोड करना निम्नानुसार किया जा सकता है:

    root@kitploit:~
    aggressor> python-stop-all`
    [pycobalt] Asking script to stop: /root/pycobalthound/pycobalthound.py
    [pycobalt] Script process exited: /root/pycobalthound/pycobalthound.py
    
    aggressor> reload example.cna`
    [pycobalt] Executing script /root/pycobalthound/pycobalthound.py
    
  • PyCobalt के ठीक से काम करने के लिए आप केवल एक Aggressor स्क्रिप्ट में PyCobalt को कॉल कर सकते हैं। यदि आप pyCobaltHound को अन्य Aggressor स्क्रिप्ट के साथ उपयोग करना चाहते हैं जो PyCobalt का उपयोग करते हैं, तो इसे ध्यान में रखें। हमारा दृष्टिकोण प्रत्येक PyCobalt आधारित टूल के लिए python() और include() के कॉल के साथ एक Aggressor स्क्रिप्ट रखना है।

notify2 (Optional)

notify2 Linux पर डेस्कटॉप सूचनाएं प्रदर्शित करने का एक पैकेज है (या था)। जैसा कि हम बाद में देखेंगे, pyCobaltHound ऑपरेटर को सूचित करने के कुछ तरीकों का समर्थन करता है। notify2 का उपयोग Linux पर D-Bus के माध्यम से नोटिफिकेशन डेमॉन को सूचनाएं भेजने के लिए किया जाता है।

इसे सक्षम करने के लिए, notify2 को निम्नलिखित का उपयोग करके स्थापित करने की आवश्यकता है:

pip install notify2

Cobalt Strike में उपयोग

Cobalt Strike में pyCobaltHound का उपयोग करना उतना ही सरल है जितना कि अपने क्लाइंट में pycobalthound.cna Aggressor स्क्रिप्ट को आयात करना। एक बार यह हो जाने के बाद, आपको अपने Cobalt Strike मेन्यूबार में pyCobaltHound मेनू दिखाई देना चाहिए।

उपयोग

क्रेडेंशियल स्टोर निगरानी

pyCobaltHound का प्रारंभिक लक्ष्य नई प्रविष्टियों के लिए Cobalt Strike के क्रेडेंशियल कैश (View > Credentials) की निगरानी करना था। यह Cobalt Strike द्वारा क्रेडेंशियल स्टोर में परिवर्तन होने पर फायर किए जाने वाले on_credentials इवेंट पर प्रतिक्रिया करके ऐसा करता है।

जब यह इवेंट फायर होता है, तो pyCobaltHound निम्नलिखित करेगा:

  1. Cobalt Strike से प्राप्त डेटा को पार्स और मान्य करें
  2. अपने कैश की समीक्षा करके जांचें कि क्या उसने पहले से ही इन संस्थाओं की जांच की है
  3. भविष्य के रन के लिए संस्थाओं को कैश में जोड़ें
  4. जांचें कि क्या संस्थाएं BloodHound डेटाबेस में मौजूद हैं
  5. संस्थाओं को owned के रूप में चिह्नित करें
  6. प्रत्येक नई इकाई के लिए अंतर्निहित और कस्टम क्वेरीज़ दोनों का उपयोग करके BloodHound डेटाबेस से क्वेरी करें
  7. लौटाए गए परिणामों को पार्स करें, ऑपरेटर को किसी भी दिलचस्प खोज के बारे में सूचित करें और उन्हें एक बुनियादी HTML रिपोर्ट में लिखें।

चूंकि यह सब मुख्य Cobalt Strike क्लाइंट से अतुल्यकालिक रूप से होता है, इसलिए इस प्रक्रिया को आपके UI को अवरुद्ध नहीं करना चाहिए, ताकि आप pyCobaltHound के पृष्ठभूमि में जांच करते रहने के दौरान काम करते रह सकें।

pyCobaltHound एकाधिक टीमसर्वर का उपयोग करते समय समस्याओं को रोकने के लिए प्रति टीमसर्वर अलग-अलग कैश का उपयोग करता है।

कैश से संस्थाओं को हटाना

कभी-कभी ऐसी स्थितियाँ होती हैं जहाँ आप विशिष्ट उपयोगकर्ताओं (या संपूर्ण क्रेडेंशियल स्टोर) की फिर से जांच करना चाहते हैं। ऐसा तब हो सकता है जब आपने BloodHound डेटाबेस में नया डेटा अपलोड किया हो।

चूंकि pyCobaltHound ने आपके क्रेडेंशियल स्टोर में सभी संस्थाओं की पहले ही जांच कर ली होनी चाहिए (और इसलिए कैश कर लिया है), यह कुछ ऑपरेटर हस्तक्षेप के बिना इस नए डेटा के विरुद्ध उनका मूल्यांकन नहीं करेगा।

ऑपरेटरों के लिए यह नियंत्रित करने के लिए दो विधियाँ उपलब्ध हैं कि कौन सी संस्थाएँ कैश की गई हैं।

विशिष्ट संस्थाओं को हटाना

ऐसे मामलों में जहाँ आप कैश से किसी विशिष्ट इकाई (या एकाधिक) को हटाना चाहते हैं, आप क्रेडेंशियल व्यूअर (View > Credentials) में ऐसा कर सकते हैं। बस अपने लक्ष्य(ों) का चयन करें और pyCobaltHound मेनू प्रविष्टि के तहत remove from cache विकल्प पर क्लिक करें।

संपूर्ण कैश हटाना

ऐसे मामलों में जहाँ आप कैश से सभी संस्थाओं को हटाना चाहते हैं, आप pyCobaltHound के मुख्य मेनू (Cobalt Strike > pyCobaltHound > Wipe cache) में ऐसा कर सकते हैं। यह तब सबसे उपयोगी होता है जब आप अपने पूरे क्रेडेंशियल स्टोर का पुनर्मूल्यांकन करना चाहते हैं।

मैन्युअल रूप से जांच शुरू करना

अपने लक्ष्यों को कैश से हटाने के बाद, आप मैन्युअल रूप से pyCobaltHound को क्रेडेंशियल स्टोर की सामग्री की फिर से जांच करने के लिए प्रॉम्प्ट कर सकते हैं। यह बिल्कुल उपरोक्त प्रक्रिया का पालन करता है।

बीकन प्रबंधन

pyCobaltHound में मौजूदा बीकन सत्रों के साथ बातचीत करने की कार्यक्षमता शामिल है। यह बीकन संदर्भ मेनू में पाया जा सकता है। ध्यान दें कि इन कमांड को एकल बीकन या बीकन के चयन पर निष्पादित किया जा सकता है।

यह कार्यक्षमता विशेष रूप से उन उपयोगकर्ताओं और कंप्यूटरों से निपटने में उपयोगी है जिनके क्रेडेंशियल्स से समझौता नहीं किया गया है (अभी तक), लेकिन जो प्रभावी रूप से हमारे नियंत्रण में हैं (उदाहरण के लिए क्योंकि हमारे पास उनके सत्र टोकन के तहत चल रहा एक बीकन है)।

owned के रूप में चिह्नित करें

Mark as owned कार्यक्षमता (pyCobaltHound > Mark as owned) का उपयोग BloodHound डेटाबेस में एक बीकन (या बीकन के संग्रह) को owned के रूप में चिह्नित करने के लिए किया जा सकता है।

यह डायलॉग ऑपरेटर से निम्नलिखित जानकारी मांगेगा:

  • Nodetype
    • Both: यदि यह चुना जाता है, तो बीकन संदर्भ से संबद्ध उपयोगकर्ता और कंप्यूटर दोनों को owned के रूप में चिह्नित किया जाएगा। pyCobaltHound केवल कंप्यूटरों को owned के रूप में चिह्नित करेगा यदि बीकन सत्र स्थानीय व्यवस्थापक, SYSTEM या किसी अन्य उपयोगकर्ता के रूप में उच्च अखंडता सत्र के रूप में चल रहा है।
    • User: यदि यह चुना जाता है, तो बीकन संदर्भ से संबद्ध उपयोगकर्ता को owned के रूप में चिह्नित किया जाएगा।
    • Computer: यदि यह चुना जाता है, तो बीकन संदर्भ से संबद्ध कंप्यूटर को owned के रूप में चिह्नित किया जाएगा, भले ही संबद्ध सत्र के अखंडता स्तर की परवाह किए बिना।
  • Domain
    • चूंकि बीकन के संदर्भ में डोमेन का कोई संदर्भ नहीं होता है, ऑपरेटरों को इसे स्वयं निर्दिष्ट करने की आवश्यकता होती है

जांच

Investigate कार्यक्षमता (pyCobaltHound > Mark as owned) का उपयोग बीकन (या बीकन के संग्रह) से संबद्ध उपयोगकर्ताओं और होस्टों की जांच करने के लिए किया जा सकता है।

यह डायलॉग ऑपरेटर से निम्नलिखित जानकारी मांगेगा:

  • Nodetype
    • Both: यदि यह चुना जाता है, तो बीकन संदर्भ से संबद्ध उपयोगकर्ता और कंप्यूटर दोनों की जांच की जाएगी। pyCobaltHound केवल कंप्यूटरों की जांच करेगा यदि बीकन सत्र स्थानीय व्यवस्थापक, SYSTEM या किसी अन्य उपयोगकर्ता के रूप में उच्च अखंडता सत्र के रूप में चल रहा है।
    • Both without logic: यदि यह चुना जाता है, तो बीकन संदर्भ से संबद्ध उपयोगकर्ता और कंप्यूटर दोनों की जांच की जाएगी। pyCobaltHound अखंडता स्तरों की जांच किए बिना सभी संस्थाओं की जांच करेगा।
    • User: यदि यह चुना जाता है, तो बीकन संदर्भ से संबद्ध उपयोगकर्ता को owned के रूप में चिह्नित किया जाएगा।
    • Computer: यदि यह चुना जाता है, तो बीकन संदर्भ से संबद्ध कंप्यूटर को owned के रूप में चिह्नित किया जाएगा, भले ही संबद्ध सत्र के अखंडता स्तर की परवाह किए बिना।
  • Domain
    • चूंकि बीकन के संदर्भ में डोमेन का कोई संदर्भ नहीं होता है, ऑपरेटरों को इसे स्वयं निर्दिष्ट करने की आवश्यकता होती है
  • Generate a report
    • यदि यह विकल्प चुना जाता है तो एक बुनियादी HTML रिपोर्ट तैयार की जाएगी

इकाई जांच

pyCobaltHound में स्वतंत्र रूप से संस्थाओं की जांच करने की कार्यक्षमता शामिल है। यह मुख्य मेनू (Cobalt Strike > pyCobaltHound > Investigate) में पाया जा सकता है।

यह कार्यक्षमता विशेष रूप से उन उपयोगकर्ताओं और कंप्यूटरों से निपटने में उपयोगी है जिनके क्रेडेंशियल से समझौता नहीं किया गया है और जो हमारे नियंत्रण में नहीं हैं।

यह डायलॉग ऑपरेटर से निम्नलिखित जानकारी मांगेगा:

  • Targets
    • ऑपरेटर द्वारा जांच की जाने वाली संस्थाओं का CSV-शैली का स्ट्रिंग। यह केवल उपयोगकर्ता/कंप्यूटर नाम (जैसे user1) या FQDN ([email protected]) हो सकता है।
    • नोट: नोटेशन को मिश्रित न करें। आप या तो उपयोगकर्ता/कंप्यूटर नाम या FQDN कर सकते हैं!
  • Domain included
    • यह पैरामीटर निर्दिष्ट करता है कि प्रदान किए गए लक्ष्य स्ट्रिंग में केवल उपयोगकर्ता/कंप्यूटर नाम हैं या FQDN हैं।
  • Domain
    • यदि लक्ष्य स्ट्रिंग में FQDN शामिल नहीं हैं, तो ऑपरेटर को उस डोमेन को इंगित करने की आवश्यकता होगी जिससे जांच की जाने वाली संस्थाएं संबंधित हैं।
  • Generate a report
    • यदि यह विकल्प चुना जाता है तो एक बुनियादी HTML रिपोर्ट तैयार की जाएगी

सेटिंग्स

pyCobaltHound का सेटिंग्स मेनू Cobalt Strike > pyCobaltHound > Settings के अंतर्गत पाया जा सकता है।

pyCobaltHound आपकी सेटिंग्स को डिस्क पर सहेजेगा। हर बार जब pyCobaltHound को रीलोड किया जाता है, तो यह सेटिंग्स फ़ाइल के अस्तित्व की जांच करेगा और यदि यह एक पाता है तो सहेजी गई सेटिंग्स को लोड करेगा।

pyCobaltHound प्रति टीमसर्वर एक सेटिंग्स फ़ाइल सहेजता है, इसलिए विभिन्न टीमसर्वरों पर अलग-अलग सेटिंग्स रखना संभव है।

Neo4j

BloodHound डेटाबेस में प्रमाणीकरण करने के लिए, pyCobaltHound को निम्नलिखित जानकारी की आवश्यकता होगी:

  • Neo4j उपयोगकर्ता नाम
  • Neo4j पासवर्ड
  • Neo4j URL

नोट: यदि आप अपनी सेटिंग्स को स्थायी रूप से सहेजना चुनते हैं (उन्हें क्लाइंट/होस्ट रीबूट में संरक्षित करने के लिए) pyCobaltHound इन क्रेडेंशियल्स को डिस्क पर डी-सीरियलाइज़ और संग्रहीत करेगा।

कैशिंग

जैसा कि पहले चर्चा की गई, pyCobaltHound यह सुनिश्चित करने के लिए कैशिंग का उपयोग करता है कि यह अनावश्यक कार्य न करे। इस कैशिंग को सेटिंग्स में अक्षम किया जा सकता है। यह ज्यादातर नई क्वेरीज़ विकसित करते समय उपयोगी होता है ताकि आपको लगातार कैश का प्रबंधन/मिटाना न पड़े।

सूचनाएं

pyCobaltHound एक बार जब यह रुचि की कोई इकाई की पहचान कर लेता है, तो ऑपरेटर को सूचित करने के कुछ अलग-अलग तरीकों का समर्थन करता है। इन सूचनाओं को अक्षम करना संभव है।

मूल सूचनाएं

डिफ़ॉल्ट रूप से, pyCobaltHound डिफ़ॉल्ट Aggressor मैसेजबॉक्स का उपयोग करके ऑपरेटर को सूचित करेगा। यह विकल्प ऑपरेटर के वर्कफ़्लो को कर सकता है। हालाँकि, यह डिफ़ॉल्ट विधि है क्योंकि यह प्रत्येक प्लेटफ़ॉर्म पर समर्थित है जहाँ आप Cobalt Strike क्लाइंट चला सकते हैं।

Notify2 सूचनाएं

pyCobaltHound Linux पर डेस्कटॉप सूचनाएं प्रदर्शित करने का भी समर्थन करता है। यह हमारा पसंदीदा विकल्प है क्योंकि यह ऑपरेटर के वर्कफ़्लो को बाधित नहीं करता है।

रिपोर्टिंग

अपने कुछ वर्कफ़्लो के दौरान, pyCobaltHound एक HTML रिपोर्ट उत्पन्न करेगा। यह डिज़ाइन विकल्प ऑपरेटर को बड़ी संख्या में संस्थाओं की जांच किए जाने पर विशाल सूचनाओं से स्पैम करने से बचने के लिए बनाया गया था। ये रिपोर्ट reports फ़ोल्डर में उत्पन्न की जाएंगी। रिपोर्ट जनरेशन को अक्षम करना संभव है।

क्वेरी सिंक्रनाइज़ेशन

डिफ़ॉल्ट रूप से, pyCobaltHound सभी क्वेरी-संबंधित सेटिंग्स के लिए एक केंद्रीय फ़ाइल का उपयोग करके टीमसर्वरों में क्वेरीज़ को सिंक्रनाइज़ करेगा। इसका मतलब है कि एक टीमसर्वर पर सक्षम, जोड़ी या हटाई गई क्वेरीज़ अन्य टीमसर्वरों द्वारा की गई क्वेरीज़ में भी सक्षम, जोड़ी, हटाई जाएंगी। यह ज्यादातर एक सुविधा विकल्प है और इसे अक्षम किया जा सकता है, जो उन मामलों में उपयोगी है जहाँ आप अभियान-विशिष्ट क्वेरीज़ चला रहे हैं जो उन सभी टीमसर्वरों पर लागू नहीं होती हैं जिनसे आप जुड़े हैं।

अक्षम करना

जब क्वेरी सिंक्रनाइज़ेशन अक्षम होता है, pyCobaltHound अद्वितीय क्वेरी फ़ाइलों के अस्तित्व की जांच करेगा। यदि ये मौजूद हैं, तो यह उन्हें लोड करेगा और अपने वर्कफ़्लो के दौरान इन क्वेरीज़ का उपयोग करेगा। यदि फ़ाइलें मौजूद नहीं हैं, तो यह उन्हें बनाएगा और लोड करेगा। यह सेटिंग रीलोड के माध्यम से बनी रहेगी।

सक्षम करना

जब क्वेरी सिंक्रनाइज़ेशन सक्षम होता है, pyCobaltHound अद्वितीय क्वेरी फ़ाइलों के अस्तित्व की जांच करेगा। यदि ये मौजूद हैं, तो ऑपरेटर को एक विकल्प के लिए संकेत दिया जाएगा।

ऑपरेटर के पास निम्नलिखित विकल्प हैं:

  • Delete
    • यदि चुना जाता है, pyCobaltHound बस अद्वितीय क्वेरी फ़ाइलों को हटा देगा। सभी कस्टम क्वेरीज़ खो जाएंगी।
  • Merge
    • यदि चुना जाता है, pyCobaltHound अद्वितीय क्वेरी फ़ाइलों को सामान्य क्वेरी फ़ाइलों में मर्ज करने का प्रयास करेगा। क्वेरी मर्ज करने से पहले, यह जांच करेगा कि सामान्य फ़ाइल में उसी नाम या उसी साइफर स्टेटमेंट वाली कोई क्वेरी तो नहीं है। यदि कोई मर्ज विरोध होता है, तो ऑपरेटर से पूछा जाएगा कि क्या वे गैर-मर्ज की गई क्वेरीज़ को रखना चाहते हैं। उन्हें एक अलग फ़ाइल में सहेजा जाएगा। फिर अद्वितीय क्वेरी फ़ाइलों को हटा दिया जाएगा।
  • Keep
    • यदि चुना जाता है, pyCobaltHound बस अद्वितीय क्वेरी फ़ाइलों को छोड़ देगा। सभी कस्टम क्वेरीज़ संरक्षित रहेंगी और यदि क्वेरी सिंक्रनाइज़ेशन फिर से अक्षम किया जाता है तो फ़ाइलें फिर से लोड की जाएंगी।

क्वेरीज़

अंतर्निहित क्वेरीज़

pyCobaltHound वर्तमान में निम्नलिखित अंतर्निहित क्वेरीज़ का समर्थन करता है:

  • User (user-queries.json)
    • Domain Admins का पथ
    • उच्च मूल्य लक्ष्यों का पथ
  • Computer (computer-queries.json)
    • उच्च मूल्य लक्ष्यों का पथ

क्वेरीज़ का प्रबंधन

pyCobaltHound द्वारा उपयोग की जाने वाली विभिन्न क्वेरीज़ का प्रबंधन मुख्य मेनू (Cobalt Strike > pyCobaltHound > Queries) के माध्यम से किया जा सकता है।

क्वेरीज़ को सक्षम/अक्षम करना

Update queries डायलॉग ऑपरेटरों को विशिष्ट क्वेरीज़ को सक्षम/अक्षम करने की अनुमति देता है। इस डायलॉग का उपयोग करते समय, ऑपरेटर से पहले पूछा जाएगा कि वे किस प्रकार की क्वेरीज़ को अपडेट करना चाहते हैं। ऐसा इस वर्कफ़्लो के दौरान सही क्वेरीज़ को गतिशील रूप से रेंडर/लोड करने के लिए किया जाता है।

पहले डायलॉग का उत्तर देने के बाद, ऑपरेटर को उस प्रकार की सभी उपलब्ध क्वेरीज़ की एक सूची प्रस्तुत की जाएगी। यहाँ वे चुन सकते हैं कि वे किन क्वेरीज़ को सक्षम/अक्षम करना चाहते हैं।

aggressor_query_update

क्वेरी प्रकार का विकल्प वर्कफ़्लो में अगले फ़ंक्शन को क्वेरी प्रकार पास करने के लिए एक बदसूरत वर्कअराउंड है और ऑपरेटर के लिए चिंता का विषय नहीं है।

कस्टम क्वेरीज़ जोड़ना

Add query कार्यक्षमता ऑपरेटरों को pyCobaltHound की जांच क्षमताओं को ठीक करने के लिए अपनी स्वयं की क्वेरीज़ जोड़ने/हटाने की अनुमति देती है। यह उन्हें अभियानों के दौरान pyCobaltHound को तुरंत अनुकूलित करने की लचीलापन प्रदान करती है, ताकि अभियान-विशिष्ट लक्ष्यों (उपयोगकर्ता, होस्ट आदि) को ध्यान में रखा जा सके।

यह डायलॉग ऑपरेटर से निम्नलिखित जानकारी मांगेगा:

  • Name
    • कस्टम क्वेरी का नाम। इसका उपयोग pyCobaltHound के वर्कफ़्लो के दौरान विभिन्न मेनू और रिपोर्ट में किया जाएगा।
  • Cypher query
    • वह Cypher क्वेरी जिसे pyCobaltHound को निष्पादित करने की आवश्यकता है। ऑपरेटर अपनी क्वेरीज़ को परिभाषित करने के लिए काफी स्वतंत्र हैं। केवल निम्नलिखित आवश्यकताएं हैं:
      • pyCobaltHound गतिशील रूप से निम्नलिखित Cypher स्ट्रिंग उत्पन्न करता है जो उन इकाई नामों पर आधारित है जिनकी वह जांच कर रहा है:
        • WITH [account names here] AS samAccountNames UNWIND samAccountNames AS names.
        • {statement} प्लेसहोल्डर को इस स्ट्रिंग से बदल दिया जाएगा।
        • यह Cypher स्ट्रिंग लक्ष्यों के samAccountNames लेता है और उन्हें "names" वेरिएबल को असाइन करता है।
        • आपकी क्वेरी को इसके साथ काम करने के लिए, आपको यह सुनिश्चित करना होगा कि यह निम्नलिखित स्टेटमेंट से शुरू होती है:
          • MATCH (x) WHERE x.name STARTS WITH names
          • मैं आपके द्वारा जोड़े जा रहे क्वेरी प्रकार के आधार पर फ़िल्टरिंग (जैसे (x:User)) की अनुशंसा करता हूँ।
      • pyCobaltHound अपेक्षा करता है कि क्वेरी उपयोगकर्ता नामों का एक विशिष्ट सेट लौटाए।
        • ऐसा करने के लिए, अपनी क्वेरी को RETURN DISTINCT (x.name) के साथ समाप्त करें।
      • कुछ उदाहरणों के लिए, अंतर्निहित क्वेरीज़ देखें।
  • Report headline
    • वह शीर्षक जो pyCobaltHound कस्टम क्वेरी के लिए उपयोग करता है। इसका उपयोग pyCobaltHound के वर्कफ़्लो के दौरान सूचनाओं और रिपोर्ट में किया जाएगा।
      • केवल आवश्यकता यह है कि वाक्य में एक {number} प्लेसहोल्डर हो जिसे pyCobaltHound इस क्वेरी के परिणामों की संख्या से बदल देगा।
  • Status
    • यह पैरामीटर निर्धारित करता है कि क्वेरी सक्षम या अक्षम स्थिति में बनाई गई है या नहीं।
  • Query type
    • आपके द्वारा जोड़ी जा रही क्वेरी का प्रकार। यह निर्धारित करेगा कि क्वेरीज़ का कौन सा सेट संपादित किया गया है।

कस्टम क्वेरीज़ हटाना

Delete query डायलॉग ऑपरेटरों को pyCobaltHound से विशिष्ट कस्टम क्वेरीज़ हटाने की अनुमति देता है। इस डायलॉग का उपयोग करते समय, ऑपरेटर से पहले पूछा जाएगा कि वे किस प्रकार की क्वेरी को हटाना चाहते हैं। ऐसा इस वर्कफ़्लो के दौरान सही क्वेरीज़ को गतिशील रूप से रेंडर/लोड करने के लिए किया जाता है।

पहले डायलॉग का उत्तर देने के बाद, ऑपरेटर को उस प्रकार की सभी उपलब्ध क्वेरीज़ की एक सूची प्रस्तुत की जाएगी। यहाँ वे चुन सकते हैं कि वे किन क्वेरीज़ को हटाना चाहते हैं।

aggressor_query_remove

क्वेरी प्रकार का विकल्प वर्कफ़्लो में अगले फ़ंक्शन को क्वेरी प्रकार पास करने के लिए एक बदसूरत वर्कअराउंड है और ऑपरेटर के लिए चिंता का विषय नहीं है।

संदर्भ

pyCobaltHound निम्नलिखित से उपयोग/प्रेरणा लेता है:

  • pycobalt by dcsync
  • Vampire by Coalfire-Research
  • ANGRYPUPPY by vysecurity
  • Max by knavesec
  • BloodHound by SpecterOps
टूल डाउनलोड करें