Saylovda ishtirok etish muvaffaqiyatsiz tugadi: keling, AgentTesla-ga toza suv ta'sir qilaylik. 3-qism

Saylovda ishtirok etish muvaffaqiyatsiz tugadi: keling, AgentTesla-ga toza suv ta'sir qilaylik. 3-qism

Ushbu maqola bilan biz zararli dasturlarni tahlil qilishga bag'ishlangan nashrlar seriyasini yakunlaymiz. IN birinchi qism Biz Yevropa kompaniyasi pochta orqali olgan zararlangan faylni batafsil tahlil qildik va u yerda AgentTesla josuslik dasturini topdik. In ikkinchi qism asosiy AgentTesla modulining bosqichma-bosqich tahlili natijalarini tasvirlab berdi.

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.

Saylovda ishtirok etish muvaffaqiyatsiz tugadi: keling, AgentTesla-ga toza suv ta'sir qilaylik. 3-qism
Natijada, foydali yuk yuklab olinadi va ishga tushiriladi.

Jarayon daraxti va xulq-atvor belgilarini tahlil qilish jarayonga in'ektsiyani ko'rsatadi RegAsm.exe.

Saylovda ishtirok etish muvaffaqiyatsiz tugadi: keling, AgentTesla-ga toza suv ta'sir qilaylik. 3-qism
Saylovda ishtirok etish muvaffaqiyatsiz tugadi: keling, AgentTesla-ga toza suv ta'sir qilaylik. 3-qism
AgentTesla uchun xarakterli xulq-atvor belgilari mavjud.

Saylovda ishtirok etish muvaffaqiyatsiz tugadi: keling, AgentTesla-ga toza suv ta'sir qilaylik. 3-qism
Yuklab olingan namuna bajariladigan namunadir .NET-fayl himoyachi bilan himoyalangan .NET reaktori.

Saylovda ishtirok etish muvaffaqiyatsiz tugadi: keling, AgentTesla-ga toza suv ta'sir qilaylik. 3-qism
Keling, uni yordamchi dasturda ochamiz dnSpy x86 va kirish nuqtasiga o'ting.

Saylovda ishtirok etish muvaffaqiyatsiz tugadi: keling, AgentTesla-ga toza suv ta'sir qilaylik. 3-qism
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.

Saylovda ishtirok etish muvaffaqiyatsiz tugadi: keling, AgentTesla-ga toza suv ta'sir qilaylik. 3-qism
Qaytarilgan buferlardan birida siz MZ imzosini ko'rishingiz mumkin (0x4D 0x5A). Keling, saqlaylik.

Saylovda ishtirok etish muvaffaqiyatsiz tugadi: keling, AgentTesla-ga toza suv ta'sir qilaylik. 3-qism
To'ldirilgan bajariladigan fayl dinamik kutubxona bo'lib, u yuklovchi, ya'ni. resurs bo'limidan foydali yukni chiqaradi va uni ishga tushiradi.

Saylovda ishtirok etish muvaffaqiyatsiz tugadi: keling, AgentTesla-ga toza suv ta'sir qilaylik. 3-qism
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.

  1. Birinchisi, dinamik kutubxonani asosiy namunaga "joylashtirish" imkonini beradi.

    Saylovda ishtirok etish muvaffaqiyatsiz tugadi: keling, AgentTesla-ga toza suv ta'sir qilaylik. 3-qism

  2. Ikkinchisi, kiritilgan dinamik kutubxonaning kerakli usulini chaqirish uchun kirish nuqtasida funktsiya kodini qayta yozishdir.

    Saylovda ishtirok etish muvaffaqiyatsiz tugadi: keling, AgentTesla-ga toza suv ta'sir qilaylik. 3-qism

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.

Saylovda ishtirok etish muvaffaqiyatsiz tugadi: keling, AgentTesla-ga toza suv ta'sir qilaylik. 3-qism
Saylovda ishtirok etish muvaffaqiyatsiz tugadi: keling, AgentTesla-ga toza suv ta'sir qilaylik. 3-qism
Himoyachini olib tashlaganimizdan so'ng, biz ilgari yozilgan YARA qoidalaridan foydalanamiz va ochilmagan zararli dastur haqiqatan ham AgentTesla ekanligiga ishonch hosil qilamiz.

