OceanLotus: नई पिछले दरवाजे, पुरानी योजनाओं

ओशनलोटस समूह (उर्फ APT32 और APT-C-00) पूर्वी एशिया में अपने हमलों के लिए जाना जाता है। पिछले साल, समूह के काम पर कई अध्ययन प्रकाशित किए गए थे, जिनमें साइबरकेन दस्तावेज, फायरई समीक्षा, और वायलेक्सिटी के वॉटरिंग-होल हमले का विवरण शामिल है । जैसा कि हम देख सकते हैं, समूह बैकडोर, बुनियादी ढांचे और संक्रमण वैक्टर को अद्यतन करता है।

ओशनएलोटस पूर्वी एशिया में कंपनियों और सरकारी एजेंसियों को निशाना बनाता है। ईएसईटी टेलीमेट्री के अनुसार, ओशनएलोटस के प्राथमिकता वाले लक्ष्य वियतनाम, लाओस, कंबोडिया और फिलीपींस में हैं।

कुछ महीने पहले, हमने उनकी एक नवीनतम बैकडोर की खोज की और उसका विश्लेषण किया। यह कई उपकरणों को लागू करता है जो विश्लेषण करना मुश्किल है और पता लगाने से बचते हैं - हम उन्हें एक पोस्ट में चर्चा करेंगे।



विस्तार


हमलावर दुर्भावनापूर्ण ड्रॉपर लॉन्च करने के लिए पीड़ित को समझाने के लिए विभिन्न तरीकों का उपयोग करते हैं।

दोहरे एक्सटेंशन और नकली एप्लिकेशन आइकन (वर्ड, पीडीएफ, आदि)


ईमेल अटैचमेंट के माध्यम से ड्रॉपर के फैलने की संभावना है। हमने निम्नलिखित फ़ाइल नाम देखे:
- Mi17 Technical issues - Phonesack Grp.exe (Mi-17 - रूसी हेलीकाप्टर मॉडल)
- Chi tiet don khieu nai gui saigontel.exe (वियतनामी से अनुवादित - "साइगोंटेल को भेजे गए दावे का विवरण", साइगोंटेल - वियतनामी दूरसंचार कंपनी)
- Updated AF MOD contract - Jan 2018.exe
- remove_pw_Reschedule of CISD Regular Meeting.exe
- Sorchornor_with_PM_-_Sep_2017.exe
- 20170905-Evaluation Table.xls.exe
- CV_LeHoangThing.doc.exe (कनाडा में नकली रिज्यूमे भी मिला)

इन सभी फ़ाइलों में कुछ सामान्य है - एक पासवर्ड-संरक्षित चारा दस्तावेज़ लॉन्च करना। यह स्पष्ट नहीं है कि क्या पासवर्ड प्रेषित पत्र के डेटा में कहीं निहित है, या क्या दस्तावेज़ को खोला नहीं जाना चाहिए।

नकली इंस्टालर


कई नकली इंस्टॉलर जिन्हें इंस्टॉलर या सॉफ़्टवेयर अपडेट के रूप में प्रस्तुत किया गया है, उन्हें पानी के छेद अभियानों में देखा गया है। एक उदाहरण Freebuf (चीनी में) पर 360 लैब्स द्वारा वर्णित फ़ायरफ़ॉक्स इंस्टालर है।

एक और नमूना जो हमने देखा था, उसे RobototFontUpdate.exe कहा गया था। यह संभवत: समझौता साइटों के माध्यम से फैल गया, लेकिन हमारे पास इसके पर्याप्त प्रमाण नहीं हैं।

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

तकनीकी विश्लेषण


इंस्टॉलेशन और एक्ज़ीक्यूशन प्रोसेस मल्टी-लेयर ऑबफ्यूजेशन यानी कंपोनेंट एन्क्रिप्शन, पीई फाइल्स के पुनर्निर्माण, शेलकोड लोडिंग और साइड-लोडिंग तकनीकों पर निर्भर करता है। उत्तरार्द्ध को ESET के पिछले कोरप्लग अध्ययन में वर्णित किया गया था।

प्रगति की समीक्षा


हमले में दो भाग होते हैं: एक ड्रॉपर और एक प्रक्षेपण यान। प्रक्रिया के प्रत्येक भाग के प्रत्येक चरण को संबंधित अनुभाग में विस्तार से बताया जाएगा। नीचे दिए गए दो आरेख मालवेयर की समग्र प्रगति का एक संक्षिप्त विचार देते हैं।


