हैकर पत्रिका में प्रकाशित # 171 (अप्रैल 2013)
समय के साथ, साइबर दुर्भावनापूर्ण वातावरण में कुछ दुर्भावनापूर्ण कार्यक्रम मूल ब्रांड बन जाते हैं। एक नियम के रूप में, वे अन्य मैलवेयर की तुलना में व्यापक हैं और विभिन्न तकनीकी चिप्स का उपयोग करते हैं। इनमें सालिटी, कॉन्फिकर, वाल्डैक, ज़ीउस, टीडीएल और कई अन्य लोग शामिल हैं। कोई फर्क नहीं पड़ता कि एंटी-वायरस कंपनियां इस तरह के खतरों से कैसे लड़ती हैं, जैसा कि वे कहते हैं, कभी-कभी वे वापस आते हैं। आप हमलावरों को असंबद्ध नाम का उपयोग करने के तर्क से इनकार नहीं कर सकते। अगले "छोटे जानवरों" की कार्यक्षमता को पार्स करते हुए, आप अनजाने में खुद से सवाल पूछते हैं - यह सब कब शुरू हुआ? और यह पता चला है कि एक या दो साल पहले नहीं। ऐसा ही एक परिवार बाद में वर्णित किया जाएगा।
शुरुआतZeroAccess (उर्फ मैक्स ++) का इतिहास जून 2009 में शुरू हुआ। तब यह पाया गया था कि एक मैलवेयर सैंपल की खोज की गई थी जिसमें \\; \ Globalroot \ Device \ __ max ++> \ [8 अंक हेक्स कोड] .dll जैसे एक पथ का उपयोग किया गया था, और कर्नेल चालक में यह स्ट्रिंग "f: VC55 \ release \ ZeroAccess.pdb" था। । तो नाम ZeroAccess कॉपीराइट है। लेकिन, जैसा कि आप जानते हैं, कुछ एंटीवायरस विक्रेता लेखकों के विचार के अनुसार मालवेयर कॉलिंग का विरोध करते हैं, इसलिए MAX ++ को Smiscer और Sirefef के रूप में भी जाना जाता है। 2009 संस्करण win32k.sys: 1 और win32k.sys: 2 नाम के तहत NTFS फ़ाइल सिस्टम के वैकल्पिक धाराओं (वैकल्पिक डेटा स्ट्रीम - ADS) में अपने बाइनरी कोड को छिपाया था, जो सेवाओं में सिस्टम में पंजीकृत थे। इन फ़ाइलों में से पहला एक डिकॉय था, अगर एंटीवायरस सॉफ़्टवेयर ने इसे एक्सेस करने की कोशिश की, तो ज़ीरोएट ने तुरंत स्कैनिंग प्रक्रिया को समाप्त कर दिया। इसके बाद, ओएस की विशेष रूप से बनाई गई वस्तुओं को "मार" करने के लिए ट्रैकिंग तकनीकों का उपयोग एंटीवायरस इसकी विशिष्ट विशेषता बन गया।
स्टेपब्रथर TDL3जनवरी 2010 में, ZeroAccess के रचनाकारों ने अपने दिमाग की उपज का एक नया संस्करण वितरित करना शुरू किया। इसके लिए, Ecatel RBN के संसाधनों का उपयोग किया गया था। ZeroAccess के नए संस्करण की एक विशिष्ट विशेषता TDL3 विचारों का एक स्पष्ट उधार है, अर्थात्, एक ड्राइवर संक्रमण के माध्यम से लॉन्च करना और इसके घटकों के लिए छिपे हुए भंडारण का उपयोग करना।
सिस्टम पर इंस्टॉलेशन एक ड्रॉपर फ़ाइल के साथ शुरू हुआ, उदाहरण के लिए, keygen.exe नाम के साथ। सामान्य ऑपरेशन के लिए, प्रशासक के अधिकार आवश्यक थे, जो पसंदीदा खिलौने के लिए कीजन के रूप में भेस की स्थिति में एक विशेष समस्या नहीं थी। डिस्क पर स्थापित करते समय, कोई अस्थायी कार्यशील फ़ाइलें नहीं निकाली गईं, सभी जोड़-तोड़ मेमोरी में हुए। OS लोड करते समय शुरू करने के लिए, हमने ZwLoadDriver () फ़ंक्शन का उपयोग करके बूट विधि का उपयोग किया। सबसे पहले और सबसे महत्वपूर्ण, सिस्टम में मौजूद पीड़ित ड्राइवर को चुना गया, जो कई आवश्यक संकेतों के अंतर्गत आता है: ड्राइवर का नाम Ndis.sys से Win32k.sys तक होना चाहिए था, आकार 0x4C10 बाइट्स से अधिक होना चाहिए, IMAGE_OPTIONAL_HEADER-> निर्यात तालिका। NULL के लिए सेट है। ड्राइवर कुछ भी निर्यात नहीं करता है)। इसके अलावा, ड्राइवर को सिस्टम बूट होने पर शुरू नहीं करना चाहिए था, यह सेवा रजिस्ट्री शाखा में स्टार्ट फ्लैग (0 - लोड न करें) द्वारा चेक किया गया था। उपयुक्त ड्राइवर चुनना, SFC को अक्षम करने के बाद, ZeroAccess ने इसे पूरी तरह से अपने कोड के साथ फिर से लिखा। अगला, एक यादृच्छिक नाम और मापदंडों के साथ एक नई सेवा के बारे में एक रजिस्ट्री प्रविष्टि बनाई गई थी टाइप = 0x1, प्रारंभ = 0x3। चाल यह थी कि ImagePath को सेवा के लिए \ * पर सेट किया गया था, और ZwCreateSymbolicLinkObject () फ़ंक्शन का उपयोग करते हुए, फिर से लिखे गए ड्राइवर के लिए एक सिमिलर बनाया गया था। ZwLoadDriver () कॉल करके निर्दिष्ट सेवा शुरू हुई। लॉन्च किए गए रूटकिट को एक IoCreateDriver () OS ड्राइवर के रूप में कॉल किया गया था, जो कि डिस्क सबसिस्टम के मिनिपोर्ट ड्राइवर पैकेज के IRP स्तर पर I / O ऑपरेशन को बाधित करने के लिए था। इसके बाद, एक वर्चुअल डिवाइस निश्चित नाम \ _ \ _ C2CAD972 # 4079 # 4fd3 # A68D # AD34CC121074 के साथ बनाया गया था, जिसके लिए पहले बनाई गई स्टोरेज फ़ाइल%% \ config / "यादृच्छिक प्रतीकों" नाम के तहत मुहिम शुरू की गई थी। अब ड्रॉपर अपनी रिपॉजिटरी को वर्चुअल डिवाइस के जरिए एक्सेस कर सकता है। Fmifs.dll लाइब्रेरी फ़ंक्शंस का उपयोग करके एक संपीड़ित NTFS वॉल्यूम में स्टोरेज को फॉर्मेट करने के बाद, एक साफ ड्राइवर की कॉपी सहित अन्य सभी घटकों को वहां सहेजा गया था। फ़ाइल संरचना चित्र में दिखाई गई है।