Saylovda ishtirok etish muvaffaqiyatsiz tugadi: keling, AgentTesla-ga toza suv ta'sir qilaylik. 3-qism

Namuna № 2

Manba fayl MS Excel hujjatidir. O'rnatilgan makros zararli kodning bajarilishiga olib keladi.

Saylovda ishtirok etish muvaffaqiyatsiz tugadi: keling, AgentTesla-ga toza suv ta'sir qilaylik. 3-qism
Natijada, PowerShell skripti ishga tushiriladi.

Saylovda ishtirok etish muvaffaqiyatsiz tugadi: keling, AgentTesla-ga toza suv ta'sir qilaylik. 3-qism
Saylovda ishtirok etish muvaffaqiyatsiz tugadi: keling, AgentTesla-ga toza suv ta'sir qilaylik. 3-qism
Skript C# kodini shifrlaydi va unga boshqaruvni o'tkazadi. Kodning o'zi bootloader bo'lib, uni sinov muhiti hisobotidan ham ko'rish mumkin.

Saylovda ishtirok etish muvaffaqiyatsiz tugadi: keling, AgentTesla-ga toza suv ta'sir qilaylik. 3-qism
Saylovda ishtirok etish muvaffaqiyatsiz tugadi: keling, AgentTesla-ga toza suv ta'sir qilaylik. 3-qism
Foydali yuk bajariladigan fayldir .NETfayl.

Saylovda ishtirok etish muvaffaqiyatsiz tugadi: keling, AgentTesla-ga toza suv ta'sir qilaylik. 3-qism
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:

Saylovda ishtirok etish muvaffaqiyatsiz tugadi: keling, AgentTesla-ga toza suv ta'sir qilaylik. 3-qism
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.

Saylovda ishtirok etish muvaffaqiyatsiz tugadi: keling, AgentTesla-ga toza suv ta'sir qilaylik. 3-qism
Saylovda ishtirok etish muvaffaqiyatsiz tugadi: keling, AgentTesla-ga toza suv ta'sir qilaylik. 3-qism
Biz yordamida noaniqlikni olib tashlaymiz de4dot va yuklang dnSpy. Fayl tavsifidan biz duch kelganimizni tushunamiz CyaX-Sharp yuklagich.

Saylovda ishtirok etish muvaffaqiyatsiz tugadi: keling, AgentTesla-ga toza suv ta'sir qilaylik. 3-qism
Ushbu yuklagich keng qamrovli tahlilga qarshi funksiyaga ega.

Saylovda ishtirok etish muvaffaqiyatsiz tugadi: keling, AgentTesla-ga toza suv ta'sir qilaylik. 3-qism
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 GitHub.

Himoyani o'chirish uchun biz imkoniyatdan foydalanamiz dnSpy, bu sizga tahrir qilish imkonini beradi IL-kod.

Saylovda ishtirok etish muvaffaqiyatsiz tugadi: keling, AgentTesla-ga toza suv ta'sir qilaylik. 3-qism
Saylovda ishtirok etish muvaffaqiyatsiz tugadi: keling, AgentTesla-ga toza suv ta'sir qilaylik. 3-qism
Saqlash va o'rnatish to'xtash nuqtasi foydali yukni dekodlash funksiyasini chaqirish liniyasiga. U asosiy sinf konstruktorida joylashgan.

Saylovda ishtirok etish muvaffaqiyatsiz tugadi: keling, AgentTesla-ga toza suv ta'sir qilaylik. 3-qism
Biz yukni ishga tushiramiz va tashlaymiz. Oldin yozilgan YARA qoidalaridan foydalanib, biz bu AgentTesla ekanligiga ishonch hosil qilamiz.

Saylovda ishtirok etish muvaffaqiyatsiz tugadi: keling, AgentTesla-ga toza suv ta'sir qilaylik. 3-qism

Namuna № 3

Manba fayli bajariladigan fayldir VB Native PE32fayl.