चित्र 1. ड्रॉपर की प्रगति


चित्रा 2. पिछले दरवाजे की प्रगति

इनमें से लगभग सभी घटक बाधित हैं। ऑब्सफैक्शन पूरक सशर्त जोड़ी संक्रमण आदेशों पर आधारित है। प्रत्येक फॉर्म के लिए: JZ / JNZ, JP / JNP, JO / JNO और इसी तरह, प्रत्येक जोड़ी एक ही लक्ष्य के लिए एक संक्रमण करती है। अनुक्रम जंक कोड के साथ मिलाया गया है जो स्टैक पॉइंटर का उपयोग करता है लेकिन सशर्त ध्वज के मूल्य को नहीं बदलता है। यह पता चला है कि संक्रमण उसी शाखा के भीतर होता है। यह सकारात्मक स्टैक पॉइंटर मानों के उपयोग के कारण अपघटन प्रक्रिया के दौरान समस्याओं की ओर जाता है।


चित्रा 3. पूरक सशर्त संक्रमण

इसके अलावा, प्रोग्राम के कुछ मूल तत्व स्टैक में एक पता जोड़ते हैं, जिसके बाद वे JMP / CALL में समाप्त होते हैं, जबकि अन्य मूल तत्व दो पते जोड़ते हैं और RET कमांड के साथ समाप्त होते हैं। दूसरा आइटम जोड़ कहा जाने वाला फ़ंक्शन है, और पहला अगले मूल प्रोग्राम तत्व का पता है जहां संक्रमण किया जाएगा। इस प्रकार, कार्यक्रम के मूल तत्व मूल वस्तुओं के बिना बनाए जाते हैं।


चित्रा 4. PUSH / JMP तकनीक

दो ऑबफ्यूजन तकनीकों के संयोजन के परिणामस्वरूप, "सुंदर" ग्राफ प्राप्त होते हैं:


चित्रा 5. एक रन अनुक्रम Obfuscating

नोटिंग जंक कोड बहुत सरल है। नमूनों के विश्लेषण में इसे नजरअंदाज किया जा सकता है, यदि आप आवेदन योजना जानते हैं।

ड्रॉपर


चरण 1। दस्तावेज़ दस्तावेज़


हाल के महीनों में, ओशनएलोटस ने कई सुरों का उपयोग किया है। उनमें से एक Roboto Slab regular ट्रू टाइप फ़ॉन्ट को अपडेट करने के लिए नकली सॉफ्टवेयर है। एक फ़ॉन्ट चुनना थोड़ा अजीब लगता है, क्योंकि यह कई पूर्वी एशियाई भाषाओं का समर्थन नहीं करता है।


चित्र 6. रोबॉटॉटफोंटअप फ़ॉन्ट अपडेट आइकन

निष्पादित होने पर, बाइनरी फ़ाइल अपने संसाधनों (XOR, 128 बाइट्स, हार्ड-कोडेड कुंजी) को डिक्रिप्ट करती है और डिक्रिप्ट किए गए डेटा (LZMA) को पुनर्स्थापित करती है। वैध RobotoSlab-Regular.ttf फ़ाइल

(SHA1: 912895e6bb9e05af3a1e58a1da417e992a71a324 ) %temp% फ़ोल्डर में लिखा जाता है और Win32 API ShellExecute फ़ंक्शन का उपयोग करके लॉन्च किया जाता है।

संसाधनों से अलग किए गए शेल कोड को निष्पादित किया जाता है। निष्पादन के बाद, एक नकली फ़ॉन्ट अपडेट किसी अन्य एप्लिकेशन को लागू करता है जिसका एकमात्र उद्देश्य ड्रॉपर को निकालना है। इस %temp%\[0-9].tmp.exe एप्लिकेशन को %temp%\[0-9].tmp.exe रूप में %temp%\[0-9].tmp.exe गया है।

स्टेज 2. शेल कोड


प्रत्येक चरण में, समान शेलकोड का उपयोग किया जाता है।

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

