उदाहरण के द्वारा वायरस विश्लेषण - ट्रोजन-डाउनलोडर .in32.Zanoza.ab की खोज

क्या आपने कभी सोचा है कि एंटीवायरस कंपनियों द्वारा पकड़े गए वायरस का भाग्य क्या है? डेटाबेस में हस्ताक्षर जोड़ने से पहले ही उसके साथ क्या होता है? विशेष रूप से, वायरल विश्लेषण के बारे में। ऐसा लग सकता है कि वायरल विश्लेषण खुद करना मुश्किल, अनावश्यक और खतरनाक है, लेकिन वास्तव में यह पूरी तरह से गलत है। अतिरिक्त कौशल कभी भी चोट नहीं पहुंचाएगा, और यह उपयोगी है, कभी-कभी, लॉन्च से पहले यह देखने के लिए कि इंटरनेट से डाउनलोड की गई निष्पादन योग्य फ़ाइल क्या है। काम शुरू करने के लिए, किसी भी कोडांतरक ज्ञान, डिस्सेम्बलर के साथ डिबगर, और आपकी पसंद की एक आभासी मशीन काम करेगी।

विश्लेषण के लिए वायरस के नमूने, निश्चित रूप से, इंटरनेट पर स्वतंत्र रूप से खोजे जा सकते हैं, लेकिन शुरुआत के लिए हम एक अलग तरीके से जाएंगे। रेडी-टू- एनालिसिस वायरस का एक विशाल संग्रह vx.netlux.org पर पाया जा सकता है। पहला वायरस जिसने मेरा ध्यान आकर्षित किया, वह था ट्रोजन-डाउनलोडर .in32.Zanoza.ab। अब हम उसका सबसे विस्तृत विश्लेषण करेंगे। वैसे, वायरस के अच्छे विवरण सुरक्षित पहेली पर पाए जा सकते हैं।



आपकी आंख को पकड़ने वाली पहली चीज़ फ़ाइल का आकार है - केवल 1,901 बाइट्स। आप सोच सकते हैं कि छोटे आकार के कारण वायरस की सभी कार्यक्षमता पूर्ण दृश्य में दिखाई देगी, लेकिन चलो इसे जल्दी मत करो। किसी भी हेक्साडेसिमल संपादक में सुनिश्चित करें कि फ़ाइल एक विंडोज़ निष्पादन योग्य है (एमजेड और पीई हस्ताक्षर के अनुसार), और इसे किसी भी डिबगर-डिस्सेम्बलर में लोड करें। चित्र खुशी से नहीं खुलता:

छवि


इतना ही नहीं, सभी वर्गों और हेडरों को एक ढेर में एकत्र किया जाता है, लेकिन फ़ाइल स्पष्ट रूप से कुछ के साथ पैक की जाती है। तब आप दो तरह से जा सकते हैं। पहले एक प्रोग्राम को मैन्युअल रूप से ट्रेस किया जाता है जब तक कि एक प्रवेश बिंदु का पता नहीं लगाया जाता है और फिर इसे आगे डंप करें (यह शुरुआती के लिए अनुशंसित नहीं है)। दूसरा सरल एक प्रोग्राम पैकर को निर्धारित करने का प्रयास करना है और इसे स्वचालित रूप से अनपैक करना है। दूसरे रास्ते से चलते हैं। PIED में प्रोग्राम डाउनलोड करें:

छवि


हम भाग्यशाली थे कि PIED ने सफलतापूर्वक FSG पैकर की खोज की। किसी भी स्वचालित FSG अनपैकर को डाउनलोड करें और सुरक्षा की एक परत को सफलतापूर्वक हटा दें (उदाहरण के लिए, Unfsg2.0):

छवि


फिर से, प्रोग्राम को डिबगर-डिस्समेंबलर में लोड करें। हम सुरक्षा की एक और परत देखेंगे:

छवि


हां, टकटकी पूरी तरह से बकवास थी। हालाँकि, आप सुनिश्चित हो सकते हैं कि हम सही रास्ते पर हैं। यह काफी सामान्य निष्पादन योग्य कोड है, केवल थोड़ा सा अस्पष्ट है। और यह बुरी तरह से निषिद्ध है: चिकनी, कोड केवल एनओपी आदेशों के साथ पतला है जो कुछ भी नहीं करते हैं और reg और पॉप reg को धक्का देते हैं। थोड़ा नीचे स्क्रॉल करें और मुख्य डिक्रिप्शन चक्र देखें:

छवि


हम इस स्थान पर कार्यक्रम का पता लगाते हैं:

छवि


