
Hive v5 file decryption algorithm
पिछले कुछ महीनों में किया गया कार्य Hive v5-5.2 के दुर्भावनापूर्ण फ़ाइल एन्क्रिप्शन तंत्र को उजागर करने के लिए आवश्यक रहा है। कार्य को दो भागों में विभाजित किया गया था
मैं महान @rivitna को इन महीनों के कार्य के लिए समर्थन, संवाद और सलाह के लिए धन्यवाद देना चाहता हूँ! कृपया rivitna's github पर ध्यान दें, जो Hive ransomware और अन्य के बारे में उपयोगी जानकारियों से भरा है।
इस readme में आपको फ़ाइल डिक्रिप्शन एल्गोरिदम के बारे में कुछ जानकारी मिलेगी, यह कैसे काम करता है इसकी अधिक संपूर्ण तस्वीर के लिए आपको PoC की ओर संदर्भित किया जा रहा है। एक keystream एक एन्क्रिप्टेड cleartext है। एक cleartext 0xA00000 बाइट्स का एक सेट है जिसमें पहले 0x2FFF00 बाइट्स जोड़े गए हैं, कुल 0xCFFF00 बाइट्स के लिए। ये बाइट्स कमजोर एल्गोरिदम के साथ बनाए गए थे जिनकी चर्चा जुलाई 2022 में जारी पहले भाग में पहले ही की जा चुकी है। नीचे cleartext का एक उदाहरण दिया गया है:

इस दस्तावेज़ में विश्लेषित और संदर्भित Hive नमूना इस सूची से चुना गया था, जिसे @rivitna द्वारा बनाया गया था, जिनके प्रति मेरा हार्दिक आभार है। Ransomware की जटिलता का अंदाजा लगाने के लिए, कृपया Microsoft Threat Intelligence Center (MSTIC) द्वारा प्रकाशित इस विश्लेषण पर एक नज़र डालें।
Cleartext (एक डिक्रिप्ट किया गया keystream) Hive ransomware द्वारा प्रत्येक फ़ाइल को एन्क्रिप्ट करते समय उपयोग किया जाता है। किसी फ़ाइल को एन्क्रिप्ट करते समय, Hive ransomware दो पूर्णांकों की गणना करता है जो cleartext में सटीक स्थितियों (offsets) को संदर्भित करते हैं, जिनका उपयोग निम्नलिखित सूत्र के अनुसार फ़ाइल को एन्क्रिप्ट करने के लिए किया जाता है:

जहाँ c = i % 0x2FFF00 और d = i % 0x2FFD00, i एक बाइट काउंटर है।
फ़ाइल लिखने से पहले की प्रारंभिक प्रक्रियाएँ हैं:

इस मामले में भी cleartext एक मौलिक भूमिका निभाता है। वास्तव में इसका उपयोग निम्न के लिए किया जाता है:

या यह मामला 0x7539D:

लेकिन अगले साक्ष्य में for loop थोड़ा अलग है और इसे इस तरह लिखा गया है कि जिस magic value को हमें पहचानने की आवश्यकता है उसे स्पष्ट न किया जाए। यह Hive 5.2 से संबंधित एक artifact से संबंधित है:

इस मामले में, जारी किए गए टूल में मौजूद offset bruteforce फ़ंक्शन का उपयोग करना संभव है, जिसमें ज्ञात एक्सटेंशन वाली फ़ाइल और संबंधित डिक्रिप्टेड keystream का उपयोग किया जाता है। एन्क्रिप्टेड फ़ाइल के हेडर और अनएन्क्रिप्टेड फ़ाइल के हेडर का उपयोग करके यह समझना संभव है कि वह offset क्या है जहाँ से डिक्रिप्टर को फ़ाइल डिक्रिप्ट करना शुरू करना चाहिए।
फ़ाइल एन्क्रिप्शन मोड के दो मान हो सकते हैं: 0xFB या 0xFF
प्रोग्राम दो विकल्प प्रदान करता है:

https://github.com/rivitna/Malware/blob/main/Hive/Hive_samples.txt