RtlZeroMemory फ़ंक्शन RtlZeroMemory उपयोग पीई हेडर में फ़ील्ड्स को RtlZeroMemory करने के RtlZeroMemory किया जाता है। MZ / PE हेडर दूषित होने के बाद से स्वचालित मेमोरी डंप पर निर्भरता विफल हो जाएगी।
शेल कोड डिक्रिप्टेड पीई लॉगिन फ़ंक्शन और फिर DLLEntry निर्यात DLLEntry को DLLEntry

स्टेज 3. असली ड्रॉपर


{103004A5-829C-418E-ACE9-A7615D30E125}.dll
यह निष्पादन योग्य संसाधनों को Windows API के माध्यम से CBC मोड में AES एल्गोरिथ्म का उपयोग करके कम करता है। हार्ड-कोडेड कुंजी का आकार 256 बिट है। डिक्रिप्शन के बाद, संपीड़ित डेटा विघटित (LZMA एल्गोरिथ्म) है।

यदि प्रक्रिया को व्यवस्थापक अधिकारों के साथ शुरू किया जाता है, तो मैलवेयर एक सेवा बनाकर दृढ़ता प्रदान करता है। अन्यथा, क्लासिक रन रजिस्ट्री कुंजी का उपयोग किया जाता है ( HKCU\SOFTWARE\Microsoft\ Windows\CurrentVersion\Run;DeviceAssociationService;rastlsc.exe )।

यदि ड्रॉपर कोड को व्यवस्थापक अधिकारों के साथ निष्पादित किया जाता है, तो यह फ़ोल्डर C:\Program Files\Symantec\Symantec Endpoint Protection\12.1.671.4971.104a\DeviceAssociationService\ नीचे सूचीबद्ध फ़ाइलों को लिखने की कोशिश करता है C:\Program Files\Symantec\Symantec Endpoint Protection\12.1.671.4971.104a\DeviceAssociationService\ , यदि नहीं, तो उन्हें %APPDATA%\Symantec\Symantec Endpoint Protection\12.1.671.4971.104a\DeviceAssociationService\ फ़ोल्डर में लिखते हैं %APPDATA%\Symantec\Symantec Endpoint Protection\12.1.671.4971.104a\DeviceAssociationService\ :

- rastlsc.exe (SHA1: 2616da1697f7c764ee7fb558887a6a3279861fac , वैध एप्लिकेशन की प्रतिलिपि Symantec Network Access Control, dot1xtra.exe )
- SyLog.bin (SHA1: 5689448b4b6260ec9c35f129df8b8f2622c66a45 , बैकडोर एन्क्रिप्टेड)
- rastls.dll (SHA1: 82e579bd49d69845133c9aa8585f8bd26736437b , दुर्भावनापूर्ण DLL जो rastlsc.exe )

पथ नमूना से नमूने में भिन्न होता है, लेकिन लेआउट समान है। अधिकारों के आधार पर, मैलवेयर %ProgramFiles% या %appdata% में फ़ाइलों को डंप करता है। हमने भी देखा:

- + \Symantec\CNG Key Isolation\
- \Symantec\Connected User Experiences and Telemetry\
- \Symantec\DevQuery Background Discovery Broker Tasks\

इन रास्तों का उपयोग विभिन्न Symantec उत्पादों द्वारा किया जाता है।

दृढ़ता प्राप्त करने और निष्पादन योग्य फ़ाइल को एक वैध फ़ाइल लागू करने के बाद,
rastlsc.exe , CreateProcessW का उपयोग करके निष्पादित किया जाता है।

हमने एक संस्करण ( {BB7BDEC9-B59D-492E-A4AF-4C7B1C9E646B}.dll ) का rastlsc.exe किया, जो krv पैरामीटर के साथ rastlsc.exe को निष्पादित करता है। हम नीचे और अधिक विस्तार से चर्चा करेंगे।

पिछले घटक: rastlsc.exe भरें


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

जैसा कि ऊपर उल्लेख किया गया है, वैध rastlsc.exe फ़ाइल रीसेट और निष्पादित है।
यह rastls.dll फ़ाइल आयात करता है, जिसमें इस मामले में दुर्भावनापूर्ण सामग्री है।


चित्रा 7. Symantec से डिजिटल रूप से हस्ताक्षरित rastlsc.exe

हमने McAfee से mcoemcpy.exe सहित अन्य वैध और हस्ताक्षरित निष्पादनों का उपयोग करते हुए एक भराव देखा, जो McUtil.dll लोड McUtil.dll । यह तकनीक पहले प्लगएक्स द्वारा उपयोग की गई थी, जिसने वियतनाम सीईआरटी (वियतनामी में) का ध्यान आकर्षित किया था।

