Seçkilərdə iştirak uğursuz oldu: biz AgentTesla-nı təmiz suya gətiririk. 3-cü hissə

Seçkilərdə iştirak uğursuz oldu: biz AgentTesla-nı təmiz suya gətiririk. 3-cü hissə

Bu məqalə ilə biz zərərli proqram təminatının təhlilinə həsr olunmuş nəşrlər silsiləsini tamamlayırıq. IN birinci hissəsində Avropa şirkətinin poçtla aldığı yoluxmuş faylın ətraflı təhlilini apardıq və orada AgentTesla casus proqramını tapdıq. In ikinci hissə əsas AgentTesla modulunun mərhələli təhlilinin nəticələrini təsvir etmişdir.

Bu gün CERT Group-IB zərərli proqram təminatının təhlili üzrə mütəxəssisi İlya Pomerantsev zərərli proqramların təhlilinin birinci mərhələsi – misal olaraq CERT Group-IB mütəxəssislərinin təcrübəsindən üç mini-keys istifadə edərək AgentTesla nümunələrinin yarı avtomatik paketdən çıxarılması haqqında danışacaq.

Adətən, zərərli proqram təminatının təhlilinin ilk mərhələsi paketləyici, kriptotor, qoruyucu və ya yükləyici şəklində mühafizənin aradan qaldırılmasıdır. Əksər hallarda, bu problem zərərli proqramların işə salınması və bir dump həyata keçirilməsi ilə həll edilir, lakin bu metodun uyğun olmadığı hallar var. Məsələn, əgər zərərli proqram şifrələyicidirsə, yaddaş bölgələrini zibildən qoruyursa, kodda virtual maşını aşkar etmək üçün mexanizmlər varsa və ya zərərli proqram işə salındıqdan dərhal sonra yenidən işə salınırsa. Belə hallarda "yarı avtomatik" adlanan qablaşdırmadan istifadə edilir, yəni tədqiqatçı prosesə tam nəzarət edir və istənilən vaxt müdaxilə edə bilər. Nümunə olaraq AgentTesla ailəsinin üç nümunəsindən istifadə edərək bu proseduru nəzərdən keçirək. Şəbəkəyə girişi söndürsəniz, bu, nisbətən zərərsiz bir zərərli proqramdır.

Nümunə №1

Mənbə faylı CVE-2017-11882 zəifliyindən istifadə edən MS Word sənədidir.

Seçkilərdə iştirak uğursuz oldu: biz AgentTesla-nı təmiz suya gətiririk. 3-cü hissə
Nəticədə faydalı yük yüklənir və işə salınır.

Proses ağacının və davranış markerlərinin təhlili prosesə inyeksiyanı göstərir RegAsm.exe.

Seçkilərdə iştirak uğursuz oldu: biz AgentTesla-nı təmiz suya gətiririk. 3-cü hissə
Seçkilərdə iştirak uğursuz oldu: biz AgentTesla-nı təmiz suya gətiririk. 3-cü hissə
AgentTesla-ya xas davranış markerləri var.

Seçkilərdə iştirak uğursuz oldu: biz AgentTesla-nı təmiz suya gətiririk. 3-cü hissə
Yüklənmiş nümunə icra edilə bilər . NET- Qorunan fayl .NET reaktoru.

Seçkilərdə iştirak uğursuz oldu: biz AgentTesla-nı təmiz suya gətiririk. 3-cü hissə
Gəlin onu köməkçi proqramda açaq dnSpy x86 və giriş nöqtəsinə keçin.

Seçkilərdə iştirak uğursuz oldu: biz AgentTesla-nı təmiz suya gətiririk. 3-cü hissə
Fəaliyyətə gedir datetimeoffset, biz yeninin başlanğıc kodunu tapacağıq . NET-modul. qoyaq breakpoint Bizi maraqlandıran xətt üzrə faylı işə salın.

Seçkilərdə iştirak uğursuz oldu: biz AgentTesla-nı təmiz suya gətiririk. 3-cü hissə
Qaytarılan buferlərdən birində MZ imzasını görə bilərsiniz (0x4D 0x5A). Saxlayırıq.

Seçkilərdə iştirak uğursuz oldu: biz AgentTesla-nı təmiz suya gətiririk. 3-cü hissə
Atılmış icra olunan fayl yükləyici olan dinamik kitabxanadır, yəni. resurs bölməsindən faydalı yükü götürür və onu yerinə yetirir.

Seçkilərdə iştirak uğursuz oldu: biz AgentTesla-nı təmiz suya gətiririk. 3-cü hissə
Eyni zamanda, lazımi resursların özləri zibillikdə deyil. Onlar ana nümunədədirlər.