Saylovda ishtirok etish muvaffaqiyatsiz tugadi: keling, AgentTesla-ga toza suv ta'sir qilaylik. 3-qism
Entropiya tahlili shifrlangan ma'lumotlarning katta qismi mavjudligini ko'rsatadi.

Saylovda ishtirok etish muvaffaqiyatsiz tugadi: keling, AgentTesla-ga toza suv ta'sir qilaylik. 3-qism
Ariza shaklini tahlil qilishda VB dekompilyatori g'alati pikselli fonni ko'rishingiz mumkin.

Saylovda ishtirok etish muvaffaqiyatsiz tugadi: keling, AgentTesla-ga toza suv ta'sir qilaylik. 3-qism
Saylovda ishtirok etish muvaffaqiyatsiz tugadi: keling, AgentTesla-ga toza suv ta'sir qilaylik. 3-qism
Entropiya grafigi bmp-rasm asl faylning entropiya grafigi bilan bir xil va hajmi fayl hajmining 85% ni tashkil qiladi.

Saylovda ishtirok etish muvaffaqiyatsiz tugadi: keling, AgentTesla-ga toza suv ta'sir qilaylik. 3-qism
Tasvirning umumiy ko'rinishi steganografiyadan foydalanishni ko'rsatadi.

Keling, jarayon daraxtining ko'rinishiga, shuningdek, in'ektsiya belgisi mavjudligiga e'tibor beraylik.

Saylovda ishtirok etish muvaffaqiyatsiz tugadi: keling, AgentTesla-ga toza suv ta'sir qilaylik. 3-qism
Saylovda ishtirok etish muvaffaqiyatsiz tugadi: keling, AgentTesla-ga toza suv ta'sir qilaylik. 3-qism
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.

Saylovda ishtirok etish muvaffaqiyatsiz tugadi: keling, AgentTesla-ga toza suv ta'sir qilaylik. 3-qism
Keling, boraylik IDA pro ko'rsatilgan manzilga o'ting va funksiyani o'rganing. Kod juda xiralashgan. Bizni qiziqtirgan parcha quyida keltirilgan.

Saylovda ishtirok etish muvaffaqiyatsiz tugadi: keling, AgentTesla-ga toza suv ta'sir qilaylik. 3-qism
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.

Saylovda ishtirok etish muvaffaqiyatsiz tugadi: keling, AgentTesla-ga toza suv ta'sir qilaylik. 3-qism
Ijroiya Shellcode ikki bosqichda amalga oshiriladi. Birinchisi asosiy tanani dekodlaydi. Bunday holda, kalit qo'pol kuch bilan aniqlanadi.

Saylovda ishtirok etish muvaffaqiyatsiz tugadi: keling, AgentTesla-ga toza suv ta'sir qilaylik. 3-qism
Shifrlanganini tashlang Shellcode va chiziqlarga qarang.

Birinchidan, biz endi bola jarayonini yaratish funksiyasini bilamiz: CreateProcessInternalW.

Saylovda ishtirok etish muvaffaqiyatsiz tugadi: keling, AgentTesla-ga toza suv ta'sir qilaylik. 3-qism
Ikkinchidan, biz tizimdagi fiksatsiya mexanizmini bilib oldik.

Saylovda ishtirok etish muvaffaqiyatsiz tugadi: keling, AgentTesla-ga toza suv ta'sir qilaylik. 3-qism
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.

Saylovda ishtirok etish muvaffaqiyatsiz tugadi: keling, AgentTesla-ga toza suv ta'sir qilaylik. 3-qism
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.

Saylovda ishtirok etish muvaffaqiyatsiz tugadi: keling, AgentTesla-ga toza suv ta'sir qilaylik. 3-qism
Saylovda ishtirok etish muvaffaqiyatsiz tugadi: keling, AgentTesla-ga toza suv ta'sir qilaylik. 3-qism
Olib tashlangan fayl himoyachi bilan himoyalangan .NET reaktori, bu yordam dasturi yordamida osongina olib tashlanishi mumkin de4dot.

Saylovda ishtirok etish muvaffaqiyatsiz tugadi: keling, AgentTesla-ga toza suv ta'sir qilaylik. 3-qism
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 shu yerda.

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. shu yerda.

Manba: www.habr.com

a Izoh qo'shish