
एक Proof-of-Concept बूटकिट और UEFI बूट एप्लिकेशन जो Petya रैंसमवेयर से प्रेरित है, जिसे Assembly, C और C++ में लिखा गया है।
Petya रैंसमवेयर से प्रेरित एक Proof-of-Concept बूटकिट और UEFI बूट एप्लिकेशन, जो Assembly, C और C++ में लिखा गया है
यदि आपको यह प्रोजेक्ट उपयोगी या जानकारीपूर्ण लगता है, तो मैं रिपॉजिटरी पर एक ⭐ की वास्तव में सराहना करूंगा। आपका समर्थन मेरे लिए इस टूल को बेहतर बनाते रहने की एक बड़ी प्रेरणा होगा।
OpenPetya एक शैक्षिक प्रोजेक्ट है जिसे यह अध्ययन करने के लिए डिज़ाइन किया गया है कि बूटकिट और निम्न-स्तरीय रैंसमवेयर आंतरिक रूप से कैसे कार्य करते हैं।
प्रोजेक्ट निम्न पर केंद्रित है:
OpenPetya नहीं है Petya या NotPetya का एक सटीक पुनःकार्यान्वयन बनने का इरादा। इसके बजाय, यह सीखने और शोध उद्देश्यों के लिए डिज़ाइन किया गया एक सरलीकृत Proof-of-Concept है।
यह उल्लेख करने योग्य है कि OpenPetya में Command-and-Control (C2) कार्यक्षमता शामिल नहीं है। इसके अतिरिक्त, OpenPetya एन्क्रिप्शन के बाद छिपे हुए सेक्टरों के अंदर सादा-पाठ MFT बैकअप डेटा संग्रहीत करता है। यह व्यवहार जानबूझकर शैक्षिक उद्देश्यों के लिए डिज़ाइन किया गया है क्योंकि वे सुविधाएँ इस प्रोजेक्ट में लागू किए गए मुख्य बूटलोडर और क्रिप्टोग्राफ़िक तंत्रों की तुलना में अपेक्षाकृत तुच्छ हैं। हालाँकि, आप आवश्यकता पड़ने पर इन सुविधाओं को संशोधित या हटा सकते हैं।
नोट: संस्करण 2.0.0 में, मैंने इस चिंता के कारण इसे UEFI के लिए लागू नहीं करना चुना कि इसका दुरुपयोग आधुनिक Windows ऑपरेटिंग सिस्टम को नुकसान पहुँचाने के लिए किया जा सकता है।
पिछले कुछ महीनों में, मैं अध्ययन कर रहा हूँ:
Petya और NotPetya पर शोध करते समय, मैंने महसूस किया कि कई ऑनलाइन संसाधन केवल समग्र कार्यप्रवाह को संक्षेप में समझाते हैं बिना यह प्रदर्शित किए कि अंतर्निहित बूट प्रक्रिया वास्तव में कैसे कार्य करती है।
इसके अतिरिक्त, कई मौजूदा Petya-संबंधित प्रोजेक्ट तर्क को शुरू से लागू करने के बजाय निकाले गए बूटलोडर बाइनरी या संशोधित मूल घटकों पर निर्भर करते हैं।
इसलिए, मैंने OpenPetya को समझने के लिए एक व्यावहारिक प्रोजेक्ट के रूप में विकसित करने का निर्णय लिया:
प्रोजेक्ट बूटकिट, निम्न-स्तरीय मैलवेयर और ऑपरेटिंग सिस्टम आंतरिक में मेरे चल रहे शोध के हिस्से के रूप में भी कार्य करता है।
संबंधित लेख:
संस्करण 2.0.0 में, मैं उत्सुक हो गया कि आधुनिक बूटकिट कैसे कार्य करते हैं (जैसा कि Alex Matrosov, Eugene Rodionov और Sergey Bratus द्वारा "Rootkits and Bootkits" के अंतिम कई अध्यायों में शामिल है)। इसलिए, मैंने शुरू से EFI एप्लिकेशन प्रोग्रामिंग का अध्ययन करने का निर्णय लिया। फिर मुझे पता चला कि यह मेरी अपेक्षा से कहीं अधिक कठिन था (डिबगिंग के दृष्टिकोण से)।
वैसे भी, कुछ सरल EFI एप्लिकेशन लिखने के बाद, मैंने OpenPetya v2.0.0 प्रकाशित किया!
कस्टम MBR
OpenPetya स्टेज-2 पेलोड को लोड करने के लिए एक कस्टम Master Boot Record (MBR) का उपयोग करता है।
कस्टम स्टेज-2 बूटलोडर
स्टेज-2 बूटलोडर में प्रोजेक्ट की मुख्य कार्यक्षमता शामिल है, जिसमें शामिल हैं:
Protected Mode संक्रमण
बूटलोडर उच्च-स्तरीय तर्क निष्पादित करने से पहले 16-बिट Real Mode से 32-बिट Protected Mode में स्विच करता है।
MFT एन्क्रिप्शन
मूल Petya के समान, OpenPetya Salsa20 का उपयोग करके NTFS Master File Table (MFT) के महत्वपूर्ण भागों को एन्क्रिप्ट करता है।
पासवर्ड सत्यापन
OpenPetya अमान्य कुंजियों के कारण होने वाले अपरिवर्तनीय भ्रष्टाचार को रोकने के लिए डिक्रिप्शन से पहले इनपुट पासवर्ड को सत्यापित करता है।
स्वचालित पुनर्स्थापना
एक बार सही पासवर्ड दर्ज हो जाने पर:
OpenPetya v2.0.0 कस्टम EFI एप्लिकेशन (petya.efi) में MFT एन्क्रिप्शन शामिल नहीं करता है। यह एक सरल लॉगिन पैनल प्रदान करता है और पासवर्ड सही होने पर चेनलोडिंग करता है।
मैंने EFI एप्लिकेशन में MFT एन्क्रिप्शन लागू नहीं करना चुना क्योंकि इसका दुरुपयोग आधुनिक Windows ऑपरेटिंग सिस्टम को नुकसान पहुँचाने के लिए किया जा सकता है, जबकि मैंने इसे v1.0.0 में लागू किया क्योंकि खतरे वाले अभिनेताओं ने पहले ही 2016 में इसे प्रदर्शित कर दिया था।
OpenPetya.exeउपयोगकर्ता-मोड इंस्टॉलर और नियंत्रक एप्लिकेशन।
कार्य:
mbr.binकस्टम Master Boot Record (MBR) कोड जो इसके लिए जिम्मेदार है:
stage2.binOpenPetya का मुख्य पेलोड।
जिम्मेदारियाँ:
petya.efiOpenPetya का मुख्य पेलोड।
कार्य:
OpenPetya (MBR + Bootloader) का कार्यप्रवाह नीचे संक्षेपित है।
OpenPetya.exe का उपयोग करके OpenPetya स्थापित करते हैं और एक पासवर्ड चुनते हैं।NtRaiseHardError) तंत्र के माध्यम से रीबूट किया जाता है।मूल Petya रैंसमवेयर के विपरीत, OpenPetya उपयोगकर्ताओं को नकली CHKDSK स्क्रीन या सोशल इंजीनियरिंग व्यवहार से धोखा देने का प्रयास नहीं करता है। प्रोजेक्ट पूरी तरह से शैक्षिक और शोध उद्देश्यों के लिए डिज़ाइन किया गया है।
OpenPetya (UEFI) का कार्यप्रवाह नीचे संक्षेपित है:
आप नीचे दिए गए कमांड का उपयोग करके प्रोजेक्ट का निर्माण कर सकते हैं।
make # Build mbr.bin and stage2.bin
./build.sh # Build OpenPetya.exe
चेतावनी: कृपया इसे अपनी वर्चुअल मशीन में निष्पादित करें!
नीचे दिए गए कमांड दिखाते हैं कि कस्टम MBR और स्टेज-2 बूटलोडर कैसे स्थापित करें (प्रशासनिक विशेषाधिकार आवश्यक है):
Legacy BIOS:
OpenPetya.exe --list
OpenPetya.exe --drive 0 --install mbr.bin stage2.bin
UEFI:
OpenPetya.exe --is-admin
OpenPetya.exe --firmware
OpenPetya.exe --uefi-secure
OpenPetya.exe --drive 0 --uefi-install petya.efi
OpenPetya.exe --drive 0 --uefi-restore
इसके बारे में विस्तृत स्पष्टीकरण:
NtRaiseHardError) का उपयोग कैसे करेंइस लेख में प्रलेखित हैं।
यह प्रोजेक्ट पूरी तरह से शैक्षिक और शोध उद्देश्यों के लिए विकसित किया गया था।
OpenPetya का लक्ष्य अध्ययन करना है:
इस प्रोजेक्ट का उपयोग अवैध गतिविधियों या उन प्रणालियों के विरुद्ध न करें जिनके आप स्वामी नहीं हैं या जिनके परीक्षण की आपके पास स्पष्ट अनुमति नहीं है।
लेखक इस सॉफ़्टवेयर के किसी भी दुरुपयोग के लिए जिम्मेदार नहीं है।
इस प्रोजेक्ट को देखने के लिए धन्यवाद। प्रतिक्रिया और सुझावों का स्वागत है।