
आक्रामक GPO डंपिंग और विश्लेषण उपकरण जो BloodHound डेटा का लाभ उठाता है और उसे समृद्ध करता है
GPOHound SYSVOL शेयर से निकाले गए समूह नीति ऑब्जेक्ट (GPO) को डंप और विश्लेषण करने के लिए एक उपकरण है।
यह Active Directory वातावरण में गलत कॉन्फ़िगरेशन, असुरक्षित सेटिंग्स, और विशेषाधिकार वृद्धि पथों को उजागर करने में मदद करने के लिए एक संरचित, औपचारिक प्रारूप प्रदान करता है।
यह उपकरण BloodHound के Neo4j डेटाबेस के साथ एकीकृत होता है, इसका उपयोग Active Directory जानकारी के लिए LDAP-जैसे स्रोत के रूप में करता है, साथ ही विश्लेषण के आधार पर नए संबंध (edges) और नोड गुण जोड़कर इसे समृद्ध भी करता है।
GPO को संरचित JSON या ट्री प्रारूप में डंप करता है
एकाधिक डोमेन को संभालता है
GPO नामों को GPO GUID से हल करता है
GPO फ़ाइलों, GPO GUID और डोमेन द्वारा आउटपुट को फ़िल्टर करता है
रीजेक्स का उपयोग करके key/value जोड़ियों में खोज करता है
सेटिंग्स को प्रभावित ऑब्जेक्ट (जैसे, स्थानीय समूह, रजिस्ट्री) द्वारा समूहित करता है
स्थानीय विशेषाधिकार प्राप्त समूहों में जोड़े गए सदस्यों का पता लगाता है
असुरक्षित रजिस्ट्री सेटिंग्स, संग्रहीत क्रेडेंशियल्स, और विशेषाधिकार अधिकारों का पता लगाता है
VNC क्रेडेंशियल्स और GPP पासवर्ड को डिक्रिप्ट करने का समर्थन करता है
GPO द्वारा प्रभावित डोमेन, कंटेनर और OU ढूंढता है
किसी विशिष्ट उपयोगकर्ता, कंप्यूटर, OU, कंटेनर या डोमेन पर लागू GPO प्राप्त करता है
BloodHound डेटा को संबंधों और गुणों से समृद्ध करता है
git clone "https://github.com/cogiceo/GPOHound"
cd GPOHound
pip install .
pipx install "git+https://github.com/cogiceo/GPOHound"
BloodHound डेटा संवर्धन के लिए आपको Neo4j APOC सेट अप करना होगा:
यदि आप मानक Neo4j स्थापना का उपयोग कर रहे हैं, तो आप APOC jar फ़ाइल को प्लगइन फ़ोल्डर में कॉपी करके और फिर Neo4j को पुनरारंभ करके APOC सक्षम कर सकते हैं:
cp /var/lib/neo4j/labs/apoc-* /var/lib/neo4j/plugins/
neo4j restart
यदि आप "Docker Compose" के साथ Neo4j स्थापित कर रहे हैं, तो पर्यावरण चर NEO4J_PLUGINS=["apoc"] जोड़ें:
neo4j:
image: neo4j:latest
environment:
- NEO4J_PLUGINS=["apoc"]
अधिक विवरण या वैकल्पिक स्थापना विधियों के लिए, आधिकारिक APOC दस्तावेज़ीकरण देखें।
GPOHound द्वारा जोड़े गए संबंधों और गुणों को देखने के लिए, आप customqueries.json फ़ाइल से कस्टम क्वेरीज़ को BloodHound में आयात कर सकते हैं। डिफ़ॉल्ट रूप से, यह फ़ाइल ~/.config/bloodhound/customqueries.json पर स्थित है।
डोमेन नियंत्रक से SYSVOL सामग्री डाउनलोड करके शुरू करें।
पूर्ण SYSVOL डाउनलोड करें:
gpohound sysvol --dc $DC_HOST -d $DOMAIN -u $USER -p $PASSWORD
केवल GPO डाउनलोड करें:
gpohound sysvol --dc $DC_HOST -d $DOMAIN -u $USER -p $PASSWORD --gpos
बहिष्करण के साथ डाउनलोड करें:
gpohound sysvol --dc $DC_HOST -u $USER -p $PASSWORD --exclude '/Policydefinitions/','/scripts/' --max-size 100
LDAP से सभी आवश्यक डेटा प्राप्त करें:
gpohound ldap --dc $DC_HOST -d $DOMAIN -u $USER -p $PASSWORD
BloodHound डेटा संवर्धन के लिए, आपको bloodhound.py या SharpHound.exe जैसे कलेक्टर का उपयोग करके BloodHound डेटा एकत्र करना होगा और एकत्रित डेटा को BloodHound इंटरफ़ेस में आयात करना होगा।
नमूना GPOHound फ़ाइलें example.zip में उपलब्ध हैं। उन्हें unzip example.zip से निकालें।
डिफ़ॉल्ट मानों और कॉन्फ़िगरेशन को अनुकूलित करने के निर्देशों के लिए CONFIG.md देखें।
gpohound --neo4j-user $USER --neo4j-pass $PASS dump
gpohound --neo4j-user $USER --neo4j-pass $PASS analysis
gpohound parse "gpos/sysvols/$DOMAIN/Policies/{31B2F340-016D-11D2-945F-00C04FB984F9}/MACHINE/Registry.pol"
gpohound dump
gpohound dump --list
gpohound dump --guid 31B2F340-016D-11D2-945F-00C04FB984F9
gpohound dump --policies scripts psscripts
gpohound dump --search 'VNC.*Server' --show
gpohound analysis
gpohound analysis --affected
gpohound analysis --trustee 'SRV01.SEVENKINGDOMS.LOCAL'
gpohound analysis --trustee 'SRV01.SEVENKINGDOMS.LOCAL' --list
gpohound analysis --trustee 'SRV01.SEVENKINGDOMS.LOCAL' --dump
gpohound analysis --enrich
gpohound analysis --enrich-ce
[!IMPORTANT]
- सुरक्षा फ़िल्टर, WMI फ़िल्टर और आइटम-स्तरीय लक्ष्यीकरण जैसी शर्तों की व्याख्या नहीं की जाती है।
- मान्य सेटिंग्स को छोड़ने से बचने के लिए GPO विरोधों का अनुकरण नहीं किया जाता है।
लॉगऑन के दौरान विशेषाधिकार प्राप्त स्थानीय समूहों को निर्दिष्ट उपयोगकर्ताओं का पता लगाना
नाम बदले गए बिल्ट-इन विशेषाधिकार प्राप्त स्थानीय समूहों का पता लगाना
"प्राथमिकता प्रक्रिया चर" (जैसे, %ComputerName%, %DomainName%) का उपयोग करके विशेषाधिकार प्राप्त स्थानीय समूहों में जोड़े गए ट्रस्टियों का पता लगाना
sAMAccountName अपहरण का उपयोग करके दुरुपयोग योग्य ट्रस्टियों का पता लगाना
विशेषाधिकार प्राप्त स्थानीय समूहों में जोड़े गए किसी भी ट्रस्टी का पता लगाना:
डिफ़ॉल्ट विशेषाधिकार प्राप्त ट्रस्टी, साथ ही S-1-5-8 से शुरू होने वाले SID वाले सेवा खाते, विश्लेषण से बाहर रखे गए हैं।
| समूह | एज |
|---|
| Administrators | AdminTo |
| Remote Desktop Users | CanRDP |
| Distributed COM Users | ExecuteDCOM |
| Remote Management Users | CanPSRemote |
| Backup Operators | CanPrivEsc |
| Print Operators | CanPrivEsc |
| Network Configuration Operators | CanPrivEsc |
| विश्लेषण | गुण |
|---|
| "Everyone" समूह में "Anonymous Logon" शामिल है | — |
| SMB सर्वर सत्र हस्ताक्षर सक्षम नहीं है | smbSigningEnabled: false |
| SMB सर्वर सत्र हस्ताक्षर आवश्यक नहीं है | smbSigningRequired: false |
| NTLMv1 प्रमाणीकरण समर्थित है | NTLMv1Support: true |
| Windows स्वचालित लॉगऑन डिफ़ॉल्ट पासवर्ड | — |
| VNC क्रेडेंशियल्स (सामान्य: RealVNC, TightVNC, TigerVNC, आदि) | *VNC*PASS* (विभिन्न) |
| FileZilla संग्रहीत पासवर्ड | — |
| PuTTY प्रॉक्सी पासवर्ड | — |
| TeamViewer संग्रहीत क्रेडेंशियल्स | — |
| WinSCP सहेजे गए सत्र | — |
| Picasa संग्रहीत पासवर्ड | — |
| विशेषाधिकार | विवरण | एज |
|---|
| SeDebugPrivilege | उपयोगकर्ता को किसी भी प्रक्रिया को डीबग और इंटरैक्ट करने की अनुमति देता है | CanPrivEsc |
| SeBackupPrivilege | संवेदनशील फ़ाइलों तक पहुंच प्रदान करता है | CanPrivEsc |
| SeRestorePrivilege | पुनर्स्थापना के दौरान ऑब्जेक्ट अनुमतियों को बायपास करता है | CanPrivEsc |
| SeAssignPrimaryTokenPrivilege | SYSTEM एस्केलेशन के लिए टोकन प्रतिरूपण सक्षम करता है | CanPrivEsc |
| SeImpersonatePrivilege | किसी अन्य उपयोगकर्ता के संदर्भ में प्रक्रिया बनाने की अनुमति देता है | CanPrivEsc |
| SeTakeOwnershipPrivilege | उपयोगकर्ताओं को सिस्टम ऑब्जेक्ट का स्वामित्व लेने देता है | CanPrivEsc |
| SeTcbPrivilege | OS के भाग के रूप में कार्य करने की क्षमता प्रदान करता है | CanPrivEsc |
| SeCreateTokenPrivilege | प्रमाणीकरण टोकन बनाने की अनुमति देता है | CanPrivEsc |
| SeLoadDriverPrivilege | ड्राइवर लोड/अनलोड करने का अधिकार देता है | CanPrivEsc |
| SeManageVolumePrivilege | वॉल्यूम या डिस्क प्रबंधन विशेषाधिकार प्रदान करता है | CanPrivEsc |
| SeEnableDelegationPrivilege | कंप्यूटर और उपयोगकर्ता खातों को प्रतिनिधिमंडल के लिए विश्वसनीय बनाने में सक्षम करता है |