Kommunal dnSpy kifayət qədər tez iki əlaqəli fayldan "Frankenstein" yaratmağa kömək edəcək iki son dərəcə faydalı xüsusiyyətə malikdir.

  1. Birincisi, dinamik kitabxananı əsas nümunəyə "yapışdırmağa" imkan verir.

    Seçkilərdə iştirak uğursuz oldu: biz AgentTesla-nı təmiz suya gətiririk. 3-cü hissə

  2. İkincisi, daxil edilmiş dinamik kitabxananın istədiyiniz metodunu çağırmaq üçün giriş nöqtəsində funksiya kodunu yenidən yazmaqdır.

    Seçkilərdə iştirak uğursuz oldu: biz AgentTesla-nı təmiz suya gətiririk. 3-cü hissə

"Frankenstein"imizi saxlayırıq, qoyuruq breakpoint şifrəsi açılmış resursları olan buferi qaytaran və əvvəlki addıma bənzər bir dump yaradan xəttdə.

İkinci zibil yazılmışdır VB.NET bizə tanış olan qoruyucu tərəfindən qorunan icra edilə bilən fayl ConfuserEx.

Seçkilərdə iştirak uğursuz oldu: biz AgentTesla-nı təmiz suya gətiririk. 3-cü hissə
Seçkilərdə iştirak uğursuz oldu: biz AgentTesla-nı təmiz suya gətiririk. 3-cü hissə
Qoruyucu çıxardıqdan sonra biz əvvəllər yazılmış YARA qaydalarından istifadə edirik və paketdən çıxarılan zərərli proqramın həqiqətən AgentTesla olduğuna əmin oluruq.

Seçkilərdə iştirak uğursuz oldu: biz AgentTesla-nı təmiz suya gətiririk. 3-cü hissə

Nümunə №2

Mənbə faylı MS Excel sənədidir. Daxil edilmiş makro zərərli kodun icrasına gətirib çıxarır.

Seçkilərdə iştirak uğursuz oldu: biz AgentTesla-nı təmiz suya gətiririk. 3-cü hissə
Nəticədə PowerShell skripti işə salınır.

Seçkilərdə iştirak uğursuz oldu: biz AgentTesla-nı təmiz suya gətiririk. 3-cü hissə
Seçkilərdə iştirak uğursuz oldu: biz AgentTesla-nı təmiz suya gətiririk. 3-cü hissə
Skript C# kodunu deşifrə edir və nəzarəti ona ötürür. Kodun özü bir yükləyicidir və onu sandbox hesabatından da görmək olar.

Seçkilərdə iştirak uğursuz oldu: biz AgentTesla-nı təmiz suya gətiririk. 3-cü hissə
Seçkilərdə iştirak uğursuz oldu: biz AgentTesla-nı təmiz suya gətiririk. 3-cü hissə
Faydalı yük icra edilə biləndir . NETsənəd.

Seçkilərdə iştirak uğursuz oldu: biz AgentTesla-nı təmiz suya gətiririk. 3-cü hissə
Faylın açılması dnSpy x86, bunun çaşqın olduğunu görə bilərsiniz. Bir yardım proqramı ilə qarışıqlığın aradan qaldırılması de4dot və təhlilə qayıdın.

Kodu araşdırarkən aşağıdakı funksiyanı tapa bilərsiniz:

Seçkilərdə iştirak uğursuz oldu: biz AgentTesla-nı təmiz suya gətiririk. 3-cü hissə
Kodlanmış sətirlər diqqəti çəkir EntryPoint и ibadət. qoyduq breakpoint birinci sətirə işə salın və buferin dəyərini qeyd edin bayt_0.

Dump yenidən bir tətbiqdir . NET və qorunur ConfuserEx.

Seçkilərdə iştirak uğursuz oldu: biz AgentTesla-nı təmiz suya gətiririk. 3-cü hissə
Seçkilərdə iştirak uğursuz oldu: biz AgentTesla-nı təmiz suya gətiririk. 3-cü hissə
ilə qarışıqlığı aradan qaldırın de4dot və yükləyin dnSpy. Faylın təsvirindən anlayırıq ki, qarşı-qarşıyayıq CyaX-Sharp yükləyicisi.

Seçkilərdə iştirak uğursuz oldu: biz AgentTesla-nı təmiz suya gətiririk. 3-cü hissə
Bu yükləyici təhlilə qarşı çıxmaq üçün geniş funksionallığa malikdir.