स्टेज 1. पुस्तकालय, rastls.dll भरना


Dll फ़ाइल का आंतरिक नाम {7032F494-0562-4422-9C39-14230E095C52}.dll , लेकिन हमने अन्य संस्करणों को देखा है, उदाहरण के लिए, {5248F13C-85F0-42DF-860D-1723EEAA4F90}.dll । सभी निर्यात किए गए फ़ंक्शन एक ही फ़ंक्शन के निष्पादन के लिए नेतृत्व करते हैं।


चित्रा 8. सभी rasltls.dll निर्यात एक एकल फ़ंक्शन की ओर ले जाते हैं

निर्यात उसी फ़ोल्डर में स्थित SyLog.bin फ़ाइल को पढ़ने का प्रयास करता है। अन्य संस्करणों ने OUTLFLTR.DAT फ़ाइल को खोलने का OUTLFLTR.DAT है। यदि फ़ाइल मौजूद है, तो इसे हार्ड-कोडित 256-बिट कुंजी के साथ CBC मोड में AES एल्गोरिथ्म का उपयोग करके डिक्रिप्ट किया जाएगा, और फिर प्राप्त संकुचित डेटा विघटित (LZMA संपीड़न) होगा।

McUtil.dll संस्करण एक अलग तकनीक का उपयोग करता है। पहली नज़र में, मुख्य कार्य दुर्भावनापूर्ण कुछ भी नहीं करता है, लेकिन वास्तव में यह वैध फ़ाइल mcoemcpy.exe अनुभाग को बदल देता है, एक बाइनरी फ़ाइल। यह एक शेलकोड बनाता है जिसका कार्य mcscentr.adf फ़ाइल से दूसरे चरण के एन्क्रिप्टेड mcscentr.adf को पढ़ने के लिए एक फ़ंक्शन को कॉल करना है।

शेल कोड बनाने के लिए निम्नलिखित छद्म कोड का उपयोग किया जाता है:

x = False i = 0
buff = genRandom()
opc1 = [0x58,0x59,0x5a,0x5b]
opc2 = [0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57]
opc3 = [0x90,0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,
0x49,0x4a,0x4b]
while i < len(buff):
currentChar = buff[i] if currentChar < 0xc8:
buff[i] = opc1[currentChar % len(opc1)]
else:
if x:
buff[i] = opc2[currentChar % len(opc2)]
else:
buff[i] = opc3[currentChar % len(opc3)] x = x == False
i+=1


नीचे दिए गए आंकड़े में आप कोडांतरक के परिणाम की एक सूची देख सकते हैं:


चित्र 9. निर्मित शेलकोड

चरण 2-4। शेलकोड, लॉन्चर और शेलकोड फिर से


{E1E4CBED-5690-4749-819D-24FB660DF55F}.dll डिक्रिप्ट करता है और {E1E4CBED-5690-4749-819D-24FB660DF55F}.dll लाइब्रेरी डाउनलोड करता है। लायब्रेरी संसाधनों को लोड करती है और DeviceAssociationService सेवा प्रारंभ करने का प्रयास करती है। डिक्रिप्ट की गई जानकारी में एक शेलकोड भी होता है। उत्तरार्द्ध अंतिम चरण का प्रयास करता है: एक पिछले दरवाजे।

वेरिएंट {92BA1818-0119-4F79-874E-E3BF79C355B8}.dll जाँचता है कि rastlsc.exe पहले पैरामीटर के रूप में krv साथ निष्पादित किया rastlsc.exe । यदि ऐसा है, तो एक कार्य बनाया जाता है, और rastlsc.exe को फिर से निष्पादित किया जाता है, लेकिन इस पैरामीटर के बिना।

स्टेज 5. पिछले दरवाजे


{A96B020F-0000-466F-A96D-A91BBF8EAC96}.dll

सबसे पहले, मैलवेयर अपने संसाधनों को डाउनलोड करने और RC4 एल्गोरिथ्म का उपयोग करके उन्हें डिक्रिप्ट करने की कोशिश करता है। परिणामस्वरूप संसाधनों में पिछले दरवाजे को कॉन्फ़िगर करने के लिए उपयोग किए जाने वाले डेटा होते हैं। कॉन्फ़िगरेशन प्रारूप को खोजना मुश्किल नहीं है। Kaitai संरचना और इसकी संरचना स्पंज का उपयोग करके, हम निम्नलिखित प्राप्त करते हैं:


