
बुरे लोगों द्वारा बुरी चीज़ें
इस दस्तावेज़ में विश्लेषित और संदर्भित Hive सैंपल को @rivitna द्वारा बनाई गई इस सूची से यादृच्छिक रूप से चुना गया था, जिनके प्रति मेरा हार्दिक आभार है। आर्टिफैक्ट VirusTotal प्लेटफ़ॉर्म पर उपलब्ध हैं।
इस दस्तावेज़ में, a0h2uih3d2.exe फ़ाइल को संदर्भ के रूप में लिया गया है
MD5: 15CF5E0DA094ACDD751A513402A8C941
SHA-1: 72E15AC4473903C814E65E3C06F54EB0399580AA
SHA-256: 335D2E4A743D059955760ECF2EC25EE86D36AA60B096C9180E860C64EF78EE55
इस रैंसमवेयर की जटिलता का अंदाज़ा लगाने के लिए, कृपया Microsoft Threat Intelligence Center (MSTIC) द्वारा प्रकाशित इस विश्लेषण पर एक नज़र डालें।
कोड के साथ खिलवाड़ शुरू करने से पहले कृपया पूरे दस्तावेज़ को ध्यान से पढ़ें!
हाल के महीनों में, मैंने अपनी अधिकांश ऊर्जा Hive v5 एन्क्रिप्शन एल्गोरिदम के अध्ययन और रिवर्स इंजीनियरिंग में लगाई है। मुझे एक महान मैलवेयर विश्लेषक और रिवर्स इंजीनियर @rivitna के साथ सहयोग करने का सौभाग्य मिला, जिन्होंने अतीत में Hive के पिछले संस्करणों का विश्लेषण किया है और उनके एन्क्रिप्शन तंत्र से संबंधित कोड और PoC प्रकाशित किए हैं। उन्होंने Hive v5 की एन्क्रिप्शन प्रक्रियाओं में शामिल घटकों की पहचान करने में (थोड़ा नहीं) योगदान दिया है, जो RUST में लिखा जाने के कारण विश्लेषण करना अधिक कठिन हो गया है। मुझे Babuk के साथ कुछ समानताएँ मिलीं, जो एक और बहुत महत्वपूर्ण रैंसमवेयर है जिसके स्रोत जून 2021 में सार्वजनिक किए गए थे:
किसी पीड़ित सिस्टम पर चलने वाला Hive ransomware v5, नीचे दिए गए प्रमाण में दिखाए गए एल्गोरिदम का उपयोग करके, QueryPerformanceCounter और QueryPerformanceFrequency Windows APIs पर आधारित, दो क्लियरटेक्स्ट कुंजियाँ उत्पन्न करता है।
कृपया QueryPerformanceCounter APIs के बारे में अधिक जानकारी के लिए इस Microsoft पेज को देखें, और QueryPerformanceFrequency के लिए यहाँ देखें।
QueryPerformanceCounter एक बहुत सटीक समय काउंटर है। कॉल किए जाने पर, यह पीसी के अंतिम बार चालू होने के बाद से बीता हुआ समय लौटाता है।
QueryPerformanceFrequency परफॉर्मेंस काउंटर का मान (आवृत्ति) लौटाता है। इसका एक निश्चित मान 0x989680 होता है। इसका मतलब है कि QueryPerformanceCounter मान प्रति सेकंड 0x989680 बार अपडेट होता है, जो 10,000,000 बार है।
दोनों क्लियरटेक्स्ट कुंजियों का आकार 0xCFFF00 बाइट्स है और वे एक समय में एक बाइट उत्पन्न होती हैं। नीचे वह स्निपेट है जो 0xA00000 बाइट्स की ऐरे बनाने की अनुमति देता है, जो तथाकथित क्लियरटेक्स्ट कुंजी का सबसे बड़ा हिस्सा है जिसके साथ Hive पीड़ित के पीसी पर फ़ाइलों को एन्क्रिप्ट करता है।

कुंजी का प्रत्येक बाइट AL रजिस्टर का मान लेकर प्राप्त किया जाता है। EAX रजिस्टर में 0044ADE0 फ़ंक्शन का परिणाम होता है जिसे createByte लेबल से पुनः नामित किया गया है, जो वर्तमान समय क्षण और प्रारंभिक सीड मान के बीच के अंतर को लागू करता है, जिसकी गणना 0044A850 फ़ंक्शन की पहली कॉल पर की जाती है जिसे call_to_QueryPerformanceCounter लेबल से पुनः नामित किया गया है।
नीचे क्लियरटेक्स्ट कुंजी उत्पन्न करने के लिए C++ में लिखा गया कोड है:

