
Active Directory, ADCS, SCCM, और MSSQL के लिए हमले के पथ मैपिंग, BloodHound CE + OpenGraph डेटा का उपयोग करके
ADPathFinder पेंटेस्टर्स और रेड टीमर्स के लिए एक हमला मैपिंग टूल है। यह SharpHound डेटा का विश्लेषण करता है और इसे OpenGraph प्लगइन्स के साथ एकीकृत करता है ताकि कम-विशेषाधिकार वाले उपयोगकर्ताओं और कंप्यूटरों से शुरू होकर डोमेन एडमिन और डोमेन कंट्रोलर जैसे उच्च-मूल्य वाले लक्ष्यों तक हमले के पथ सामने लाए जा सकें। MSSQLHound और ConfigManBearPig मूल रूप से समर्थित हैं, जो AD, ADCS, SCCM और MSSQL में कवरेज का विस्तार करते हैं।
यहाँ जाएँ: त्वरित आरंभ · कवरेज · यह कैसे काम करता है · रिपोर्ट · कॉन्फ़िगरेशन · योगदानकर्ता
| क्षेत्र | उदाहरण |
|---|---|
| कोर AD | एस्केलेशन पथ, डेलिगेशन, एडमिन अधिकार, BadSuccessor, एक्सपोज़्ड हाई-वैल्यू सेशन |
| पासवर्ड | कमज़ोर पासवर्ड, खाली पासवर्ड, पुन: उपयोग, उपयोगकर्ता नाम समानता, LM हैश उपयोग, कमज़ोर पासवर्ड के साथ Kerberoast और AS-REP एक्सपोज़र |
| ADCS | ESC-शैली प्रमाणपत्र टेम्पलेट और CA जोखिम |
| MSSQL (MSSQLHound OpenGraph डेटा) | लॉगिन, लिंक्ड सर्वर, प्रतिरूपण, रिले और विशेषाधिकार एस्केलेशन पथ |
| SCCM (ConfigManBearPig OpenGraph डेटा) | अधिग्रहण और रिले पथ, PXE-सक्षम वितरण बिंदु, और प्रबंधन बिंदु नीति पुनर्प्राप्ति |
| पार-डोमेन | ट्रस्ट, साझा पासवर्ड और डोमेन के बीच एस्केलेशन पथ |
neo4j://localhost:7687 पर स्थानीय रूप से उपलब्ध।git clone https://github.com/NetSPI/AD-PathFinder.git
cd AD-PathFinder
python3 -m venv .venv
source .venv/bin/activate
pip install -e .
adpathfinder --setup-bloodhound-api
यह BloodHound CE API सेटिंग्स को संग्रहीत करता है जिनका उपयोग आयात और हटाने के संचालन के लिए किया जाता है।
adpathfinder --import SharpHound.zip
एक कमांड में कई SharpHound और OpenGraph प्लगइन zip फ़ाइलें आयात की जा सकती हैं:
adpathfinder --import SharpHound.zip MSSQLHound.zip ConfigManBearPig.zip
adpathfinder -i SharpHound.zip MSSQLHound.zip ConfigManBearPig.zip --ad --pwd Contoso,ContosoIT --ntds ntds.txt -p hashcat.potfile
केवल अपने पास मौजूद zip फ़ाइलों का उपयोग करें। --pwd मान AD डोमेन नहीं है; यह क्रैक किए गए पासवर्ड में फ़्लैग करने के लिए कंपनी, ब्रांड या संगठन शब्दों की अल्पविराम-पृथक सूची है।
adpathfinder --ad
adpathfinder --ad --pwd Contoso,ContosoIT --ntds ntds.txt -p hashcat.potfile
जब रिपोर्ट में स्पष्ट पासवर्ड शामिल होने चाहिए तभी --unsafe-report का उपयोग करें।
adpathfinder --ad --pwd Contoso,ContosoIT --ntds ntds.txt -p hashcat.potfile --diagnostics
ADPathFinder कार्यशील निर्देशिका से config.ini पढ़ता है। मान ADPF_* पर्यावरण चर के साथ भी सेट किए जा सकते हैं।
आयात और हटाने के लिए BloodHound CE API एक्सेस कॉन्फ़िगर करने के लिए यह चलाएँ:
adpathfinder --setup-bloodhound-api
सभी विकल्पों, Neo4j कनेक्शन सेटिंग्स, फ़ाइल अनुमतियों और उदाहरण कॉन्फ़िगरेशन के लिए विकी पर कॉन्फ़िगरेशन देखें। हमले के पथ आउटपुट को फ़िल्टर करने के लिए बहिष्कृत संबंध देखें।
रिपोर्टें report_<domain>/ निर्देशिका में लिखी जाती हैं, उदाहरण के लिए report_training.local/।
NTDS डेटा, potfiles और उत्पन्न रिपोर्ट को संवेदनशील मूल्यांकन डेटा के रूप में संभालें। --unsafe-report फ़्लैग आउटपुट फ़ाइलों में स्पष्ट पासवर्ड लिखता है; इसका उपयोग केवल तभी करें जब आपको रिपोर्ट में स्पष्ट पासवर्ड की विशेष आवश्यकता हो, और परिणामी _unsafe फ़ाइलों को तदनुसार संग्रहीत करें।
उदाहरण डोमेन ऑडिट और पासवर्ड ऑडिट आउटपुट के लिए sample_reports/ देखें।
चेक छोटे वर्ग होते हैं जो एक डेकोरेटर के साथ पंजीकृत होते हैं, अपनी डेटा आवश्यकताओं की घोषणा करते हैं और निष्कर्ष शब्दकोश लौटाते हैं। प्लेटफ़ॉर्म चेक अपने डेटास्रोत की घोषणा करते हैं, इसलिए सामान्य AD ऑडिट MSSQL या SCCM चेक को छोड़ देते हैं जब मिलान करने वाला OpenGraph डेटा मौजूद नहीं होता।
विकी पर नए चेक जोड़ना, OpenGraph प्लगइन्स के साथ काम करना और फ्रेमवर्क गाइड देखें।
pip install -e ".[test]" फिर pytest tests/ -m "not neo4j and not integration" Neo4j के बिना तेज़ फ्रेमवर्क परीक्षण चलाता है। Neo4j फिक्स्चर सूट और पूर्ण स्थानीय परीक्षण कार्यप्रवाह के लिए tests/README.md देखें।
ADPathFinder अन्य परियोजनाओं द्वारा एकत्रित डेटा पर निर्मित है; उनके लेखकों और SpecterOps टीम को धन्यवाद:
| चरण | क्या होता है |
|---|
| अंतर्ग्रहण | SharpHound और समर्थित OpenGraph zips को एक ग्राफ में मिलाता है। MSSQLHound और ConfigManBearPig डेटा सीधे समर्थित हैं |
| मैप | उपयोगकर्ताओं और कंप्यूटरों से उच्च-मूल्य वाले लक्ष्यों तक सबसे छोटे पथ खोजता है। आप शोर करने वाले किनारों जैसे HasSession को हटाने के लिए एज सेट कॉन्फ़िगर कर सकते हैं |
| समूह | उन खातों को समूहित करता है जो एक पथ साझा करते हैं, ताकि बार-बार आने वाले पथ को कई लगभग-डुप्लिकेट के बजाय एक निष्कर्ष के रूप में रिपोर्ट किया जाए |
| जोड़ना | NTDS हैश और hashcat potfile की तुलना ग्राफ डेटा से करता है ताकि यह दिखाया जा सके कि मूल्यांकन के दौरान कौन से पथ उपयोग करने योग्य हैं |
| लेयर | स्टैंडअलोन निष्कर्षों जैसे SMB साइनिंग अक्षम या डिफ़ॉल्ट विशेषाधिकार प्राप्त समूहों की रिपोर्ट करता है, और गंभीरता बढ़ाता है जब वही होस्ट या समूह उच्च-मूल्य वाले लक्ष्यों के पथ पर भी बैठा हो |
| रेंडर | SVG पथ ग्राफ़, शमन नोट्स, PowerShell सत्यापन चरण और सुधारित स्थिति ट्रैकिंग के साथ HTML रिपोर्ट लिखता है, साथ ही टेक्स्ट, JSON और डायग्नोस्टिक्स आउटपुट |
| आउटपुट | उद्देश्य |
|---|
<domain>_AD_report.html | ग्रुप किए गए निष्कर्षों, पथ ग्राफ़, शमन नोट्स, सत्यापन चरणों और सुधारित स्थिति ट्रैकिंग के साथ ग्राहकों के लिए HTML रिपोर्ट |
<domain>_domain_audit.txt / <domain>_domain_audit.json | समीक्षा, स्वचालन और बाद के विश्लेषण के लिए टेक्स्ट और JSON डोमेन ऑडिट आउटपुट |
<domain>_password_audit.html / <domain>_password_audit.txt / <domain>_password_audit.json | पासवर्ड ऑडिट आउटपुट जब NTDS हैश और hashcat potfile प्रदान किए जाते हैं |
<domain>_*_unsafe.* | केवल --unsafe-report के साथ उत्पन्न वैकल्पिक असुरक्षित रिपोर्ट; इनमें स्पष्ट पासवर्ड शामिल हो सकते हैं |
diagnostics.json | --diagnostics के साथ उत्पन्न वैकल्पिक रन आँकड़े और डिबगिंग डेटा |