Seçkilərdə iştirak uğursuz oldu: biz AgentTesla-nı təmiz suya gətiririk. 3-cü hissə
Bu funksiyaya daxili Windows təhlükəsizlik sistemlərindən yan keçmək, Windows Defender-i söndürmək, eləcə də sandbox və virtual maşın aşkarlama mexanizmləri daxildir. Faydalı yükü şəbəkədən yükləmək və ya resurs bölməsində saxlamaq mümkündür. Başlatma öz prosesinə, öz prosesinin dublikatına və ya proseslərə inyeksiya yolu ilə həyata keçirilir. MSBuild.exe, vbc.exe и RegSvcs.exe təcavüzkarın seçdiyi parametrdən asılı olaraq.

Lakin, bizim üçün onlar daha az əhəmiyyətlidir AntiDump- əlavə edən bir xüsusiyyət ConfuserEx. Onun mənbə kodu ilə tanış olmaq olar Github.

Qorunmanı söndürmək üçün seçimdən istifadə edin dnSpyredaktə etməyə imkan verir IL-kod.

Seçkilərdə iştirak uğursuz oldu: biz AgentTesla-nı təmiz suya gətiririk. 3-cü hissə
Seçkilərdə iştirak uğursuz oldu: biz AgentTesla-nı təmiz suya gətiririk. 3-cü hissə
Saxla və qoyun breakpoint faydalı yükün şifrəsini açma funksiyasının zəng sətirinə. Əsas sinifin konstruktorundadır.

Seçkilərdə iştirak uğursuz oldu: biz AgentTesla-nı təmiz suya gətiririk. 3-cü hissə
Yükü işə salın və boşaltın. Əvvəllər yazılmış YARA qaydalarından istifadə edərək, qarşımızda AgentTeslanın olmasını təmin edirik.

Seçkilərdə iştirak uğursuz oldu: biz AgentTesla-nı təmiz suya gətiririk. 3-cü hissə

Nümunə №3

Mənbə fayl icra edilə biləndir VB Native PE32sənəd.

Seçkilərdə iştirak uğursuz oldu: biz AgentTesla-nı təmiz suya gətiririk. 3-cü hissə
Entropiya təhlili şifrələnmiş məlumatların böyük bir hissəsinin mövcudluğunu göstərir.

Seçkilərdə iştirak uğursuz oldu: biz AgentTesla-nı təmiz suya gətiririk. 3-cü hissə
Ərizə formasını təhlil edərkən VB Decompiler qəribə pikselli fon görə bilərsiniz.

Seçkilərdə iştirak uğursuz oldu: biz AgentTesla-nı təmiz suya gətiririk. 3-cü hissə
Seçkilərdə iştirak uğursuz oldu: biz AgentTesla-nı təmiz suya gətiririk. 3-cü hissə
entropiya qrafası bmp-şəkil orijinal faylın entropiya qrafiki ilə eynidir və ölçüsü fayl ölçüsünün 85%-ni təşkil edir.

Seçkilərdə iştirak uğursuz oldu: biz AgentTesla-nı təmiz suya gətiririk. 3-cü hissə
Təsvirin ümumi görünüşü steqanoqrafiyanın istifadəsini göstərir.

Proses ağacının görünüşünə, həmçinin enjeksiyon markerinin olmasına diqqət yetirək.

Seçkilərdə iştirak uğursuz oldu: biz AgentTesla-nı təmiz suya gətiririk. 3-cü hissə
Seçkilərdə iştirak uğursuz oldu: biz AgentTesla-nı təmiz suya gətiririk. 3-cü hissə
Bu, qablaşdırmanın açılmasının davam etdiyini göstərir. Visual Basic-də yükləyicilər üçün (onlar VBKrypt və ya VBInjector) istifadəsi ilə xarakterizə olunur qabıq kodu faydalı yükü işə salmaq, həmçinin inyeksiyanın özünü yerinə yetirmək üçün.

Təhlil VB Decompiler hadisə nümayiş etdirdi Yük formada FegatassocAirballoon2.

Seçkilərdə iştirak uğursuz oldu: biz AgentTesla-nı təmiz suya gətiririk. 3-cü hissə
Gəlin gedək IDA pro göstərilən ünvana göndərin və funksiyanı öyrənin. Kod çox qarışıqdır. Bizi maraqlandıran hissə aşağıda göstərilmişdir.

Seçkilərdə iştirak uğursuz oldu: biz AgentTesla-nı təmiz suya gətiririk. 3-cü hissə
Burada prosesin ünvan sahəsi imza üçün skan edilir. Belə bir yanaşma çox şübhəlidir.

Birincisi, skan etməyə başlamaq üçün ünvan 0x400100. Bu dəyər statikdir və baza yerdəyişdikdə düzəliş edilmir. İdeal istixana şəraitində bu, sonunu göstərəcəkdir PE- icra olunan faylın başlığı. Bununla belə, baza statik deyil, onun dəyəri dəyişə bilər və dəyişən daşqınlara səbəb olmasa da, istədiyiniz imzanın həqiqi ünvanının axtarışı çox uzun müddət çəkə bilər.

