
Mimikatz का शुद्ध पायथन में कार्यान्वयन
अगर आपको यह प्रोजेक्ट पसंद आता है, तो OctoPwn के लाइसेंस खरीदने पर विचार करें, जो आपके ब्राउज़र में चलने वाला हमारा पूर्ण पेंटेस्टिंग सूट है!
नए बिल्ड/रिलीज़ और अन्य जानकारी के लिए नोटिफिकेशन प्राप्त करने के लिए, हमारे Discord पर आएं।
शुद्ध Python में Mimikatz का कार्यान्वयन। कम से कम इसका एक हिस्सा :)
यह उन सभी ऑपरेटिंग सिस्टम पर चलता है जो python>=3.6 को सपोर्ट करते हैं।

यह प्रोजेक्ट, साथ ही कई अन्य पेंटेस्टर टूल, OctoPwn की शक्ति के साथ ब्राउज़र में चलते हैं!
समुदाय संस्करण देखें OctoPwn - Live पर।
संस्करण 0.1.1 से कमांड लाइन थोड़ी बदल गई है। चिंता न करें, मेरे पास आपके लिए एक शानदार विकी है।
इसे pip के माध्यम से या github से क्लोन करके स्थापित करें।
इंस्टॉलर python के Script निर्देशिका में pypykatz निष्पादन योग्य बनाएगा। आप इसे वहां से चला सकते हैं, यह आपके PATH में होना चाहिए।
ध्यान रखें, github master संस्करण विफल हो सकता है क्योंकि मैं नए संस्करणों के लिए उचित ब्रांच बनाने में आलसी हूँ। फिर भी मैं स्थिर संस्करण की एक ब्रांच बनाने का प्रयास करूंगा।
pip3 install pypykatz
पूर्वापेक्षाएँ स्थापित करें
pip3 install minidump minikerberos aiowinreg msldap winacl
इस रेपो को क्लोन करें
git clone https://github.com/skelsec/pypykatz.git
cd pypykatz
इसे स्थापित करें
python3 setup.py install
प्लेटफ़ॉर्म स्वतंत्र - सभी कमांड का "लाइव" और एक सामान्य संस्करण होता है, जहाँ लागू हो। "लाइव" संस्करण वर्तमान सिस्टम का उपयोग करेगा और केवल Windows पर काम करता है। सामान्य कमांड प्लेटफ़ॉर्म स्वतंत्र हैं।
आपके प्रोजेक्ट्स के लिए एक लाइब्रेरी के रूप में उपयोग किया जा सकता है।
LSASS प्रक्रिया में छिपे रहस्यों को पार्स कर सकता है। यह mimikatz के sekurlsa:: जैसा ही है, लेकिन अलग कमांड के साथ।
यहाँ मुख्य अंतर यह है कि सभी पार्सिंग तर्क डेटा स्रोत से अलग किए गए हैं, इसलिए यदि आप एक नया रीडर ऑब्जेक्ट परिभाषित करते हैं, तो आप मूल रूप से कहीं से भी LSASS का पार्सिंग कर सकते हैं।
वर्तमान में समर्थित डेटा स्रोत:
आपका प्रोजेक्ट यहाँ गंभीरता से, इसे एकीकृत करना बहुत आसान है।स्टोर किए गए क्रेडेंशियल्स जैसे NT और LM हैश, डोमेन कैश्ड क्रेडेंशियल्स (DCC/DCC2) और LSA सीक्रेट्स प्राप्त करने के लिए रजिस्ट्री हाइव्स को पार्स करता है।
वर्तमान में समर्थित डेटा स्रोत:
आपका प्रोजेक्ट यहाँ गंभीरता से, इसे एकीकृत करना बहुत आसान है।DPAPI कई प्रकार के स्थानीय रहस्यों का संरक्षक है। वर्तमान में प्रोजेक्ट मास्टरकीज, डीपीएपीआई ब्लॉब्स, क्रेडेंशियल फ़ाइलें, वॉल्ट फ़ाइलों को डिक्रिप्ट करने का समर्थन करता है।
परिणाम 100% सही नहीं हैं, क्योंकि इनमें से अधिकांश चीज़ों पर बहुत अधिक दस्तावेज़ीकरण नहीं है। PR का हमेशा स्वागत है!
वर्तमान में समर्थित डेटा स्रोत:
कृपया इस भाग को अपने प्रोजेक्ट में एकीकृत न करें, यह बीटा हैमशीन पर चल रहे किसी भी उपयोगकर्ता के रूप में एक नई प्रक्रिया उत्पन्न कर सकता है।
अपने थ्रेड को चॉइस का कोई भी उपलब्ध टोकन निर्दिष्ट कर सकता है।
यह वास्तव में बुनियादी चीज़ है। इसका कारण यह है कि मुझे एडमिन से सिस्टम शेल पाने के लिए लगातार psexec का उपयोग करने से नफरत है...
हाँ... कोड देखें। इसमें टिप्पणियाँ और सामान है...
इस पैरामीटर के अस्तित्व का कारण: पार्सिंग के लिए सही संरचना चुनने के लिए हमें msv dll फ़ाइल की टाइमस्टैम्प जानकारी की आवश्यकता होती है। Rekall में दुर्भाग्य से किसी कारणवश यह जानकारी हमेशा नहीं होती, इसलिए पार्सिंग विफल हो सकती है।
यदि पार्सिंग विफल हो रही है तो यह समस्या को हल कर सकता है।
पैरामीटर: -t
मान: 0 या 1
उदाहरण:
pypykatz.py rekall <memory_dump_file> -t 0
Rekall-आधारित मेमोरी पार्सिंग का उपयोग करने के दो तरीके हैं।
pypykatz rekall कमांड के माध्यम सेआपको पार्स करने के लिए मेमोरी फ़ाइल निर्दिष्ट करनी होगी।
महत्वपूर्ण सूचनाएं:
rekall स्थापित करने का निर्णय ले रहे हैं, तो कृपया ध्यान दें: इसे वर्चुअलएनवी में चलाया जाना चाहिए, और आपको उसी वर्चुअलएनवी में pypykatz स्थापित करना होगा!out_file और kerberos_dir कमांड स्विच का उपयोग करना चाहिए!आप pypykatz के plugins फ़ोल्डर में pypykatz_rekall.py नामक एक rekall प्लगइन फ़ाइल पा सकते हैं।
आपको इसे rekall के plugins/windows फ़ोल्डर में कॉपी करना होगा, और इसका नाम बदलकर pypykatz.py करना होगा।
इसके बाद उसी फ़ोल्डर में स्थित __init__.py फ़ाइल को संशोधित करें और अंत में निम्नलिखित पंक्ति जोड़ें: from rekall.plugins.windows import pypykatz
यदि सब कुछ ठीक है, तो आप rekall कमांड लाइन से सीधे pypykatz कमांड का उपयोग कर सकते हैं।
यदि आप इस प्रोजेक्ट को एक स्थिर रिलीज़ में लाने में मेरी मदद करना चाहते हैं, तो आप lsass.exe प्रक्रिया के मिनिडंप निम्नलिखित लिंक पर भेज सकते हैं: https://nx5494.your-storageshare.de/s/SJteWj3PPbg8jBA महत्वपूर्ण: कृपया अपनी खुद की मशीन के lsass प्रक्रिया के डंप न भेजें!!! मैं आपके रहस्यों को देख पाऊंगा जिसमें हैश/पासवर्ड शामिल हैं! उन मशीनों जैसे वर्चुअल टेस्ट सिस्टम से डंप फ़ाइलें भेजें जिन पर आपको कोई आपत्ति नहीं है कि कोई क्रेडेंशियल्स देख सकता है। (यदि आपके पास एक टेस्ट डोमेन सिस्टम है जहाँ kerberos सेटअप है तो वह सबसे अच्छा होगा) साथ ही मैं सराहना करूंगा यदि आप मुझे स्पैम न करें...
Python में mimikatz बनाने के लिए, किसी को एक गज़िलियन विभिन्न संरचनाओं की संरचना परिभाषाएँ बनानी होंगी (मूल कोड देखें) बिना बिल्ट-इन पार्सर की मदद के जो आपको स्वाभाविक रूप से एक देशी कंपाइलर का उपयोग करने से मिलता है। अब, समस्या यह है कि एक भी बाइट गलत संरेखण इन संरचनाओं के पार्सिंग को त्रुटि में बदल देगा। समस्या ज्यादातर 32-64 संरेखण के आसपास घूमती है, इसलिए 32-बिट विंडोज संस्करण के lsass डंप की भी सराहना की जाती है!
मुझे ऐसे डेटा की आवश्यकता है जिस पर मैं कोड को सत्यापित कर सकूं और पार्सर पर आवश्यक परिवर्तन कर सकूं जब तक सब कुछ ठीक से काम न करे। इस github पृष्ठ पर समस्याएँ सबमिट करना वास्तविक फ़ाइल के बिना बिल्कुल मदद नहीं करेगा और github को 40-300Mb फ़ाइल अटैचमेंट पसंद नहीं आएगा।
मेरे अधिकांश बड़े python प्रोजेक्ट अधिकतम पोर्टेबिलिटी के लिए लक्षित हैं, जिसका अर्थ है कि मैं केवल वहाँ तीसरे पक्ष के पैकेज का उपयोग करता हूँ जहाँ बिल्कुल आवश्यक हो। इस बिंदु पर तीन अतिरिक्त पैकेज का उपयोग किया जाता है, और मैं इसे इसी तरह रखने का इरादा रखता हूँ।
Python>=3.6
minidump
minikerberos
asn1crypto
Benjamin DELPY @gentilkiwi के लिए Mimikatz
Francesco Picasso के लिए volatility के लिए mimikatz.py प्लगइन
Alberto Solino (@agsolino) के लिए impacket
Richard Moore के लिए AES मॉड्यूल
Todd Whiteman के लिए DES मॉड्यूल
David Buxton के लिए टाइमस्टैम्प रूपांतरण स्क्रिप्ट