चित्रा 10. विन्यास संरचना

नोट : domain_encoding_str लाइन और नोआप्रोव लाइब्रेरी के अपवाद के साथ, डेटा नमूना से नमूना में बदलता है। रजिस्ट्री कुंजियाँ लगभग समान हैं, लेकिन उनके पास एक समान योजना है: \HKCU\SOFTWARE\Classes\AppX[a-f0-9]{32} , उल्लेखनीय कुछ भी नहीं।

दुर्भावनापूर्ण प्रोग्राम उपयोगकर्ता नाम के पहले 10 बाइट्स (UTF-16) प्राप्त करता है, उन्हें UTF-16 में तीन-अक्षर स्ट्रिंग mutex_encoding_str करता है और इसे हेक्साडेसिमल में एन्कोड करता है। परिणाम म्यूटेक्स के नाम के रूप में उपयोग किया जाता है। उदाहरण के लिए, एक उपयोगकर्ता के लिए जिसका नाम abc और vwx के रूप में एक कुंजी से शुरू होता है, म्यूटेक्स \Sessions\1\BaseNamedObjects\170015001b

पिछले दरवाजे में पीई लोडर शामिल है जो HTTPProv.dll लाइब्रेरी को मेमोरी में लोड करता है, एंट्री पॉइंट को कॉल करता है और फिर CreateInstance एक्सपोर्ट फंक्शन को कॉल करता है।

संचार


पिछले दरवाजे पोर्ट 25123 पर मानक टीसीपी संचार प्रोटोकॉल का उपयोग करता है। सर्वर IP पता प्राप्त करने के लिए, पिछले दरवाजे एक विशिष्ट DNS क्वेरी बनाता है।

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

letters=domain_encoding_str # “ghijklmnop” hex_pc_name=pc_name.encode(“UTF-16LE”).encode(“hex”) s=''
for c in hex_pc_name:
if 0x2f < ord(c) < 0x3a:
s+=letters[ord(c) - 0x30]
else:
s+=c


उदाहरण के लिए, यदि कंप्यूटर का नाम random-pc , और संस्करण आईडी 0x0a841523 है, तो निम्न डोमेन का उपयोग किया जाता है:
niggmhggmeggmkggmfggmdggidggngggmjgg.ijhlokga.dwarduong[.]com

इस बैकडोर के C & C सर्वर को लेबल करने के लिए निम्नलिखित नियमित अभिव्यक्ति का उपयोग किया जा सकता है:
[ghijklmnopabcdef]{4-60}\.[ghijklmnopabcdef]{8}\.[az]+\.[az]+

यदि IP पता किसी विशिष्ट डोमेन से संबंधित है, तो मैलवेयर पोर्ट 25123 माध्यम से एक TCP कनेक्शन स्थापित करने का प्रयास करता है। प्रत्येक नमूने के तीन अलग-अलग डोमेन नाम हैं जिनका उपयोग C & C सर्वर को खोजने के लिए किया जाता है।

संचार प्रक्रिया RC4 के माध्यम से एन्क्रिप्ट की गई है और LZMA का उपयोग करके संपीड़ित है। पैकेट की शुरुआत में कुंजी जोड़ने के बाद से यातायात को डिक्रिप्ट करना संभव है। प्रारूप इस प्रकार है:
[ RC4 (4 )][ ]

प्रत्येक कुंजी बाइट rand फ़ंक्शन द्वारा उत्पन्न होती है। पैकेट को डिक्रिप्ट और अनपैक करने के बाद, डेटा का निम्न प्रारूप है:
[dw:][dw:][dw: ][dw: ][dw:] [dw:]

पहली बार क्लाइंट सर्वर से जुड़ता है, यूयूआईडी प्रसारित होता है, जिसका उपयोग सत्र पहचानकर्ता के रूप में किया जाता है। उत्तरार्द्ध को रजिस्ट्री कुंजी में बाइनरी डेटा के रूप में संग्रहीत किया जाता है: HKCU\SOFTWARE\Classes\ AppXc52346ec40fb4061ad96be0e6cb7d16a\DefaultIcon