İkincisi, imzanın dəyəri iWGK. Düşünürəm ki, 4 bayt unikallığı təmin etmək üçün çox kiçikdir. Və birinci məqamı nəzərə alsanız, səhv etmək ehtimalı kifayət qədər yüksəkdir.

Əslində, istədiyiniz fraqment əvvəllər tapılanın sonuna əlavə olunur bmp-şəkillər ofset üzrə 0xA1D0D.

Seçkilərdə iştirak uğursuz oldu: biz AgentTesla-nı təmiz suya gətiririk. 3-cü hissə
İcra Shellcode iki mərhələdə həyata keçirilir. Birincisi əsas gövdənin şifrəsini açır. Bu halda açar sadalama ilə müəyyən edilir.

Seçkilərdə iştirak uğursuz oldu: biz AgentTesla-nı təmiz suya gətiririk. 3-cü hissə
Deşifrəni ataq Shellcode və xətlərə baxın.

Birincisi, biz indi uşaq prosesi yaratmaq funksiyasını bilirik: CreateProcessInternalW.

Seçkilərdə iştirak uğursuz oldu: biz AgentTesla-nı təmiz suya gətiririk. 3-cü hissə
İkincisi, sistemdə fiksasiya mexanizmindən xəbərdar olduq.

Seçkilərdə iştirak uğursuz oldu: biz AgentTesla-nı təmiz suya gətiririk. 3-cü hissə
Orijinal prosesə qayıdaq. qoyaq breakpoint haqqında CreateProcessInternalW və icraya davam edin. Sonra əlaqəni müşahidə edirik NtGetContextThread/NtSetContextThread, icra başlanğıc ünvanını ünvana dəyişir ShellCode.

Seçkilərdə iştirak uğursuz oldu: biz AgentTesla-nı təmiz suya gətiririk. 3-cü hissə
Yaradılmış prosesə sazlayıcı ilə qoşuluruq, hadisəni aktivləşdiririk Kitabxananın yüklənməsini/boşalmasını dayandırın, biz prosesi davam etdiririk və yüklənməsini gözləyirik . NET-kitabxanalar.

Sonra, istifadə ProsesHacker zibil bölgələri olan qablaşdırılmamış . NET- Əlavə.

Biz bütün prosesləri dayandırırıq və sistemdə yerləşmiş zərərli proqramın surətini çıxarırıq.

Seçkilərdə iştirak uğursuz oldu: biz AgentTesla-nı təmiz suya gətiririk. 3-cü hissə
Seçkilərdə iştirak uğursuz oldu: biz AgentTesla-nı təmiz suya gətiririk. 3-cü hissə
Atılmış fayl qoruyucu ilə qorunur .NET reaktoru, yardım proqramı ilə asanlıqla çıxarılır de4dot.

Seçkilərdə iştirak uğursuz oldu: biz AgentTesla-nı təmiz suya gətiririk. 3-cü hissə
Daha əvvəl yazılmış YARA qaydalarından istifadə edərək, qarşımızda AgentTesla olduğundan əmin oluruq.

ümumiləşdirmək üçün

Beləliklə, biz üç mini işin timsalında nümunələrin yarı avtomatik açılması prosesini ətraflı nümayiş etdirdik, həmçinin tam hüquqlu bir işə əsaslanan zərərli proqram təhlili apardıq, öyrənilən nümunənin AgentTesla olduğunu aşkar etdik. onun funksionallığı və kompromis göstəricilərinin tam siyahısı.

Bizim apardığımız zərərli obyektin təhlili çox vaxt və səy tələb edir və bu işi şirkətdə xüsusi işçi yerinə yetirməlidir, lakin heç də bütün şirkətlər ştatda analitikin olmasına hazır deyil.

Group-IB Kompüter Məhkəmə Ekspertizası və Zərərli Kod Təhlili Laboratoriyası tərəfindən təqdim edilən xidmətlərdən biri kiber insidentlərə cavab verməkdir. Müştərilərin sənədləri əlaqələndirməyə və kiberhücum zamanı müzakirələrə vaxt itirməməsi üçün Group-IB İnsident Cavab Retainer, abunə öncəsi insidentlərə cavab xidməti, həm də zərərli proqram təhlili addımını ehtiva edir. Bu barədə ətraflı məlumat əldə etmək olar burada.

AgentTesla nümunələrinin necə açıldığını bir daha öyrənmək və CERT Group-IB mütəxəssisinin bunu necə etdiyini görmək istəyirsinizsə, bu mövzuda vebinarın qeydini yükləyə bilərsiniz. burada.

Mənbə: www.habr.com

Добавить комментарий