
नेटवर्क शेयरों के एक्सेस अधिकारों को आसानी से BloodHound OpenGraphs में मैप करने के लिए एक python टूल
नेटवर्क शेयरों के एक्सेस अधिकारों को BloodHound OpenGraphs में मैप करने का एक टूल।
संबंधित ब्लॉग पोस्ट पढ़ें: https://specterops.io/blog/2025/10/30/sharehound-an-opengraph-collector-for-network-shares/
इस रिपॉजिटरी में ShareHound के दो इम्प्लीमेंटेशन हैं। इनका लक्ष्य एक ही है — SMB शेयर अनुमतियों से BloodHound OpenGraph JSON तैयार करना — लेकिन ये भाषा, रनटाइम और फीचर सेट में भिन्न हैं। जो आपके वर्कफ़्लो के अनुकूल हो उसे चुनें।
| इम्प्लीमेंटेशन | पथ | लेखक | सर्वोत्तम उपयोग |
|---|---|---|---|
| Python | Python/ | Remi Gascou (@podalirius_) @ SpecterOps | संदर्भ इम्प्लीमेंटेशन; विस्तार और स्क्रिप्टिंग में आसान |
| Go | Go/ | Javier Azofra @ Siemens Healthineers | बड़े पैमाने पर स्कैन (60,000+ होस्ट), चेकपॉइंटिंग, स्टैटिक बाइनरी |
प्रत्येक उपनिर्देशिका की अपनी README है जिसमें पूर्ण इंस्टॉलेशन, उपयोग और कॉन्फ़िगरेशन विवरण हैं:
--effective-access-only मोडएक बार जब आप OpenGraph को BloodHound में इम्पोर्ट कर लें, ये क्वेरी सबसे सामान्य आवश्यकताओं को कवर करती हैं। अधिक के लिए, प्रति-इम्प्लीमेंटेशन README देखें।
MATCH (p)-[r]->(s:NetworkShareSMB)
WHERE (p)-[:CanDelete]->(s)
AND (p)-[:CanDsControlAccess]->(s)
AND (p)-[:CanDsCreateChild]->(s)
AND (p)-[:CanDsDeleteChild]->(s)
AND (p)-[:CanDsDeleteTree]->(s)
AND (p)-[:CanDsListContents]->(s)
AND (p)-[:CanDsListObject]->(s)
AND (p)-[:CanDsReadProperty]->(s)
AND (p)-[:CanDsWriteExtendedProperties]->(s)
AND (p)-[:CanDsWriteProperty]->(s)
AND (p)-[:CanReadControl]->(s)
AND (p)-[:CanWriteDacl]->(s)
AND (p)-[:CanWriteOwner]->(s)
RETURN p,r,s
MATCH x=(p)-[r:CanWriteDacl|CanWriteOwner|CanDsWriteProperty|CanDsWriteExtendedProperties]->(s:NetworkShareSMB)
RETURN x
MATCH p=(h:NetworkShareHost)-[:HasNetworkShare]->(s:NetworkShareSMB)-[:Contains*0..]->(f:File)
WHERE toLower(f.name) = toLower("flag.txt")
RETURN p
MATCH p=(h:NetworkShareHost)-[:HasNetworkShare]->(s:NetworkShareSMB)-[:Contains*0..]->(f:File)
WHERE toLower(f.extension) = toLower(".vmdk")
RETURN p
CanEffectiveRead / CanEffectiveWrite / CanEffectiveExecute एज Go इम्प्लीमेंटेशन द्वारा तब जारी किए जाते हैं जब समान SID के पास शेयर और NTFS दोनों स्तरों पर मेल खाने वाले अधिकार होते हैं — अर्थात SMB पर दी गई वास्तविक एक्सेस।
MATCH p=(principal)-[:CanEffectiveRead]->(f:File)
RETURN p
किसी भी इम्प्लीमेंटेशन के लिए पुल रिक्वेस्ट का स्वागत है। यदि आप पहले किसी नई सुविधा पर चर्चा करना चाहते हैं तो एक इश्यू खोलें।