जैसा कि हमने पहले कहा था, पिछले दरवाजे में HTTPprov नामक एक पुस्तकालय भी है। यह सर्वर के साथ संवाद करने के लिए एक वैकल्पिक तरीके के रूप में उपयोग किया जाता है। DLL फ़ाइल HTTP पर एक पोस्ट अनुरोध भेजती है। यह SOCKS5, SOCKS4a और SOCKS4 का उपयोग करके HTTPS और परदे के पीछे का समर्थन करता है। पुस्तकालय को libcurl साथ जोड़ा जाता है।

आरंभीकरण के बाद, एक रजिस्ट्री प्रविष्टि बनाई जाएगी - पिछले दरवाजे के लिए कमांड सर्वर के साथ संवाद करने के लिए HTTP का उपयोग करने के लिए एक कमांड: HKCU\SOFTWARE\Classes\ CLSID{E3517E26-8E93-458D-A6DF-8030BC80528B}

मानक क्लाइंट एप्लिकेशन का उपयोग किया जाता है: Mozilla/4.0 ( ; MSIE 8.0; Windows NT 6.0; Trident/4.0)

इस पुस्तकालय की मुख्य विशेषता सार्वभौमिक संसाधन पहचानकर्ता के लिए एक विशेष एन्क्रिप्शन एल्गोरिथ्म है। URI का संसाधन भाग निम्नलिखित छद्मकोश का उपयोग करके बनाया गया है:

buffEnd = ((DWORD)genRand(4) % 20) + 10 + buff; while (buff < buffEnd){
b=genRand(16);
if (b[0] - 0x50 > 0x50)
t=0;
else
*buf++= UPPER(vowels[b[1] % 5]);
v=consonants[b[1]%21]); if (!t)
v=UPPER(v);
*buff++= v;
if (v!='h' && b[2] - 0x50 < 0x50)
*buff++= 'h';
*buff++= vowels[b[4] % 5];
if (b[5] < 0x60)
*buff++= vowels[b[6] % 5];
*buff++= consonants[b[7] % 21];
if (b[8] < 0x50)
*buff++= vowels[b[9] % 5];
*buff++= '-';
};
*buff='\0';


नोट : स्पष्टता के लिए, स्ट्रिंग की लंबाई की जाँच के लिए जिम्मेदार भाग को कोड से हटा दिया गया है।

उत्पन्न स्ट्रिंग से पहचानकर्ता को प्राप्त करने के लिए, एक विशेष राशि सत्यापन एल्गोरिथ्म का उपयोग करके दो नंबर जोड़े जाते हैं:

checksum=crc32(buff)
num2=(checksum >> 16) + (checksum & 0xffff) * 2
num1=(num2 ^ 1) & 0xf
URL=GENERATED_DOMAIN+ “/” + num1 + “/” + num2 + “-” + buff


HTTPprov लाइब्रेरी URI जनरेटर को जोड़ने पर, हमें निम्न URL मिलता है:
hXXp://niggmhggmeggmkggmfggmdggidggngggmjgg.ijhlokga.aisicoin[.]com/ 13/139756-Ses-Ufali-L

आदेशों


SESSIONID सत्र पहचानकर्ता प्राप्त करने के बाद, पिछले दरवाजे सिस्टम फिंगरप्रिंट बनाता है। पैकेज का निर्माण निम्नानुसार किया गया है (पैकेज में इंडेंट - विवरण):

0x000 - बाइट्स: प्रत्येक संस्करण में मान बदलता है
0x001 - 0x01: हार्ड-कोडेड बाइट
0x002 - बूल: उन्नत विशेषाधिकार
0x003 - डॉर्ड : संस्करण आईडी
0x007 - स्ट्रिंग (UTF-16), कंप्यूटर का नाम (अधिकतम 0x20)
0x027 - स्ट्रिंग (UTF-16), उपयोगकर्ता नाम
0x079 - HKLM\SOFTWARE\Microsoft\Windows NT\ CurrentVersion मानों में रजिस्ट्री क्वेरी का परिणाम: ProductName , CSDVersion , CurrentVersion , ReleaseId , CurrentBuildNumber और कॉलिंग का परिणाम। IsWow64Process (x86|x64)
0x179 - स्ट्रिंग% s (% s) के बाद का प्रारूप; द्वारा प्रतिस्थापित ( GetVolumeInformationW:VolumeNameBuffer ), VolumePathNames
0x279 - फिजिकल डिस्क, फिजिकलड्राइव डिवाइस का नियंत्रण O / O कंट्रोल कंट्रोल 0x2D1400 (IOCTL_STORAGE_QUERY_ PROPERTY) (VolSerialNumber)
0x379 - wmi का SELECT SerialNumber FROM Win32_BaseBoard
0x3f9 - GetSystemTimeAsFileTime वर्तमान तिथि और समय प्राप्त करें
0x400 - बूल: अज्ञात
0x401 - dword: संसाधन को डिक्रिप्ट करने के बाद प्राप्त हुआ