एल्गोरिदम बहुत सरल है, भले ही 0044ADE0 फ़ंक्शन के अंदर, ऐसे निर्देश डाले गए हैं जो अनावश्यक संचालन और विभिन्न सशर्त जंप करते हैं ताकि क्लियरटेक्स्ट कुंजी के निर्माण के दौरान कोड के निष्पादन समय में देरी करने की कोशिश की जा सके:

HiveRansomwareV5_custom_keygen_PoC फ़ोल्डर में आपको विश्लेषित Hive v5 सैंपल से रिवर्स किया गया रॉ कोड मिलेगा। यह मैलवेयर में पाए जाने वाले कोड जैसा अनुकूलित कोड नहीं है, क्योंकि मुझे संकलित संस्करण से कोड की एक भी पंक्ति नहीं छोड़नी थी।
HiveRansomwareV5_custom_keygen_PoC-optimized फ़ोल्डर में आपको उपर्युक्त रॉ कोड से व्युत्पन्न अनुकूलित कोड मिलेगा। इस संस्करण में कोड रॉ संस्करण की तुलना में पढ़ने में बहुत आसान है, ताकि यह समझा जा सके कि यह किस कार्यक्षमता को लागू करता है।
उत्पन्न क्लियरटेक्स्ट कुंजी को अपने डेस्कटॉप पर सहेजने के लिए दोनों संस्करणों को चलाने से पहले आपके उपयोगकर्ता नाम के साथ अनुकूलित करने की आवश्यकता है।
दोनों क्लियरटेक्स्ट कुंजियाँ एक ही एल्गोरिदम का उपयोग करके उत्पन्न की जाती हैं।
एक क्लियरटेक्स्ट कुंजी 0xA00000 सुरक्षित रूप से यादृच्छिक रूप से उत्पन्न बाइट्स से बनी होती है। फिर पहले 0x2FFF00 बाइट्स को अंत में कॉपी किया जाता है, जिससे अंतिम 0xCFFF00 बाइट्स की क्लियरटेक्स्ट कुंजी बनती है।

फिर Hive फ़ाइलों को एन्क्रिप्ट करने के लिए दो उत्पन्न कुंजियों का उपयोग करता है, लेकिन सबसे पहले Hive ransomware v5 उत्पन्न कुंजियों को कस्टम संरचना (जिसे आगे कीस्ट्रीम कहा जाएगा) में एन्क्रिप्ट करता है और उन्हें .key एक्सटेंशन का उपयोग करके प्रत्येक ड्राइव के रूट में रखता है जिसे वह एन्क्रिप्ट करता है। उदाहरण के लिए, यदि आपके सिस्टम पर C और D दोनों ड्राइव स्थापित हैं, तो एन्क्रिप्टेड कीस्ट्रीम प्रत्येक ड्राइव के रूट में मौजूद होंगी।

Hive ransomware v5 फ़ाइलों को एन्क्रिप्ट करने के लिए XOR निर्देश का उपयोग करके उत्पन्न क्लियरटेक्स्ट कुंजियों का उपयोग करता है, इसलिए हम आधुनिक x86/x64 CPUs पर बहुत तेज़ सिमेट्रिक एन्क्रिप्शन का सामना कर रहे हैं।
Hive ransomware v5 को उत्पन्न क्लियरटेक्स्ट कुंजी को सुरक्षित रखने की आवश्यकता होती है, इसे दो बार एन्क्रिप्ट करके, आगे हम इन्हें राउंड कहेंगे। अंतिम कीस्ट्रीम प्राप्त करने के लिए एन्क्रिप्शन के दो राउंड लगते हैं।
इसे पूरा करने के लिए, प्रत्येक राउंड में निम्नलिखित चरण किए जाते हैं:
चरण 3 एक ऐसी कीस्ट्रीम के निर्माण की गारंटी देता है जिसे निजी कुंजियों की दोहरी जोड़ी द्वारा खोला जा सकता है, वे जो Hive द्वारा एन्क्रिप्शन के दौरान उत्पन्न की जाती हैं और वे जो Hive एफिलिएट ने रैंसमवेयर को हमारे लिए संकलित करते समय उत्पन्न की थीं।
