Ushbu maqola bilan biz zararli dasturlarni tahlil qilishga bag'ishlangan nashrlar seriyasini yakunlaymiz. IN
Bugun CERT Group-IB zararli dasturlarni tahlil qilish bo'yicha mutaxassis Ilya Pomerantsev zararli dasturlarni tahlil qilishning birinchi bosqichi - CERT Group-IB mutaxassislari amaliyotidan uchta mini-holati misolida AgentTesla namunalarini yarim avtomatik ochish haqida gapiradi.
Odatda, zararli dasturlarni tahlil qilishning birinchi bosqichi bu paketlovchi, kriptor, himoyachi yoki yuklovchi ko'rinishidagi himoyani olib tashlashdir. Ko'pgina hollarda, bu muammoni zararli dasturni ishga tushirish va dumpni amalga oshirish orqali hal qilish mumkin, ammo bu usul mos bo'lmagan holatlar mavjud. Misol uchun, agar zararli dastur shifrlovchi bo'lsa, u xotira hududlarini tashlab ketishdan himoya qilsa, kodda virtual mashinani aniqlash mexanizmlari bo'lsa yoki zararli dastur ishga tushirilgandan so'ng darhol qayta ishga tushsa. Bunday hollarda "yarim avtomatik" deb ataladigan ochish qo'llaniladi, ya'ni tadqiqotchi jarayonni to'liq nazorat qiladi va istalgan vaqtda aralashishi mumkin. Keling, AgentTesla oilasining uchta namunasini misol sifatida ko'rib chiqaylik. Agar siz uning tarmoqqa kirishini o'chirib qo'ysangiz, bu nisbatan zararsiz zararli dastur.
Namuna № 1
Manba fayli CVE-2017-11882 zaifligidan foydalanadigan MS Word hujjatidir.
Natijada, foydali yuk yuklab olinadi va ishga tushiriladi.
Jarayon daraxti va xulq-atvor belgilarini tahlil qilish jarayonga in'ektsiyani ko'rsatadi RegAsm.exe.
AgentTesla uchun xarakterli xulq-atvor belgilari mavjud.
Yuklab olingan namuna bajariladigan namunadir .NET-fayl himoyachi bilan himoyalangan .NET reaktori.
Keling, uni yordamchi dasturda ochamiz dnSpy x86 va kirish nuqtasiga o'ting.
Funktsiyaga o'tish orqali DateTimeOffset, biz yangi uchun ishga tushirish kodini topamiz .NET-modul. Keling, qo'ying to'xtash nuqtasi bizni qiziqtirgan qatorda faylni ishga tushiring.
Qaytarilgan buferlardan birida siz MZ imzosini ko'rishingiz mumkin (0x4D 0x5A). Keling, saqlaylik.
To'ldirilgan bajariladigan fayl dinamik kutubxona bo'lib, u yuklovchi, ya'ni. resurs bo'limidan foydali yukni chiqaradi va uni ishga tushiradi.
Shu bilan birga, axlatxonada zarur resurslarning o'zi yo'q. Ular ota-ona namunasida.
Qulaylik dnSpy ikkita o'ta foydali funksiyaga ega bo'lib, ular ikkita tegishli fayldan "Frankenshteyn" ni tezda yaratishga yordam beradi.
- Birinchisi, dinamik kutubxonani asosiy namunaga "joylashtirish" imkonini beradi.
- Ikkinchisi, kiritilgan dinamik kutubxonaning kerakli usulini chaqirish uchun kirish nuqtasida funktsiya kodini qayta yozishdir.
Biz "Frankenshteyn" to'plamini saqlaymiz to'xtash nuqtasi liniyada shifrlangan resurslarga ega buferni qaytaring va oldingi bosqichga o'xshab dump hosil qiling.
Ikkinchi axlatxonada yozilgan VB.NET bizga tanish bo'lgan himoyachi tomonidan himoyalangan bajariladigan fayl ConfuserEx.
Himoyachini olib tashlaganimizdan so'ng, biz ilgari yozilgan YARA qoidalaridan foydalanamiz va ochilmagan zararli dastur haqiqatan ham AgentTesla ekanligiga ishonch hosil qilamiz.
Namuna № 2
Manba fayl MS Excel hujjatidir. O'rnatilgan makros zararli kodning bajarilishiga olib keladi.
Natijada, PowerShell skripti ishga tushiriladi.
Skript C# kodini shifrlaydi va unga boshqaruvni o'tkazadi. Kodning o'zi bootloader bo'lib, uni sinov muhiti hisobotidan ham ko'rish mumkin.
Foydali yuk bajariladigan fayldir .NETfayl.
Faylni ochish dnSpy x86, siz uning xiralashganligini ko'rishingiz mumkin. Yordamchi dastur yordamida noaniqlikni olib tashlash de4dot va tahlilga qaytish.
Kodni o'rganayotganda siz quyidagi funktsiyani topishingiz mumkin:
Kodlangan chiziqlar diqqatni tortadi Kirish nuqtasi и iltijo. qo'yamiz to'xtash nuqtasi birinchi qatorga o'ting va bufer qiymatini saqlang bayt_0.
Dump yana bir dastur hisoblanadi .NET va himoyalangan ConfuserEx.
Biz yordamida noaniqlikni olib tashlaymiz de4dot va yuklang dnSpy. Fayl tavsifidan biz duch kelganimizni tushunamiz CyaX-Sharp yuklagich.
Ushbu yuklagich keng qamrovli tahlilga qarshi funksiyaga ega.
Ushbu funksiya o'rnatilgan Windows himoya tizimlarini chetlab o'tishni, Windows Defenderni o'chirib qo'yishni, shuningdek, sinov muhiti va virtual mashinani aniqlash mexanizmlarini o'z ichiga oladi. Tarmoqdan foydali yukni yuklash yoki uni resurs bo'limida saqlash mumkin. Ishga tushirish o'z jarayoniga, o'z jarayonining dublikasiga yoki jarayonlarga kiritish orqali amalga oshiriladi. MSBuild.exe, vbc.exe и RegSvcs.exe tajovuzkor tomonidan tanlangan parametrga bog'liq.
Biroq, biz uchun ular kamroq ahamiyatga ega AntiDump- qo'shadigan funktsiya ConfuserEx. Uning manba kodini quyidagi manzilda topish mumkin
Himoyani o'chirish uchun biz imkoniyatdan foydalanamiz dnSpy, bu sizga tahrir qilish imkonini beradi IL-kod.
Saqlash va o'rnatish to'xtash nuqtasi foydali yukni dekodlash funksiyasini chaqirish liniyasiga. U asosiy sinf konstruktorida joylashgan.
Biz yukni ishga tushiramiz va tashlaymiz. Oldin yozilgan YARA qoidalaridan foydalanib, biz bu AgentTesla ekanligiga ishonch hosil qilamiz.
Namuna № 3
Manba fayli bajariladigan fayldir VB Native PE32fayl.
Entropiya tahlili shifrlangan ma'lumotlarning katta qismi mavjudligini ko'rsatadi.
Ariza shaklini tahlil qilishda VB dekompilyatori g'alati pikselli fonni ko'rishingiz mumkin.
Entropiya grafigi bmp-rasm asl faylning entropiya grafigi bilan bir xil va hajmi fayl hajmining 85% ni tashkil qiladi.
Tasvirning umumiy ko'rinishi steganografiyadan foydalanishni ko'rsatadi.
Keling, jarayon daraxtining ko'rinishiga, shuningdek, in'ektsiya belgisi mavjudligiga e'tibor beraylik.
Bu qadoqdan chiqarish davom etayotganligini ko'rsatadi. Visual Basic yuklagichlari uchun (aka VBKrypt yoki VBInjector) odatiy foydalanish qobiq kodi foydali yukni ishga tushirish, shuningdek, in'ektsiyani o'zi bajarish uchun.
Tahlil ichida VB dekompilyatori hodisaning mavjudligini ko'rsatdi yuk shaklda FegatassocAirballoon2.
Keling, boraylik IDA pro ko'rsatilgan manzilga o'ting va funksiyani o'rganing. Kod juda xiralashgan. Bizni qiziqtirgan parcha quyida keltirilgan.
Bu erda jarayonning manzil maydoni imzo uchun skanerdan o'tkaziladi. Bu yondashuv juda shubhali.
Birinchidan, skanerlashni boshlash manzili 0x400100. Bu qiymat statik bo'lib, taglik o'zgartirilganda sozlanmaydi. Ideal issiqxona sharoitida u oxirini ko'rsatadi PE-bajariladigan faylning sarlavhasi. Biroq, ma'lumotlar bazasi statik emas, uning qiymati o'zgarishi mumkin va kerakli imzoning haqiqiy manzilini qidirish, garchi u o'zgaruvchining to'lib ketishiga olib kelmasa ham, juda uzoq vaqt talab qilishi mumkin.
Ikkinchidan, imzoning ma'nosi iWGK. Menimcha, 4 bayt noyoblikni kafolatlash uchun juda kichik. Va agar siz birinchi nuqtani hisobga olsangiz, xato qilish ehtimoli juda yuqori.
Aslida, kerakli bo'lak oldindan topilgan oxiriga biriktirilgan bmp-ofset bo'yicha rasmlar 0xA1D0D.
Ijroiya Shellcode ikki bosqichda amalga oshiriladi. Birinchisi asosiy tanani dekodlaydi. Bunday holda, kalit qo'pol kuch bilan aniqlanadi.
Shifrlanganini tashlang Shellcode va chiziqlarga qarang.
Birinchidan, biz endi bola jarayonini yaratish funksiyasini bilamiz: CreateProcessInternalW.
Ikkinchidan, biz tizimdagi fiksatsiya mexanizmini bilib oldik.
Keling, asl jarayonga qaytaylik. Keling, qo'ying to'xtash nuqtasi haqida CreateProcessInternalW va ijroni davom ettiring. Keyin biz ulanishni ko'ramiz NtGetContextThread/NtSetContextThread, bu esa ijroni boshlash manzilini manzilga o'zgartiradi ShellCode.
Biz tuzatuvchi bilan yaratilgan jarayonga ulanamiz va hodisani faollashtiramiz Kutubxonani yuklash/tushirishni to'xtatib turing, jarayonni davom ettiring va yuklashni kuting .NET-kutubxonalar.
Keyinchalik foydalanish ProcessHacker qadoqlanmagan bo'lgan axlatxonalar .NET-ilova.
Biz barcha jarayonlarni to'xtatamiz va tizimga o'rnatilgan zararli dastur nusxasini o'chirib tashlaymiz.
Olib tashlangan fayl himoyachi bilan himoyalangan .NET reaktori, bu yordam dasturi yordamida osongina olib tashlanishi mumkin de4dot.
Ilgari yozilgan YARA qoidalaridan foydalanib, biz bu AgentTesla ekanligiga ishonch hosil qilamiz.
Xulosa qilaylik
Shunday qilib, biz misol sifatida uchta mini-keys yordamida namunani yarim avtomatik ochish jarayonini batafsil ko'rsatdik, shuningdek, to'liq ish asosida zararli dasturlarni tahlil qildik, o'rganilayotgan namuna AgentTesla ekanligini bilib, uning funksionalligini va murosa ko'rsatkichlarining to'liq ro'yxati.
Biz amalga oshirgan zararli ob'ektni tahlil qilish juda ko'p vaqt va kuch talab qiladi va bu ishni kompaniyaning maxsus xodimi bajarishi kerak, ammo hamma kompaniyalar ham tahlilchini jalb qilishga tayyor emas.
Group-IB kompyuter sud ekspertizasi va zararli kodlarni tahlil qilish laboratoriyasi tomonidan taqdim etiladigan xizmatlardan biri bu kiber hodisalarga javob berishdir. Mijozlar hujjatlarni tasdiqlash va ularni kiberhujum paytida muhokama qilish uchun vaqt sarflamasliklari uchun Group-IB ishga tushirildi. Hodisaga javobni saqlash vositasi, obuna oldidan hodisalarga javob berish xizmati, shuningdek, zararli dasturlarni tahlil qilish bosqichini ham o'z ichiga oladi. Bu haqda ko'proq ma'lumot olish mumkin
Agar siz yana bir bor AgentTesla namunalari qanday ochilganini o'rganmoqchi bo'lsangiz va CERT Group-IB mutaxassisi buni qanday amalga oshirayotganini ko'rmoqchi bo'lsangiz, ushbu mavzu bo'yicha vebinar yozuvini yuklab olishingiz mumkin.
Manba: www.habr.com