यहाँ एक सिस्टम फ़िंगरप्रिंट का एक उदाहरण दिया गया है:


चित्र 11. सिस्टम फ़िंगरप्रिंट

यह एक पूर्ण विकसित बैकडोर है जो अपने ऑपरेटरों को कई सुविधाएँ प्रदान करता है: फ़ाइल, रजिस्ट्री और प्रक्रियाओं में हेरफेर करना, अतिरिक्त घटकों को डाउनलोड करना, सिस्टम का डिजिटल फिंगरप्रिंट प्राप्त करना। नीचे समर्थित आदेशों की संख्या और विवरण दिए गए हैं:

0 - डिजिटल फिंगरप्रिंट
1 - सत्र आईडी सेट करता है
2 - एक प्रक्रिया बनाना और एक परिणाम प्राप्त करना (प्रोग्राम चैनलों का उपयोग करके)
3 - कनेक्शन प्रयासों का काउंटर सेट करता है
4 - पोपपोन मतदान का समय
5 - एक फ़ाइल या रजिस्ट्री कुंजी पढ़ता है और एमडी 5 पर विचार करता है
6 - एक प्रक्रिया बनाना
7 - एक फ़ाइल, रजिस्ट्री प्रविष्टि या मेमोरी में स्ट्रीम बनाता है
8 - रजिस्ट्री को लिखता है
9 - रजिस्ट्री का चुनाव करता है
10 - सिस्टम में फाइलों को खोजता है
11 - फ़ाइलों को किसी अन्य निर्देशिका में स्थानांतरित करता है
12 - डिस्क से फाइलें निकालता है
13 - फ़ंक्शन का उपयोग करके सिस्टम में चिह्नित डिस्क की सूची प्राप्त करना
GetLogicalDriveStringW
14 - एक निर्देशिका बनाता है
15 - निर्देशिका को हटाता है
16 - ऑफसेट से फाइल पढ़ता है
17 - पीई लोडर को कॉल करता है ( HTTPprov माध्यम से संचार पर स्विच करें)
18 - [अज्ञात]
19 - 0: रजिस्ट्री में मूल्य का सर्वेक्षण; 1: कार्यक्रम कार्यान्वयन और कार्यान्वयन
20 - पर्यावरण चर सेट करता है
21 - एक नए धागे में शेलकोड लॉन्च किया
22 - पर्यावरण चर लौटाता है
नए संस्करण में 23 - APPL वातावरण चर मौजूद नहीं है, तो खुद को पुनरारंभ करता है

निष्कर्ष


OceanLotus अत्यधिक सक्रिय रहता है और टूलकिट को अपडेट करना जारी रखता है।
समूह अपनी गतिविधियों को छुपाना चाहता है, इसके लिए हमलावर सावधानी से पीड़ितों का चयन करते हैं, मैलवेयर के प्रसार को सीमित करते हैं, कई सर्वरों का उपयोग करते हैं ताकि एक ही डोमेन या आईपी पते पर ध्यान आकर्षित न करें। घटक के कार्यान्वयन की डिक्रिप्शन और साइड-लोडिंग तकनीक, इसकी व्यापक लोकप्रियता के बावजूद, इसका पता लगाने से बचना संभव है, क्योंकि इस मामले में हमलावरों का काम एक वैध आवेदन के रूप में प्रच्छन्न है।

समझौता संकेतक (IoCs)


नमूने


तालिका 1: ड्रॉपर




तालिका 2: पुस्तकालय




नेटवर्क


आईपी ​​पते


46.183.220.81
46.183.220.82
46.183.222.82
46.183.222.83
46.183.222.84
46.183.223.106
46.183.223.107
74.121.190.130
74.121.190.150
79.143.87.230

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


All Articles