रूटकिट फ़ंक्शन ओवरराइट ड्राइवर की सामग्री को छुपाने के लिए था, जब इसे पढ़ने की कोशिश कर रहा था, तो रूटकिट ने सहेजे गए स्रोत फ़ाइल को दिखाया। इसके अलावा, रूटकिट ने B48DADF8.sys इंजेक्टर की शुरूआत की, जिसने APC के माध्यम से ब्राउज़र के एड्रेस स्पेस में अधिकतम DLL .00.x86 नाम के साथ मुख्य DLL मॉड्यूल पेश किया। आप देख सकते हैं कि ऑपरेशन के दौरान डायरेक्ट स्टार्ट फ़ंक्शंस का उपयोग बिल्कुल नहीं किया जाता है, इसलिए प्रोएक्टिव एंटीवायरस प्रोटेक्शन ऑपरेशंस को ट्रिगर करने के लिए नहीं। मुख्य मॉड्यूल में कमांड सेंटर के साथ संवाद करने और खोज परिणामों को खराब करने के लिए उपयोगकर्ता को नकली एंटीवायरस (फ़ेकव) डाउनलोड करने की पेशकश करने वाले दुर्भावनापूर्ण साइटों पर पुनर्निर्देशित करने का कार्य था। कनेक्शन मापदंडों को CLSID के समान नाम वाले रिपॉजिटरी में फाइलों से लिया गया था, उदाहरण के लिए {49B474EB-92D0-464f-B1DD-1F37AABF9D95}। सिमेंटेक के अनुसार, 1 जुलाई, 2009 और 30 जून, 2010 के बीच, नकली एंटीवायरस के लगभग 43 मिलियन इंस्टॉलेशन का उत्पादन किया गया था। $ 30 से $ 100 तक ऐसे "उपहार" की लागत को देखते हुए, ऐसा प्रतीत होता है कि यह व्यवसाय काफी लाभदायक था।
ZeroAccess और TDL3 के बीच संबंधजनवरी 2010 में, एक संस्करण TDL3 परिवार में दिखाई दिया जिसमें पेलोड फ़ाइल को cmd.dll नहीं कहा गया था, लेकिन Z00clicker.dll। ऐसा लगता है, जहाँ शून्य है? बात यह है कि मैलवेयर के इस परिवार के संबंध में Z00clicker लाइन का बाद में कई बार उल्लेख किया गया था। सबसे पहले, अगस्त 2010 में, ZeroAccess के लिए Desktop.ini मॉड्यूल के वितरण का पता चला था। इस मॉड्यूल ने TDL रिपॉजिटरी से cfg.ini कॉन्फ़िगरेशन फ़ाइल और cmd.dll मॉड्यूल को हटाकर TDD3 (नवीनतम संस्करण, TDL4 जैसे नामों के साथ) के संचालन को अवरुद्ध कर दिया है (यदि TDL4 लक्ष्य था, तो cmd.dll को भी हटाना होगा)। एक दिलचस्प तथ्य, "किल टीडीएल" फ़ंक्शन के अलावा, Z00clicker2.dll मॉड्यूल का वितरण है, जिसे साइट विज़िट को बढ़ावा देने के लिए डिज़ाइन किया गया है। ZeroAccess के नवीनतम संस्करण में क्लिक धोखाधड़ी के लिए जिम्मेदार एक मॉड्यूल है, जो z00clicker3 नामक एक वर्ग बनाता है। तो उसके बाद सोचें, क्या ज़ीरोसेक और टीडीएल 3 के बीच कोई संबंध है या नहीं।
कुछ विशेषज्ञ, जैसे कि वेबरोट के प्रवक्ता जैक्स इरासमस, का कहना है कि टीडीएल 3 स्रोत कोड को ज़ीरोअसेबल डेवलपर्स को बेचा गया था। यह 2009 के अंत में हुआ - 2010 की शुरुआत। तो यह संभव है कि TD003 संस्करण Z00clicker.dll और ZeroAcess के साथ TDL3 स्रोत कोड के आधार पर तीसरे पक्ष के विकास के परिणाम हैं। वहीं, कास्परस्की लैब के कर्मचारियों का कहना है कि TDL3 और ZeroAcess के बीच कोई संबंध नहीं है। उनके अनुसार, बल्कि, हम रिवर्स इंजीनियरिंग और TDL3 से उधार विचारों के बारे में बात कर सकते हैं।
2011 में, एक अद्यतन संस्करण दिखाई दिया। रूटकिट को लोड करने के लिए, मामूली बदलाव के साथ ZwLoadDriver () के माध्यम से एक ही प्रारंभ विधि का उपयोग किया गया था। अब ड्राइवरों को classpnp.sys से win32k.sys तक की श्रेणी में चुना गया था, जिसका आकार 0x7410 से अधिक है। ड्रॉपर कोड में, 64-बिट वातावरण में निष्पादन के लिए एक चेक था, इस मामले में, निष्पादन तुरंत पूरा हो गया था। रिपॉजिटरी तक पहुंचने के लिए डिवाइस का नाम फॉर्म \\ का था? \ ACPI # PNP0303 # 2 & da1a3ff & 0 (यह रिलीज से रिलीज में बदल सकता है)। इस समय 16% आकार में% मेगाबाइट्स की स्टोरेज फाइल% \ config \ [रैंडम सिंबल] संपीड़ित नहीं थी, लेकिन 128-बिट स्टैटिक की RC4 के साथ एन्क्रिप्टेड थी, स्टोरेज में मौजूद फाइलों को एक्सेस करने पर रूटकिट ड्राइवर द्वारा डिक्रिप्शन को फ्लाई पर प्रदर्शित किया गया था। एक स्पष्ट मॉड्यूलर संरचना दिखाई दी है,