और हम पहले से ही पूरी तरह से डिक्रिप्टेड प्रोग्राम कोड प्राप्त करते हैं (कमांड के सही प्रदर्शन के लिए डिबगर विंडो को अपडेट करना न भूलें:

छवि


अब आपके पास उपलब्ध किसी भी उपकरण के साथ परिणामी डंप को हटा दें। अंत में, हमने कुछ वायरस कार्यक्षमता का पता लगाया:

छवि


यहीं से सीधा विश्लेषण शुरू होता है। सबसे पहले, जब लॉन्च किया जाता है, तो वायरस 0x401128 पर स्थित प्रक्रिया को कॉल करता है। यह अनुमान लगाना आसान है कि यह फ़ंक्शन निम्न सामग्री के साथ "c.bat" नामक एक बैच फ़ाइल बनाता है:

छवि


चलिए आगे बढ़ते हैं। बैट-फ़ाइल बनाने के बाद, प्रोग्राम इसे निष्पादन के लिए लॉन्च करता है। Chkdsk * .exe फ़ाइलों को हटाने का प्रयास करने का एक अंतहीन चक्र शुरू होता है, साथ ही मूल फ़ाइल, जिस पथ को ध्यान से कमांड लाइन पैरामीटर के माध्यम से स्क्रिप्ट में पारित किया गया था। हम स्क्रीन पर लगातार कई कंसोल विंडो देखेंगे। अब आता है मजेदार हिस्सा। वायरस एक निलंबित स्थिति में svhost.exe बच्चे की प्रक्रिया को जन्म देता है और इसमें 764 बाइट्स का एक कोड लिखता है, जो ऑफसेट 0x401180 पर शुरू होता है। जाहिर है, svhost.exe निष्पादन योग्य फ़ाइल को कुछ नहीं-तो-बुद्धिमान फायरवॉल और एंटीवायरस को बायपास करने के लिए चुना गया था, साथ ही साथ उपयोगकर्ता को गलती से चल रही वायरस प्रक्रिया को रोकने के लिए भी। वायरस कहाँ इंजेक्ट करता है? प्रोग्रामर ने बहुत अधिक तनाव नहीं करने का फैसला किया और बस निष्पादन योग्य फ़ाइल के प्रवेश बिंदु द्वारा इंगित कोड को फिर से लिखा। उसने वांछित पता कैसे निर्धारित किया? वायरस ने लोडहोल्डर.एक्स फ़ंक्शन के साथ भ्रष्ट रूप से अपने पते के स्थान में svhost.exe छवि को लोड किया। और उसके बाद, विंडोज निष्पादन योग्य फ़ाइल के मानक ऑफसेट द्वारा वांछित पते को निर्धारित करना पहले से ही आसान था (यह कोड अनुभाग 0x4010A6 - 0x4010AC के पते पर स्थित है)। इसलिए, इंजेक्शन पूरा हो गया और इस निष्पादन योग्य को केवल निलंबित svvhost.ex प्रक्रिया के लिए बैटन को पास करना पड़ा। सवाल उठता है, एक संक्रमित प्रक्रिया की जांच कैसे करें? आप निश्चित रूप से, वांछित कोड को मैन्युअल रूप से चुन सकते हैं और फिर अलग से इसका विश्लेषण कर सकते हैं, लेकिन एक ही समय में इसकी कार्यक्षमता और प्रदर्शन को बहुत नुकसान हो सकता है। मैंने लंबे समय तक नहीं सोचा और एक आभासी मशीन में यह सब चलाने का फैसला किया और svhost.exe को डंप कर दिया, जबकि यह चल रहा था। इसलिए, हम ResumeTread, Open ProcessExplorer को खोलने से पहले मुख्य कार्यक्रम का पता लगाते हैं:

छवि


और हमें उस प्रक्रिया की पीआईडी ​​मिल जाती है जिसकी हमें ज़रूरत है (सिद्धांत रूप में, डीबग में पीआईडी ​​का पता लगाना संभव था, लेकिन ओह अच्छी तरह से)। हम 10 में से 1356 का अनुवाद हेक्साडेसिमल प्रणाली में करते हैं, हमें 0x54C मिलता है। इसके बाद, लॉर्डपे शुरू करें और प्रक्रिया से डंप हटाने की कोशिश करें:

छवि


हम देखते हैं कि इस प्रक्रिया के लिए हमारे पास पर्याप्त अधिकार नहीं हैं क्योंकि इस तथ्य के कारण कि प्रक्रिया पहले से ही किसी अन्य प्रोग्राम द्वारा डीबग की जा रही है। क्योंकि चूंकि हम एक आभासी मशीन वातावरण में काम करते हैं, आप बस मुख्य कार्यक्रम को चलाना जारी रख सकते हैं, और फिर स्वतंत्र रूप से हमें उस डंप को हटा सकते हैं। ध्यान दें !!! इस कदम को अपने जोखिम और जोखिम पर किया जाता है !!! सब कुछ मेरे लिए अच्छा था, और मुझे एक संक्रमित svhost.exe फाइल मिली जो विश्लेषण के लिए तैयार थी:

छवि


हम फिर से डिक्रिप्शन साइकल देखते हैं:

XOR BYTE PTR DS: [EBX-5], 0xB1
INC EBX
LOOPD SHORT 0x100251D

यदि यह प्रोग्राम लॉन्च किया गया है, तो यह एक त्रुटि के साथ क्रैश हो जाएगा, क्योंकि कोड अनुभाग पर लिखना निषिद्ध है। थोड़ा सोचने दें: चूंकि ऑपरेशन के दौरान डंप को प्रक्रिया से हटा दिया गया था, डिक्रिप्शन चक्र पहले ही समाप्त हो गया है। और अब स्टार्टअप पर, प्रोग्राम पहले से ही एन्क्रिप्ट करने का प्रयास करेगा। हमें इसकी आवश्यकता नहीं है, इसलिए आगे के विश्लेषण के लिए हम संपूर्ण डिक्रिप्शन चक्र को भरेंगे। इस क्षण तक, हम पहले से ही बहुत प्रगति कर चुके हैं, क्या हम नहीं हैं? एक आभासी मशीन में आगे ट्रेस करें:

छवि


हम 0x10255C-0x1002587 पते पर स्थित एक चक्र देखते हैं। इसका उद्देश्य WinAPI कोड के संचालन के लिए महत्वपूर्ण कार्यों के पते निर्धारित करना है। नाम की तुलना स्वयं इस जगह होती है:

छवि


WinAPI फ़ंक्शन के आवश्यक पते निर्धारित करने के बाद, हमें सुरक्षा की एक और परत के साथ सामना करना पड़ता है। संक्रमित प्रोग्राम VirtualAlloc फ़ंक्शन को अतिरिक्त मेमोरी क्षेत्र आवंटित करने के लिए कहता है जिसमें दुर्भावनापूर्ण कोड की एक और परत की प्रतिलिपि बनाई जाती है, जिसे JMP EAX कमांड का उपयोग करके नियंत्रण का हस्तांतरण किया जाता है:

छवि


अंत में, वायरस की कार्यक्षमता ही हमारे सामने आई थी। दुर्भावनापूर्ण कोड URLDownlodToFile फ़ंक्शन का उपयोग करने के लिए मानक डायनेमिक लाइब्रेरी urlmon.dll को लोड करता है, जिसके बाद यह सीधे chkdsk * .exe फ़ाइलों को डाउनलोड करता है। यहाँ फ़ाइल अपलोड पल है:

छवि


यह वह जगह है जहाँ डाउनलोड की गई फ़ाइल निष्पादित होती है:

छवि


और यहां प्रक्रिया पूरी हो रही है:

छवि


हम आगे के विश्लेषण के लिए दिलचस्प लिंक भी नोट करते हैं:

00270204 68 74 74 70 3A 2F 2F 77 77 77E 2E 79 76 6F 6E 2D www.yvon-
00270214 70 75 62 6C 69 63 69 64 61 64 2E 63 6F 6D 2F 69 publicidad.com/i
00270 224 6D 61 67 65 73 2F 69 6D 61 67 65 73 2E 70 68 70 mages / images.pp
00270234 3F 77 3D 31 26 65 3 डी 32 00 68 74 74 70 3A 2F 2F? W = 1 & e = 2.http: //
00270 244 77 77 77 2E 79 76 6F 6E 2D 70 75 62 6C 69 63 69 www.yvon-publici
00270 254 64 61 64 2E 63 6F 6D 2F 69 6D 61 67 65 73 2F 69 dad.com/.com/ages/i
00270264 6D 61 67 65 73 2E 70 68 70 3F 77 3D 32 26 65 3D mages.php? W = 2 & e =?
00270274 32 00 68 74 74 70 3A 2F 2F 77 77 77E 2E 79 76 6F 2.http: //www.yvo
00270284 6E 2 डी 70 75 62 6C 69 63 69 64 61 64 2E 63 6F 6D n-publicidad.com
00270294 2F 69 6D 61 67 65 73 73 2F 69 6D 61 67 65 73 2E 70 /images/entages.p
002702A4 68 70 3F 77 3D 33 26 65 3D 32 00 68 74 70 3A hp? W = 3 & e = 2.http:
002702B4 2F 2F 77 77 77E 2 76 79 6F 6E 2D 70 75 62 6C 69 //www.yvon-publi
002702C4 63 69 64 61 64 2E 63 6F 6D 2F 69 6D 61 67 65 73 73 cidad.com/images
002702D4 2F 69 6D 61 67 65 73 2E 70 68 70 3F 77 3D 34 26 /images.php?w=4&

स्टॉक लेने का समय: विश्लेषण कार्यक्रम, उपयोगकर्ता के ज्ञान के बिना, इंटरनेट से अज्ञात सामग्री की फ़ाइलों को डाउनलोड करता है और उन्हें निष्पादन के लिए लॉन्च करता है। वास्तव में, यह वह सब है जो यह मैलवेयर कर सकता है, इसलिए इसे ट्रोजन-डाउनलोडर के रूप में वर्गीकृत किया जा सकता है। जैसा कि आप देख सकते हैं, मैलवेयर का विश्लेषण इतना जटिल नहीं निकला, हालांकि हमें बड़ी संख्या में सुरक्षा परतों का सामना करना पड़ा। आपके वायरल विश्लेषण के साथ शुभकामनाएँ!

Source: https://habr.com/ru/post/In126411/


All Articles