
इकट्ठा इकट्ठा इकट्ठा
इकट्ठा करें, इकट्ठा करें, इकट्ठा करें

Jackdaw यहाँ आपके डोमेन की सारी जानकारी एकत्र करने, उसे SQL डेटाबेस में संग्रहीत करने और आपको सुंदर ग्राफ़ दिखाने के लिए है कि आपके डोमेन ऑब्जेक्ट एक-दूसरे के साथ कैसे इंटरैक्ट करते हैं और एक संभावित हमलावर इन इंटरैक्शन का कैसे फायदा उठा सकता है। इसमें एक सुविधाजनक सुविधा भी शामिल है जो पासवर्ड-क्रैकिंग प्रोजेक्ट में आपकी मदद करती है, हैश/पासवर्ड/उपयोगकर्ताओं को संग्रहीत/खोज/रिपोर्ट करके।
dbinit के माध्यम से एक प्रारंभिक खाली डेटाबेस बनाना होगाenum करना होगा। यह विंडोज़ पर एग्जीक्यूटेबल पर डबल-क्लिक करके या jackdaw.exe auto टाइप करके स्वचालित रूप से किया जा सकता है।nest चलाना होगा। डिफ़ॉल्ट रूप से यह http://127.0.0.1:5000/nest पर उपलब्ध है, और इसके अंतर्गत http://127.0.0.1:5000/ui पर एक SWAGGER-दस्तावेज़ित API है।Generate graph cache पर क्लिक करना होगा ताकि एज जानकारी एक कैश फ़ाइल में आ जाए। इसमें कुछ समय लग सकता है, लेकिन कमांड लाइन पर एक प्रोग्रेस बार दिखाई देगा।graph view पर ग्राफ़ के साथ खेल सकते हैं, लेकिन ऊपर बाईं ओर सही कैश नंबर चुनना न भूलें।यह अनुभाग उपयोगकर्ता फीडबैक के आधार पर नियमित रूप से अपडेट किया जाएगा।
यहाँ कोई सलाह नहीं है; जबकि कोड में कुछ सुधार किए जा सकते हैं, ऐसा कुछ भी नहीं है जो एक सामान्य उपयोगकर्ता कर सके।
ग्राफ़ डेटा कैश फ़ाइल जनरेशन प्रत्येक ग्राफ़ पर एक बार (और केवल एक बार) किया जाना चाहिए, जिसमें डिफ़ॉल्ट sqlalchemy टूल का उपयोग करने में काफी समय लग सकता है।
यदि आप sqlite बैकएंड का उपयोग करते हैं और sqlite3 कमांड लाइन यूटिलिटी को PATH में कहीं रखते हैं, तो प्रदर्शन और गति काफी बेहतर (50x से अधिक गति और 20x कम मेमोरी) हो सकती है। मैं हर उपयोगकर्ता को इसकी अनुशंसा करता हूँ।
अब यहाँ बड़ा ट्रेडऑफ़ वाला हिस्सा है। Jackdaw के शुरुआती कार्यान्वयन में networkx मॉड्यूल का उपयोग ग्राफ़ बैकएंड के रूप में किया गया था क्योंकि यह पूरी तरह से Python में लिखा गया है। लेकिन इसकी मेमोरी और गति की बहुत बड़ी लागत थी। Jackdaw को शुद्ध Python रखने के लिए, यह विकल्प अभी भी मौजूद है, हालाँकि igraph बैकएंड का उपयोग अब डिफ़ॉल्ट है।
ध्यान दें: igraph एक C++ लाइब्रेरी है जिसमें Python बाइंडिंग हैं। इसमें Windows और प्रमुख लिनक्स डिस्ट्रोस के लिए प्रीकंपाइल्ड व्हील्स हैं, लेकिन यदि आप Jackdaw का उपयोग किसी अन्य (एम्बेडेड सिस्टम/मोबाइल फोन/वेब ब्राउज़र) पर करते हैं, तो आपको या तो networkx पर वापस स्विच करना होगा या घंटों लंबे संकलन समय को सहन करना होगा।
डेटाबेस को पूर्व-आरंभ करने की आवश्यकता नहीं है, यह स्वचालित रूप से हो जाएगा।
वितरित बाइनरी का उपयोग करके आप बस jackdaw.exe पर डबल-क्लिक कर सकते हैं।
Python स्क्रिप्ट के रूप में jackdaw auto का उपयोग करें।
jackdaw --sql sqlite:///<पूर्ण पथ यहाँ>/test.db dbinit
लिनक्स सिस्टम पर <पूर्ण पथ यहाँ> में पहला / शामिल होता है, इसलिए फ़ाइल नाम से पहले //// चार (4) डैश होंगे। चिंता न करें।
jackdaw --sql sqlite:///test.db enum 'ldap+sspi-ntlm://<domain>\<placeholder>@10.10.10.2' 'smb+sspi-ntlm://<domain>\<placeholder>@10.10.10.2'
पासवर्ड Passw0rd! है
jackdaw --sql sqlite:///test.db enum 'ldap+ntlm-password://TEST\victim:[email protected]' 'smb+ntlm-password://TEST\victim:[email protected]'
पासवर्ड Passw0rd! है
jackdaw --sql sqlite:///test.db ldap 'ldap+ntlm-password://TEST\victim:[email protected]'
jackdaw --sql sqlite:///<डीबी का पूर्ण पथ> nest
API के लिए http://127.0.0.1:5000/ui खोलें
कृपया UI बनाने का तरीका जानने के लिए नीचे UI बनाना अनुभाग देखें। एक बार बन जाने पर:
ग्राफ़ इंटरफ़ेस (ग्राफ़ दिखाता है, लेकिन अभी काम करने से दूर) के लिए http://127.0.0.1:5000/nest खोलें
LDAP एन्यूमरेशन चरण AD जानकारी, उपयोगकर्ता, मशीन, OU, समूह ऑब्जेक्ट्स पर डेटा एकत्र करता है जिन्हें ग्राफ़ में एक नोड के रूप में और DB में एक अलग तालिका के रूप में प्रस्तुत किया जाएगा। इसके अतिरिक्त, उपरोक्त सभी ऑब्जेक्ट्स के सुरक्षा विवरणक को पार्स किया जाएगा और DACL के ACL को DB में जोड़ा जाएगा। यह सदस्यता जानकारी के साथ मिलकर ग्राफ़ में एज के रूप में प्रस्तुत किया जाएगा। इसके अतिरिक्त, आवश्यकता पड़ने पर उपरोक्त किसी भी डेटा प्रकार पर कस्टम SQL क्वेरी की जा सकती है।
SMB एन्यूमरेशन चरण डोमेन में प्रत्येक मशीन (जो LDAP के माध्यम से प्राप्त होती है) से कनेक्ट करके शेयर, लोकलग्रुप, सत्र, NTLM डेटा पर डेटा एकत्र करता है
Kerberos मॉड्यूल स्वचालित रूप से Kerberoasting और AS-REP Roasting करता है
फ्रेमवर्क उपयोगकर्ताओं को LSASS मेमोरी डंप अपलोड करने की अनुमति देता है ताकि क्रेडेंशियल्स संग्रहीत करें और सत्र जानकारी तालिका को बढ़ाएँ। दोनों का उपयोग ग्राफ़ में अतिरिक्त एज (क्रमशः साझा पासवर्ड और सत्र) के रूप में किया जाएगा। फ्रेमवर्क इस जानकारी का उपयोग कमजोर/साझा/क्रैक किए गए क्रेडेंशियल्स पर पासवर्ड रिपोर्ट बनाने के लिए भी करता है।
फ्रेमवर्क उपयोगकर्ताओं को impacket के DCSYNC फ़ाइलें अपलोड करने की अनुमति देता है ताकि क्रेडेंशियल्स संग्रहीत करें। इसका उपयोग ग्राफ़ में अतिरिक्त एज (साझा पासवर्ड) के रूप में किया जाएगा। फ्रेमवर्क इस जानकारी का उपयोग कमजोर/साझा/क्रैक किए गए क्रेडेंशियल्स पर पासवर्ड रिपोर्ट बनाने के लिए भी करता है।
फ्रेमवर्क उपलब्ध DB को हर पहलू में मैन्युअल रूप से विस्तारित करने की अनुमति देता है। उदाहरण: जब किसी दिए गए कंप्यूटर पर उपयोगकर्ता सत्र जानकारी खोजी जाती है (स्वचालित एन्यूमरेशन के बाहर), तो इन सत्रों को मैन्युअल रूप से अपलोड करने की संभावना है, जो DB और परिणामी ग्राफ़ को आबाद करेगा।
फ्रेमवर्क डेटाबेस में उपलब्ध जानकारी का उपयोग करके एक ग्राफ़ उत्पन्न कर सकता है और इसे वेब UI (nest) के माध्यम से प्लॉट कर सकता है। इसके अलावा, ग्राफ़ जनरेशन और पथ गणना को प्रोग्रामेटिक रूप से बुलाया जा सकता है, या तो वेब API (/ui एंडपॉइंट) या ग्राफ़ ऑब्जेक्ट के फ़ंक्शन का उपयोग करके।
फ्रेमवर्क ग्राफ़ जनरेशन के बिना सामान्य AD मिसकॉन्फ़िगरेशन की पहचान कर सकता है। वर्तमान में केवल वेब API के माध्यम से।
उपयोगकर्ता विसंगति पहचान में असुरक्षित UAC अनुमतियाँ और व्यापक उपयोगकर्ता विवरण मानों का पता लगाना शामिल है। भविष्य में नई सुविधाएँ लागू होने पर यह सुविधा सेट बढ़ने की उम्मीद है।
मशीन विसंगति पहचान में असुरक्षित UAC अनुमतियाँ, गैर-अनिवार्य SMB साइनिंग, पुराना OS संस्करण, डोमेन से बाहर की मशीनों का पता लगाना शामिल है। भविष्य में नई सुविधाएँ लागू होने पर यह सुविधा सेट बढ़ने की उम्मीद है।
फ्रेमवर्क कोई क्रैकिंग नहीं करता, केवल हैश और क्रैकिंग परिणामों का आयोजन करता है
वर्तमान में मुख्य फोकस impacket और aiosmb के dcsync परिणामों पर है! केवल !NT और !LM हैश!
नमूना प्रक्रिया इस प्रकार है:
लेखक की ओर से नोट: यह सुविधा हमलावरों और रक्षकों दोनों के लिए लागू की गई थी। व्यक्तिगत रूप से, मुझे दोनों ओर से अधिक मूल्य नहीं दिखता, क्योंकि जिस समय किसी उपयोगकर्ता का NT हैश प्राप्त होता है, वह पासवर्ड जितना ही अच्छा होता है... फिर भी, अधिक से अधिक कंपनियां पासवर्ड शक्ति अभ्यास कर रही हैं, और यह सुविधा उनकी मदद करेगी। हमलावरों के लिए: यह इस बिंदु पर केवल दिखावा है, लेकिन आपका स्वागत है। शायद अतिरिक्त अंकों के लिए प्रबंधन को डराएँ।
यह परियोजना प्रायोगिक चरण में है! इसका मतलब कई चीज़ें हैं:
Jackdaw SQLAlchemy ORM मॉड्यूल का उपयोग करता है, जो आपको किसी भी SQL DB बैकएंड का उपयोग करने का विकल्प देता है। परीक्षण मुख्य रूप से SQLite पर किए जाते हैं, स्पष्ट कारणों से। इस परियोजना में कोई बैकएंड-विशिष्ट कमांड का उपयोग नहीं किया जाएगा जो आपको सीमित करे।
यह केवल तब आवश्यक है यदि आप GIT के माध्यम से इंस्टॉल करते हैं और/या UI कोड में कुछ बदलते हैं
UI React में लिखा गया था। पहले उपयोग/इंस्टॉलेशन से पहले आपको इसे बनाना होगा। इसके लिए, आपको nodejs और npm इंस्टॉल होना चाहिए। फिर:
jackdaw/nest/site/nui पर जाएँnpm install चलाएँnpm run build चलाएँएक बार ऊपर के काम पूरे हो जाने के बाद, UI खेलने के लिए तैयार है।
"यदि मैंने दूर तक देखा है, तो वह दिग्गजों के कंधों पर खड़े होकर है।"
BloodHound टीम
@dirkjanm (https://github.com/dirkjanm/)
Zsolt Imre (https://github.com/keymandll)
कृपया aiosmb और msldap मॉड्यूल में श्रेय अनुभाग देखें