दूरस्थ सर्वर से मॉड्यूल लोड किए गए थे। कमांड सेंटर के साथ संवाद करने के लिए, पोर्ट 13620 पर एक कनेक्शन स्थापित किया गया था। अनुरोधों और प्रतिक्रियाओं को एन्क्रिप्टेड रूप में प्रेषित किया गया था।
X64 और आत्मरक्षा के गुर में काम करेंअप्रैल 2011 तक, OS के 64-बिट संस्करण ZeroAccess से संक्रमित नहीं थे। मई में, इस कष्टप्रद चूक को सही किया गया था, लेकिन यह कहने के लिए नहीं कि यह बहुत ही तकनीकी होगा। तथ्य यह है कि x86 के लिए ऑपरेशन एल्गोरिथ्म पिछले संस्करण के समान था और रूटकिट कर्नेल स्तर पर काम करता था। इसके विपरीत, x64 पर, सब कुछ ने वरमोड में काम किया।
जैसा कि आप जानते हैं, विंडोज में, विस्टा से शुरू होकर, यूएसी दिखाई दिया - सिस्टम का एक घटक जो उन कार्यों की पुष्टि के लिए पूछता है जिनके लिए व्यवस्थापक अधिकारों की आवश्यकता होती है। UAC, बेशक, विंडोज सुरक्षा के स्तर को थोड़ा बढ़ा दिया, लेकिन, हमेशा की तरह, दुष्ट हैकरों ने सब कुछ बर्बाद कर दिया। UAC में, कई सिस्टम प्रोग्राम, जैसे कि भरोसेमंद वाले (उदाहरण के लिए, explorer.exe), हार्ड-कोडित हैं, इसलिए अन्य अनुप्रयोगों के लिए ट्रिगर कोड डिफ़ॉल्ट रूप से कॉन्फ़िगर किए जाने पर उनके लिए काम नहीं करता है। सिस्टम में अपने विशेषाधिकारों को प्रशासक स्तर तक बढ़ाने के लिए ड्रॉपर ZeroAccess में इस सुविधा का उपयोग किया गया था, जबकि UAC विंडो को उपयोगकर्ता को नहीं दिखाया गया था (यह बग समय के साथ तय किया गया था)।
HTTP HOST अनुरोध हेडर में ट्रैफिक मॉनिटरिंग टूल्स को बायपास करने के लिए, .cn ज़ोन में उत्पन्न डोमेन नाम, जो डोमेन जेनरेटर अल्गोरिथम (DGA) की मदद से उत्पन्न होता है, का उपयोग किया गया था; यह वास्तव में DNS सर्वरों के लिए हल नहीं होता है। अमान्य HOST शीर्ष लेख के साथ अनुरोध के जवाब में, सर्वर ने एक खाली प्रतिक्रिया दी। अर्थात्, सर्वर ने उसी तरह से मूल्य उत्पन्न किया और इसकी तुलना बॉट से हुई। ये क्रियाएं एक तरह की छद्म प्रमाणीकरण प्रणाली थीं, जो सर्वर की रक्षा करती थीं, उदाहरण के लिए, खोज रोबोट द्वारा स्कैनिंग से।
चूंकि x86 के लिए इंस्टॉलेशन प्रक्रिया पहले से ही वर्णित है (ड्राइवर संक्रमण), हम इस पर ध्यान केंद्रित नहीं करेंगे। यह जुलाई में भंडारण प्रारूप में अगले बदलाव को ध्यान देने योग्य है, अब यह एक फाइल नहीं थी, लेकिन फॉर्म सी: \ WINDOWS \ $ NtUninstallKBxxxxx $ की एक निर्देशिका, जहां xxxxx 5 जनरेट किए गए अंक हैं। यह नाम विंडोज ओएस को अपडेट करने के लिए कार्य निर्देशिका के रूप में इसे छिपाने के लिए चुना गया था। $ NtUninstallKBxxxxx $ से% systemroot% \ system32 \ config से प्रतीकात्मक लिंक बनाकर, साथ ही साथ ACL नियम सेट करके उस तक पहुँच को रोक दिया गया। निर्देशिका के अंदर प्रत्येक फ़ाइल को RC4 के साथ एन्क्रिप्ट किया गया था, कुंजी को कोड में परिभाषित नहीं किया गया था, लेकिन कुछ ओएस मापदंडों का उपयोग करके उत्पन्न किया गया था।
इंटरनेट से डाउनलोड करने योग्य घटकों का संक्षिप्त विवरण:
@ 00000001 - ड्रॉपर की बैकअप प्रतिलिपि;
@ 80000000 - ट्रैकिंग मॉड्यूल, जिसे संक्रमण के आँकड़े एकत्र करने के लिए डिज़ाइन किया गया है, संक्रमित सिस्टम के बारे में जानकारी counter.yadro.ru को भेजी गई थी;
@ 800000c0 - WinSocks कार्यों को रोकने के लिए एक नकली mswsock.dll पुस्तकालय, निगरानी ने उन्हें एफ़टीपी पासवर्ड और लॉगिन चोरी करने की अनुमति दी, साथ ही साथ HTML पृष्ठों में जावास्क्रिप्ट को लागू किया गया;
@ 000000c0 - मॉड्यूल खोज क्वेरी को जारी करने के लिए जावास्क्रिप्ट को लागू करता है और एफ़टीपी खातों के डेटा को रिमोट सर्वर पर भेजता है;
@ 800000cb - मॉड्यूल svchost.exe में लागू किया गया है और ट्रैफ़िक बढ़ाने के लिए उपयोग किया जाता है (धोखाधड़ी पर क्लिक करें);
@ 800000cf - कमांड सेंटर के साथ संचार के लिए एक मॉड्यूल, winlogon.exe में लागू किया गया है, और फिर कंप्यूटर पर स्थापित ब्राउज़र में। ब्राउज़र के एड्रेस स्पेस में, कोड निष्पादित किया जाता है जो निर्धारित आईपी पते पर संचार करता है और कमांड सेंटर के साथ 13620 पोर्ट करता है। IP सूची CLSID के समान नाम वाली फ़ाइल में है।
X64 मोड में, कोई नवाचार नहीं देखा गया था। बूट मॉड्यूल को% windir% \ system32 \ consrv.dll के रूप में सहेजा गया था, रजिस्ट्री शाखा HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Session Manager \ SubSystems को इसे शुरू करने के लिए संपादित किया गया था, स्ट्रिंग "consrv: ConServerDllInitialization" को "विंडोज" के मान में डाला गया था। अपनी फ़ाइलों को मास्क करने के लिए, $ Windir \ असेंबली प्रकार की ग्लोबल असेंबली कैश (GAC) सिस्टम डायरेक्टरी को स्टोरेज के रूप में इस्तेमाल किया गया था, जो कि .Net घटकों को प्रदर्शित करने के लिए उपयोग किया जाता है और एक्सप्लोरर में इसकी सामग्री को सीधे प्रदर्शित नहीं करता है, जो FAR और TotalCommander में रोल नहीं करता है। भंडारण के लिए, $ Windir \ विधानसभा \ tmp निर्देशिका बनाई गई थी, जहां मॉड्यूल एन्क्रिप्टेड रूप में स्थित थे।
ZeroAccess के इस संस्करण की एक दिलचस्प विशेषता एंटीवायरिरस को तोड़ने के लिए लाइव चारा के लिए मछली पकड़ने का उपयोग है। अपने मुख्य रूटकिट ड्राइवर के अलावा, ज़ीरोएसेक के पास "चारा" बनाने के लिए एक अतिरिक्त कर्नेल ड्राइवर था - एक ऐसी वस्तु जिसे एंटी-वायरस सुरक्षा उपकरण पेकिंग कर रहे थे। इस ड्राइवर ने डिवाइस \ Device \ svchost.exe बनाया और नकली PE फ़ाइल को \ Device \ svchost.exe \ svchost.exe के रूप में सहेजा, जिस पर रूटकिट द्वारा निगरानी की गई थी। यदि किसी भी एप्लिकेशन ने इसे एक्सेस करने की कोशिश की, तो ज़ीरोएसेट ने इसे तुरंत समाप्त कर दिया। आवेदन के प्रवाह को पूरा करने के लिए, एक्सिटप्रोसेस () नामक कोड के लगभग दो सौ बाइट्स को एपीसी विधि का उपयोग करके इसमें इंजेक्ट किया गया था। लेकिन यह सब नहीं था, इसके निष्पादन योग्य फ़ाइल ZeroAccess के ACL एक्सेस नियमों को रीसेट करने के लिए जो कि फ़ाइल को पढ़ने और निष्पादित करने की अनुमति देता है, पूर्ण अनुप्रयोग के बाद के लॉन्च को रोकने के लिए। इस प्रकार, एक बार हुक पर पकड़े जाने के बाद, एंटीवायरस अब शुरू नहीं हो सकता है।
P2P दे दो!उत्तरजीविता बढ़ाने के लिए, डेवलपर्स ने विभिन्न चाल का उपयोग करना शुरू कर दिया। मुख्य जोर किसी भी एक्सेस अधिकारों के साथ ज़ीरोअटैक्ट के काम करने की क्षमता पर था, साथ ही कमांड सेंटरों को अवरुद्ध करने के लिए प्रतिक्रिया। जब विंडोज विस्टा / सेवन में लॉन्च किया गया था, तो इसके अधिकारों को ऊंचा करने का प्रयास किया गया था। चूंकि explorer.exe में इंजेक्शन के माध्यम से UAC को दरकिनार करने के साथ बग को ठीक किया गया था, अधिकारों को बढ़ाने के लिए अपहरण DLL का उपयोग किया गया था, इसका सार यह है कि OS पहले वर्तमान निर्देशिका में आवश्यक DLL की तलाश करता है, और फिर सिस्टम में, इसलिए एक DLL को वैध प्रोग्राम के नाम से रखना। जो आयातित पुस्तकालयों में से एक के नाम से मेल खाता है, दुर्भावनापूर्ण कोड लॉन्च करना संभव है। इस विधि को ड्रॉपर पर लागू करने के लिए, एम्बेडेड CAB फ़ाइल में,

fp.exe फ़ाइल मौजूद थी। यह एक डिजिटल हस्ताक्षर VeriSign से लैस एडोब फ्लैश प्लेयर के लिए एक कानूनी ऑनलाइन इंस्टॉलर था। इंस्टॉलर को अस्थायी निर्देशिका में FlashPlayerInstaller.exe नाम के तहत सहेजा गया था, msimg32.dll फ़ाइल, जिसका नाम आयातित DLL में से एक के साथ मेल खाता है, पहले उसी निर्देशिका में रखा गया था।
X86 मोड रूटकिट, पहले की तरह, सिस्टम में ट्रैप सेट करता है। अब यह एक ऐसी सेवा थी जो \ systemroot \ 3439254774: 153289011.exe फ़ाइल को चलाती थी, जबकि 3439254774 फ़ाइल शून्य आकार की थी, और 153289011.exe ADS में संग्रहीत की गई थी और इसे wsc32 से लिया गया था।
विंडोज विस्टा / सात 64-बिट मोड में, यदि आपके पास व्यवस्थापक अधिकार हैं, तो consrv.dll और $ windir \ Assembly वाली योजना का उपयोग किया गया था। यदि ऐसे कोई अधिकार नहीं थे, तो यह XP के वातावरण में घातक नहीं था। वास्तव में, सबसे महत्वपूर्ण नवाचार "एक्स" फाइल है, जो अपने मॉड्यूल को वितरित करने के लिए टीसीपी प्रोटोकॉल के आधार पर पी 2 पी को लागू करता है, साथ ही साथ "@", "यू" और "एल" निर्देशिकाओं के साथ बूटस्ट्रैप सूची उपयोगकर्ता के साथ रिकॉर्डिंग के लिए सुलभ स्थानों में स्थित थी। अधिकार:
XP -% UserProfile% \ Application Data \ [8 अंक हेक्स कोड];
विस्टा / सात -% UserProfile% \ AppData \ Local \ [8 अंक हेक्स कोड]।
मैलवेयर की सेवा में पी 2 पी तकनीकपी 2 पी का उपयोग करना आपको बॉटनेट के लिए नियंत्रण केंद्र की अवधारणा को पूरी तरह से त्यागने की अनुमति देता है, किसी भी संक्रमित कंप्यूटर से बॉट के नए संस्करणों का प्रबंधन या वितरण किया जा सकता है। पी 2 पी (पीयर-टू-पीयर, पीयर-टू-पीयर नेटवर्क) में बड़ी संख्या में कंप्यूटर होते हैं, जिनमें से प्रत्येक में ऐसे अन्य कंप्यूटरों के बारे में कुछ जानकारी होती है, विशेष रूप से आईपी पते। कई ऐसे कंप्यूटरों (पीयर, पीयर, नोड्स, नोड्स) की एक सूची को बूटस्ट्रैप सूची (प्रारंभिक प्रारंभिक सूची) कहा जाता है। इस सूची के आधार पर, आंशिक रूप से विकेंद्रीकृत और पूरी तरह से विकेन्द्रीकृत पी 2 पी नेटवर्क प्रतिष्ठित हैं।
आंशिक रूप से विकेन्द्रीकृत पी 2 पी नेटवर्क को पहले से ज्ञात सर्वर से बूटस्ट्रैप सूची लोड करने की आवश्यकता होती है, इसलिए uTorrrent काम करता है। ऐसी प्रणाली में एक कमजोर बिंदु है - यह बूटस्ट्रैप सूची वाले सर्वर तक पहुंच को अवरुद्ध करने के लिए पर्याप्त है। इसलिए, मैलवेयर अक्सर पूरी तरह से विकेंद्रीकृत योजना का उपयोग करता है। मैलवेयर के लिए एक पूरी तरह से विकेन्द्रीकृत पी 2 पी नेटवर्क का अर्थ है कि वितरण दो चरणों में होगा। पहले चरण में, एक बॉट को खाली बूटस्ट्रैप सूची या किसी भी पी 2 पी फ़ंक्शन के साथ वितरित नहीं किया जाता है, यह समय-समय पर कमांड सेंटर को कॉल करता है, जो बॉट के आईपी पते को ठीक करता है। आईपी पते के अलावा, बॉटनेट ऑपरेटर्स यह जानकारी रखने में रुचि रखते हैं कि क्या बॉट एक गेटवे या फ़ायरवॉल के पीछे स्थित है। यदि यह मामला नहीं है, तो बॉट एक सुपर पीयर (सुपर पीयर, सुपर नोड) के रूप में कार्य कर सकता है, अर्थात, अन्य पीयर इससे जुड़ सकते हैं। जैसे ही सुपर-पीयर की आवश्यक संख्या एकत्र की जाती है, उनकी सूची को बूटस्ट्रैप सूची में दर्ज किया जाता है, और इसके साथ बॉट का एक नया संस्करण हमलावरों द्वारा फैलाना शुरू कर देता है। वितरण के बाद, सभी बॉट अपने पड़ोसियों के बारे में जानकारी का आदान-प्रदान करते हैं और अपनी खुद की बूटस्ट्रैप सूची बनाते हैं। परिणाम एक पी 2 पी नेटवर्क है। यह निश्चित संख्या में बॉट के लापता होने के लिए प्रतिरोधी है, क्योंकि पड़ोसियों की सूची लगातार बदल रही है। एक्सचेंज के दौरान, बॉट अपने संस्करण के बारे में जानकारी का भी आदान-प्रदान करते हैं। यदि बॉट यह पता लगाता है कि यह या इसके मॉड्यूल "आउट ऑफ डेट" हैं, तो पड़ोसियों में से एक से एक नया संस्करण डाउनलोड किया जाता है। डाउनलोड करते समय, एक नियम के रूप में, "एक्सट्रॉनल" फ़ाइलों के वितरण की संभावना को बाहर करने के लिए फ़ाइल के डिजिटल हस्ताक्षर की जांच की जाती है। इस प्रकार, पी 2 पी में सभी बॉट खुद को अद्यतित रखते हैं।
"X" फ़ाइल का लॉन्च HKEY_CURRENT_USER \ Software \ Microsoft \ Windows NT \ CurrentVersion \ Winlogon शाखा के शेल पैरामीटर में पंजीकृत किया गया था। इस प्रकार, ZeroAccess के कामकाज को सीमित अधिकारों के साथ एक खाते के तहत समर्थन किया गया था, यहां तक कि रूटकिट कार्यों के बिना।
सोफोस के अनुसार, पी 2 पी टीसीपी-आधारित संस्करण का सक्रिय वितरण सितंबर-नवंबर 2011 में शुरू हुआ, जबकि पहले नमूने जुलाई के अंत में दिखाई दिए। एंटी-वायरस विश्लेषकों ने ध्यान दिया कि इस संस्करण ने दो मुख्य प्रकार के पेलोड डाउनलोड किए - धोखाधड़ी और स्पंबोट पर क्लिक करें, जो कि इस्तेमाल किए गए बंदरगाहों (क्रमशः 21810, 22292 और 34354, 34355) द्वारा पहचानना आसान है।
बूटस्ट्रैप सूची में 256 आईपी पता मूल्य थे, जिनमें से प्रत्येक के लिए अंतिम कॉल का टाइमस्टैम्प (POSIX) इंगित किया गया था। सभी पी 2 पी नेटवर्क पैकेटों को आरसी 4 एल्गोरिथ्म का उपयोग करके एक स्थैतिक कुंजी के साथ एन्क्रिप्ट किया गया था।
निम्न प्रकार के आदेशों का समर्थन किया गया था:
"गेटएल" - बूटस्ट्रैप सूची प्राप्त करने का अनुरोध;
"रिट्ल" बूटस्ट्रैप सूची की सामग्री के साथ प्रतिक्रिया है;
"गेटफ़" - एक फ़ाइल के लिए एक अनुरोध;
"सेटएफ" - फ़ाइल की सामग्री के साथ प्रतिक्रिया;
"Srv?" - फ़ाइलों की सूची के लिए एक अनुरोध।
वैसे, कमांड का प्रकार एक स्ट्रिंग नहीं है, लेकिन एक 4 बाइट शब्द है, उनकी तुलना करना आसान है। 8 एचईएक्स वर्णों के मॉड्यूल फ़ाइल नाम को 4 बाइट्स के साथ एन्कोड किया गया था।
वर्तमान बूटस्ट्रैप सूची में प्रत्येक नोड के लिए, एक गेटएल कमांड भेजा गया था। दूरस्थ कंप्यूटर को "retL" कमांड के साथ प्रतिक्रिया करनी चाहिए और अपनी बूटस्ट्रैप सूची को अग्रेषित करना चाहिए।
परिणामी सूची, वर्तमान के आधार पर बनाई गई और भेजी गई, वर्तमान समय के निकटतम पहुंच समय के साथ नोड्स थे। "Srv?" अनुरोध के जवाब में, फ़ाइलों की एक सूची भेजी गई थी, सूची में प्रत्येक प्रविष्टि में दो फ़ील्ड शामिल थे: फ़ाइल का नाम 4 बाइट्स और फ़ाइल बनाने के लिए टाइमस्टैम्प। जब "ताजा" फाइलें मिलीं, तो उन्हें "गेटएफ", "सेटएफ" कमांड से अपडेट किया गया। प्रत्येक लोड करने योग्य मॉड्यूल में "33333" संसाधन होना चाहिए, जिसमें 512-बिट कुंजी के साथ एक डिजिटल हस्ताक्षर आरएसए होगा। फ़ाइल चलाने से पहले हस्ताक्षर को सत्यापित किया गया था।पी 2 पी प्रोटोकॉल में कुछ कार्यान्वयन दोष थे। मौजूदा समय की तुलना में ज्ञात उच्च टाइमस्टैम्प मूल्य के साथ 256 आईपी की बूटस्ट्रैप सूची का गठन करने के बाद, सभी नोड्स की बूटस्ट्रैप सूची को "जहर" करना संभव था, जिससे पी 2 पी नेटवर्क पर मॉड्यूल वितरित करना असंभव हो जाएगा। यदि आप रिपॉजिटरी में एक मनमानी फ़ाइल डालते हैं (ध्यान दें - फ़ाइल के time_field संरचना में मिलीसेकंड फ़ील्ड का मूल्य शून्य के बराबर होना चाहिए), इसे दूरस्थ साथियों द्वारा पंप किया गया था, हालांकि हस्ताक्षर सत्यापन के कारण इसका प्रक्षेपण असंभव था। इसने आपको नेटवर्क पर एक लोड बनाने की अनुमति दी और इस तरह कंप्यूटर पर असामान्य नेटवर्क ट्रैफ़िक पर ध्यान दिया और आगे जीरोऑक का पता लगाने और हटाने के साथ। इन दोषों को अगले पी 2 पी कार्यान्वयन में ठीक किया गया था।एक पेन के साथ अपने रूटकिट को वेव करेंमई 2012 - वह समय जब ज़ीरोएक्सेट में एक कर्नेल-स्तरीय ड्राइवर शामिल था, अब सभी काम खरपतवार में किया गया था। CAB फ़ाइल की सामग्री को देखते हुए, आप पा सकते हैं कि इसमें से rtk32 और rtk64 घटक गायब हो गए हैं, लेकिन w32, w64, e32, e64 को जोड़ा गया है।
कोई रूटकिट घटक नहीं है, क्रमशः, इस संस्करण में विंडोज ड्राइवर को अधिलेखित नहीं किया जाता है, सिस्टम बूट होने पर शुरू करने के लिए, दो तरीकों में से एक का उपयोग किया जा सकता है - COM अपहरण तकनीक, जो सिस्टम रजिस्ट्री का उपयोग करता है, और सेवाओं का संशोधन फ़ाइल।COM हाइजैकिंग का उपयोग करते हुए, "n" (n32 या n64) नाम की एक फ़ाइल, जो पी 2 पी नेटवर्क के संचालन के लिए जिम्मेदार है, निष्पादन के लिए लॉन्च की गई है। एक ड्रॉपर निम्नलिखित दो स्थानों में दो समान "एन" फाइलें बनाता है:% विंडिर% \ इंस्टॉलर \ [यूआईडी];% UserProfile% \ local settings \ application data \ [UID] (XP और नीचे के लिए) या% UserProfile% \ AppData \ Local \ [UID] (विस्टा और ऊपर के लिए)।यहां UID, MD5 हैश के आधार पर ड्रॉपर द्वारा उत्पन्न की गई वैल्यू है, जब सिस्टम डिस्क बनाया गया था और CLSID जैसा दिखने के लिए स्वरूपित किया गया था, उदाहरण के लिए {e051c979-bddd-5d1f-8953-4b8c940e9b4d}। उपनिर्देशिका "यू" (अतिरिक्त मॉड्यूल के लिए) और "एल" (अस्थायी फ़ाइलों के लिए), साथ ही फ़ाइल "@" (s32 या s64) भी इन निर्देशिकाओं में बनाई गई हैं।एक "एन" फ़ाइल WMI के साथ जुड़े हाइजैकिंग COM ऑब्जेक्ट का उपयोग करती है, और निम्न रजिस्ट्री कुंजी संशोधित है: HKCR \ CLSID \ {F3130CDB-AA52-4C3A-AB32-85FFC23AF9C1_ \ InprocServer32।एक अन्य फ़ाइल "n" COM को चलाने के लिए शाखा में ऑब्जेक्ट का उपयोग करती है:HKCU \ Software \ Classes \ clsid \ {42aedc87-2188-41fd-b9a3-0c966feabec1}।Services.exe फ़ाइल का संशोधन एक दिलचस्प तरीके से किया गया था: एक छोटा शेल कोड (w32 या w64) फ़ाइल में डाला गया था, जो कि ZwQueryEaFile () फ़ंक्शन को कॉल करके, माल्ड कोड (e32 या e64) के "पूंछ" को लोड किया गया था जो पहले से ही विस्तारित ZwSetEaFile का उपयोग करके सहेजा गया था। ()। E32 और e64 घटकों में PE फ़ाइलों की कार्यक्षमता n32 और n64 के समान थी।बाद के संस्करण C: $ Recycle.Bin या C: \ RECYCLER के अंदर अपनी फ़ाइलें छिपाते हैं ,
जहाँ कंप्यूटर उपयोगकर्ता के CLSID के नाम के साथ एक निर्देशिका बनाई गई थी। यदि व्यवस्थापक अधिकार थे, तो CLSID S-1-5-18 (LOCAL_SYSTEM) के साथ एक और निर्देशिका बनाई गई थी। अंदर, वर्तमान समय के एमडी 5 हैशिंग द्वारा एक यादृच्छिक नाम के साथ एक उपनिर्देशिका बनाई गई थी। "N" फ़ाइल की दो प्रतियों में से प्रत्येक को शुरू करने के लिए, निम्न COM ऑब्जेक्ट बनाए गए थे:HKCU \ Software \ Classes \ clsid \ {fbeb8a05-beee-4442-804e-409d6c4515e9} - सीमित अधिकारों वाले उपयोगकर्ता के लिए;HKCR \ CLSID \ {5839FCA9-774D-42A1-ACDA-D6A79037F57F} - व्यवस्थापक अधिकारों वाले उपयोगकर्ता के लिए।पी 2 पी नेटवर्क ऑपरेशन एल्गोरिथ्म में कुछ बदलाव हुए हैं। ओएस बिट के आधार पर विभिन्न बंदरगाहों का उपयोग किया गया था: x 64 के लिए 16464 और 16470, x64 के लिए 16465 और 16471। इस प्रकार, 4 स्वतंत्र पी 2 पी नेटवर्क आयोजित किए गए थे, जिनमें से प्रत्येक ने अपनी आरएसए कुंजी का उपयोग किया था, जिसकी लंबाई 512 से 1024 बिट्स तक बढ़ गई थी। पहले की तरह, पेलोड के प्रकार से अलगाव था, पोर्ट 16464 और 16465 पर क्लिक फ्रॉड पेलोड, 16470 और 16471 - बिटकॉइन माइनर पेलोड के साथ रिलीज का उपयोग किया गया था।यदि पहले पी 2 पी केवल टीसीपी का उपयोग करता था, तो अब आईपी पते की सूची को यूडीपी के माध्यम से अनुरोध किया गया था, और टीसीपी द्वारा फाइलों (मॉड्यूल) की सूची। "रिट्ल" कमांड अब अपने बूटस्ट्रैप सूची से केवल 16 मान लौटाता है (बूटस्ट्रैप सूची के "विषाक्तता" का प्रतिकार), उपलब्ध मॉड्यूल के बारे में जानकारी उसी डेटा ब्लॉक में प्रेषित की गई थी। बूटस्ट्रैप सूची ने अब टाइमस्टैम्प के पूर्ण मूल्य का संकेत नहीं दिया है, लेकिन वर्तमान समय और अंतिम कॉल के समय के बीच का अंतर। उपयोग किए गए मॉड्यूल के बारे में जानकारी हेडर के रूप में प्रेषित की गई थी, जिसमें फ़ील्ड फ़ाइल नाम, टाइमस्टैम्प, आकार शामिल थे। हेडर से एक डिजिटल हस्ताक्षर संलग्न था (हमलावरों की निजी कुंजी के साथ एन्क्रिप्टेड MD5 हैश)। विस्तारित जाँच फ़ाइल में लोड करने और संग्रहीत करने के लिए हस्ताक्षर की जाँच की गई थी। इस तरह सेबाहरी स्तर पर हस्तक्षेप के खिलाफ क्रिप्टोग्राफिक सुरक्षा दोनों सामग्री स्तर (पिछले संस्करण में, "33333" एक डिजिटल हस्ताक्षर युक्त संसाधन) और नाम, निर्माण तिथि और फ़ाइल आकार के स्तर पर उपलब्ध था। ट्रांसमिशन के दौरान फ़ाइल को RC4 कुंजी के साथ एन्क्रिप्ट किया गया था। बूटस्ट्रैप सूची में परिवर्तन के लिए मजबूर करने के लिए, न्यूएल कमांड पेश किया गया था, जिसका इस्तेमाल तब किया जा सकता था जब सिंकहो डिटेक्टरों ने यथास्थिति बहाल करने के लिए सहकर्मी सूची में एक एंटी-वायरस कंपनी का पता लगाया था। पिछले संस्करण के पी 2 पी कार्यान्वयन से इन सभी अंतरों को बॉटनेट को बाधित करने की क्षमता को खत्म करने के लिए डिज़ाइन किया गया था।जिसका उपयोग तब किया जा सकता है जब एक सिंकहोल, यथास्थिति को बहाल करने के लिए सहकर्मी सूची में एक एंटीवायरस कंपनी का पता लगाता है। पिछले संस्करण के पी 2 पी कार्यान्वयन से इन सभी अंतरों को बॉटनेट को बाधित करने की क्षमता को खत्म करने के लिए डिज़ाइन किया गया था।जिसका उपयोग तब किया जा सकता है जब एक सिंकहोल, यथास्थिति को बहाल करने के लिए सहकर्मी सूची में एक एंटीवायरस कंपनी का पता लगाता है। पिछले संस्करण के पी 2 पी कार्यान्वयन से इन सभी अंतरों को बॉटनेट को बाधित करने की क्षमता को खत्म करने के लिए डिज़ाइन किया गया था।डाउनलोड करने योग्य मॉड्यूल की संरचना विभिन्न संस्करणों के लिए भिन्न होती है। उदाहरण के लिए, 16464 के पी 2 पी पोर्ट के साथ क्लिक धोखाधड़ी का एक संस्करण आमतौर पर तीन फाइलें डाउनलोड करता है:800000cb। @ - धोखाधड़ी मॉड्यूल पर क्लिक करें, z00clicker3 नाम के साथ एक वर्ग पंजीकृत करता है;00000001. @ - dll संसाधनों के भंडारण के रूप में उपयोग किया जाता है (800000cb के लिए डेटा @);80000000. @ - ट्रैकिंग मॉड्यूल, जिसे संक्रमण के आँकड़े एकत्र करने के लिए डिज़ाइन किया गया है, संक्रमित सिस्टम के बारे में जानकारी livecounter.co/count.php पर भेजी जाती है।बिटकॉइन माइनर संस्करण ने मॉड्यूल के थोड़ा अलग सेट का उपयोग किया:000000cb। @ - धोखाधड़ी मॉड्यूल पर क्लिक करें;80000000. @ - ट्रैकिंग मॉड्यूल;80000032. @, 80000064. @ - बिटकॉइन माइनर मॉड्यूल (x32 और x64);00000004. @, 00000008. @ - dll का उपयोग रिसोर्स स्टोर (80000032. @ और 80000064. @ के लिए डेटा) के रूप में किया जाता है।संकेतित लोगों के अलावा, खोज क्वेरी के रीडायरेक्ट को लोड करने, अनियंत्रित और मनमानी फ़ाइलों को डाउनलोड करने का उल्लेख किया गया था।निष्कर्षज़ीरोएसेट का उदाहरण ओकाम के रेजर के सिद्धांत को अच्छी तरह से दिखाता है - अनावश्यक रूप से संस्थाओं को गुणा न करें, या सरल तरीके से - जटिल न करें। तकनीकी विकास के रूप में शुरू करने और इसके विकास के दौरान रूटकिट घटक खो जाने के बावजूद, ज़ीरोएसेट, फिर भी, सफलतापूर्वक मौजूद है, और यहां तक कि पी 2 पी के रूप में इस तरह के एक फैशनेबल विशेषता का अधिग्रहण किया।सोफोस के अनुसार, अगस्त 2012 के अंत में ज़ीरोएसेट बॉट के साथ कंप्यूटर संक्रमणों की संख्या 9 मिलियन से अधिक थी, और लगभग 1 मिलियन सक्रिय बॉट थे। 2012 की तीसरी तिमाही के लिए किंडसाइट सिक्योरिटी लैब "मालवेयर रिपोर्ट" की रिपोर्ट में, 2.2 मिलियन संक्रमित सिस्टम पहले से ही उल्लिखित हैं, जिनमें से 685 हजार (31%) संयुक्त राज्य में हैं। विशेषज्ञों के अनुसार, 2012 में ज़ीरो-आधारित बॉटनेट सबसे अधिक सक्रिय था।इन नंबरों के प्रकाश में, मुझे लगता है कि कोई भी संदेह के साथ कोई नहीं बचा है कि जीरोकेस एक छड़ी के बिना शून्य नहीं है। हालाँकि, रिंग -0 का अब उपयोग नहीं किया जाता है, फिर भी हमलावर उपयोगकर्ताओं द्वारा बेवजह अमेरिकी कागजात का एक गुच्छा लाने के लिए पहुंच से बाहर है। इसका मतलब है कि एंटीवायरस कंपनियों के पास काम करने के लिए कुछ है। पाठक एक बार फिर याद दिलाना चाहेंगे - ट्रोजन प्रतिकूलता से आपके लोहे के दोस्त का उद्धार पूरी तरह से आपके विवेक पर है, सावधान रहें।