Bu məqalənin əsas mövzusu dövlət qurumlarının birində baş verən real insident hadisəsi üzərindən zərərvericinin aşkarlanması və analizi prosesidir. Məqalə 2 hissədən ibarətdir.
Zərərverici nüsxənin aşkarlanması
Bölməmizə daxil olan informasiya əsasında istifadəçinin (x) kompüterindən məlumat oğurlandığı aşkar edildi. “Pentest” komandası, internet üzərindən oğurlanan bəzi məlumatları əldə edə bildilər və bizimlə bölüşdülər. Sözü gedən məlumatlar əsasında dərhal araşdırmalara başladıq. Sızdırılan məlumatlar arasında istifadəçiyə aid kritik informasiyalar yer alırdı. Bura sistemə quraşdırılan proqram təminatları, web bələdçi cookie məlumatları, web bələdçi içərisində saxlanılan şifrələr, kompüter haqqında informasiyalar və s. aid idi. Bu məlumatlar arasından istifadəçini aydınlaşdırıb (e-poçt ünvanı üzərindən) kompüterində analizə başladıq.
İlk olaraq yoluxan sistemin internet ilə bağlantısını kəstik. Loqların analizinə sistemdə fəaliyyət göstərən proseslərdən və şəbəkə bağlantılarından başladıq. Lakin nəzərə çarpan hər hansısa bir anomaliya ilə rastlaşmadıq. Ardınca sistemdə defolt anti-virus olaraq fəaliyyət göstərən “Windows Defender” hadisələrinə baxdıq. Burada fevral ayının 10 - da bir neçə fayl defender tərəfindən zərərverici olaraq aşkarlanmış və bloklanmışdı.
Diqqətimizi çəkən 2 önəmli məqam:
- Blok edilən fayllar hamısı eyni gündə və bir-birinə yaxın zaman aralıqlarında icra edilmişdilər
- 3 ədəd istisna olmaqla (bunlardan ehtimal ki, arxiv ilə gəlmişdilər) əsas proses olaraq exe qeydə edilmişdi
Əlavə olaraq fayl adlarına baxdıqda istifadəçinin hansısa proqram təminat (lar) üçün crack axtardığını anladıq. Sözü gedən faylları karantin qovluğundan ixrac edib analizlərini apardıq. Nüsxələr arasında bizə lazım olan zərərverici mövcud deyildi. Davam olaraq əməliyyat sistemində planlaşdırılmış tapşırıqlarlar (scheduled tasks) siyahısına baxdıq. Lakin istədiyimiz nəticəni əldə edə bilmədik. Bu arada “Pentest” komandası tərəfindən yeni bir məlumat daxil oldu. Bu dəfə sistemdən sızdırılan başqa bir məlumat.
Yuxarıda ki, şəkildə loq faylı bizə zərəverici haqqında 2 vacib ipucu verirdi:
- Log faylının sistemdən götürülmə vaxti - 10 fevral 2023 10:49 (Central European Time (CET) – UTC)
- Loq başlığında olan şəkil (Raccoon Stealer zərərvericisinə aid logo)
Artıq axtarış diametrini azda olsa kiçildə bilərdik. Bundan sonra şəbəkə firewall üzərindən filter tətbiq edərək 10 fevral 2023 saat 10:40 və sonrasına baxdıq. Saat 10:49 79.137.197.190 adresinə müraciət edilib.
Firewall alert verməsinə baxmayaraq bağlantı blok edilməyib. Sözü gedən IP zərərvericiyə aid idi. İlkin işə salınma zamanı 79.137.197.190 adresindən (HTTP – 80) özfəaliyyət üçün lazım olan legitim modulları hədəf sistemə endirir.
Endirilən fayllara "%AppData%\LocalLow" qovluğunda rast gəldik. Lakin zərərvericinin harada olduğu haqqında əlimizdə hələdə dəyərli heç bir məlumat yox idi. Yuxarıdakı şəbəkə loqları bizə zərərvericinin ilk bağlantı vaxtı haqqında ipucu vermişdi. Bir digər maraqlı məqam isə "Windows Defender" loqlarında Winrar.exe prosesinin bir neçə dəfə aşkarlanması idi. Əlavə olaraq yoluxan istifadəçinin bu vaxt aralığında internetdə crack, keygen tərzi proqram təminatları axtardığınıda bildiyimiz üçün sistemdə arxiv faylları axtarmağa başladıq. Winrar ilə ixrac edilən arxivlər standart olaraq %temp% qovluğunda Rar mətni ilə başlayan qovluqlar yaradır. Məhz bu informasiyadan hərəkət edərək %temp% qovluğunda zərərvericinin bağlantı qurduğu vaxt damğasında (və ya ona yaxın) yaradılan qovluqlara baxdıq. 3 ədəd Rar mətni ilə başlayan qovluq var idi. Bunlardan 2 - si yoluxan şəxsin istifadə etdiyi Print Conductor proqram təminatı üçün crack-ların olduğu arxiv faylları idi.
Bu fayllar geriyə qaytarıb analiz etdik lakin zərərvericiyə aid izlərə rast gəlmədik. Son olaraq növbəti və sonunca arxiv qovluğuna baxdıq.
Bu qovluq içərisində 790 MB həcmində Satup1.exe adında fayla rast gəldik. Faylı analiz üçün qovluqdan ixrac etdik.
İcra edilə bilən fayl VMProtect ilə qorunurdu. Bu isə fayl üzərində şübhələrimizi birazda artırdı. Firewall loqlarından zərərvericinin HTTP üzərindən məlumat alış-verişi etdiyini bilirdik. Bağlantı ünvanları üzərindən bizə lazım olan zərərverici olub-olmadığını öyrənə bilərdik. Expertiza prosesini sürətləndirmək üçün faylı icra edərək şəbəkə dinləmələrindən məlumat əldə etdik. Nəticə müsbətdir:
Zərərvericini aşkar etdikdən sonra növbəti mərhələdə zərərvericinin hansı saytdan və necə endirildiyini araşdırmağa başladıq. Firewall loqlarında crack və keygən endirmək üçün tez-tez istifadə edilən bir neçə sayt diqqətimizi cəlb etmişdi.
kimi saytlara giriş edilmişdi. Bu saytlar içərisində yoluxmanın qeydə alındığı zamanda, istifadəçinin “Print Conductor” proqram təminatı üçün crack axtardığını bilirdik. www.rsload.xyz firewall tərəfindən blok edilmişdi. ".net" domenləri içərisində isə bizə lazım olan məlumatlara rast gəlmədik. www.softload.su və www.1progs.ru saytındada həmçinin. Geriyə www.pesktop.com və www.adainstaller.com saytları qaldı. Son olaraq www.pesktop.com saytından Print Conductor üçün crack endirməyə cəhd etdik. Sayt ilk olaraq bizi www.adainstaller.com saytına yönləndirdi. Burada yükləmə düyməsinə kliklədiyimiz zaman isə www.mediafire.com saytına.
Endirilən fayl: FinalVersion_Setup_Use_2022_PassWrd.rar
Maraqlı bir məqam isə ondan ibarət idi ki www.pesktop.com saytından hər hansı bir crack və keygən endirərkən yalnız eyni fayl (FinalVersion_Setup_Use_2022_PassWrd.rar) endirilirdi. Arxiv faylı içərisində bizim zərərvericiyə aid xeş məlumatlarına rast gəlməsəkdə diqqətimizi çəkən bir şey oldu. SetupFile.exe faylının ölçüsü yoluxan sistemdən aşkarladığımız zərərvericinin ölçüsünə yaxın idi. 732 MB
Eyni ilə əldə etdiyimiz zərərverici kimi bu nüsxədə VMProtect ilə qorunurdu. Şəbəkə aktivlikləridə oxşar şəkildə bizim sistemdən tapdığımız zərərverici ilə bənzərliklər daşıyırdı.
Bu isə zərərvericinin 99% məhz www.pesktop.com saytı üzərindən endirildiyinə işarə idi.
Zərərverici nüsxənin analizi
Yoluxan komputerdən əldə etdiyimiz nüsxənin həcmi olduqca yüksək olduğundan proqramın hər hansı metod ilə süni üsulla (VMProtect) həcminin artırıldığını düşünürdük. Bunun üçün nüsxə üzərində biraz araşdırma edərək içərisindən azı 6 dəfə kiçik həcmə malik daha bir icra edilə bilən nüsxə ixrac etməyi bacardıq. Bu nüsxədə orijinal nüsxə kimi VMProtect ilə mühafizə edilirdi.
PE faylı 7 ədəd VMProtect proqram təminatı tərəfindən yaradılmış bölməni özündə saxlayırdı.
Olduqca çətin bir qoruma mexanizmindən (virtual maşın) istifadə edildiyi üçün analiz prosesi xeyli yorucu keçdi. Lazım olan məlumatları əldə edə bilmək üçün çox sayda fəndlərdən istifadə etmək məcburiyyətində qaldıq. İlk olaraq zərərvericinin yüklədiyi dinamik kitabxana fayllarına nəzər saldıq.
Əməliyyatın çağrıldığı prosedur bizim üçün giriş nöqtəsidir. Bu prosedur içərisində zərərverici özünə lazım olan kitabxana fayllarını yaddaşa yükləyir və lazım olan funksiyaların adreslərini növbəti çağırışlar üçün struktur içərisində saxlayır.
Lazım olan məlumatlar stack ərazisinə push edildikdən sonra Decrypt_Stub olaraq adlandırdığımız funksiya çağrılır və deşifrələmə (xor) əməliyyatı icra edilir.
Import edilən kitabxanalar və funksiyalar:
KERNEL32.DLL
LoadLibraryW, GetUserDefaultLocaleName , GetEnvironmentVariableW
lstrlenA, FreeLibrary, GlobalFree, CreateFileW, GetTimeZoneInformation
GetProcAddress, lstrcpyA, ReadFile
lstrlenW, WriteFileW, SetCurrentDirectoryW
lstrcmpW, CloseHandle, GetLastError
FindNextFileW, FindFirstFileW, Process32First
GetFileSize, OpenMutexW, WideCharToMultiByte
GlobalAlloc, GetCurrentProcess, ExitProcess
CreateMutexW, GetSystemWow64DirectoryW, GetLocaleInfoW
GlobalMemoryStatusEx, GetDriveTypeW, OpenProcess
LocalAlloc, lstrcmpiW, SetEnvironmentVariableW
CopyFileW, GetModuleFileNameW, lstrdcmpA
Sleep, GetSystemInfo, LocalFree
Process32Next, DeleteFileW, lstrcpynA
MultiByteToWideChar, FindClose, CreateToolhelp32Snapshot
HeapFree, GetUserDefaultLCID, GetLogicalDriveStringsW
SHLWAPI.dll
PathMatchSpecW, StrCpyW, StrStrIW, StrStrW, PathCombineW
StrRChrW, StrToIntA, StrToIntW, StrStrA, StrToInt64ExW
ADVAPI32.DLL, RtlGenRandom, (SystemFunction036) , RegEnumKeyExW
RegCloseKey, DuplicateTokenEx, GetUserNameW, RegOpenKeyExW
RegQueryValueExW, GetTokenInformation, CreateProcessWithTokenW, CharUpperW
OLE32.DLL
CoInitialize
CoCreateInstance
WININET.DLL
HttpQueryInfoA, HttpOpenRequestW, InternetReadFile
InternetOpenUrlW, HttpQueryInfoW, InternetCloseHandle, InternetConnectW
InternetSetOptionW, InternetOpenW, HttpSendRequestW, InternetOpenUrlA
SHELL32.DLL
ShellExecuteW, SHGetFolderPathW, SHGetSpecialFolderPathW, ConvertSidToStringSidW, OpenProcessToken
USER32.DLL
EnumDisplayDevices
GetClientRect
GetDC
GetDesktopWindow
GetSystemMetrics
ReleaseDC
wsprintfw
CRYPT32.DLL
CryptStringToBinaryA
CryptStringToBinaryW
CryptBinaryToStringW
CryptUnProtectData
Racoon ilk olaraq \REGISTRY\MACHINE\SOFTWARE\Microsoft\Cryptography içərisində yerləşən və maşın üçün unikal olan (MachineGUID) dəyərini götürür.
Maşın GUID məlumatlarını əldə etdikdən sonra zərərverici ilk olaraq 79.137.197.190 ünvanına qoşulur və HTTP POST sorğusu ilə GUID məlumatını qarşı tərəfə göndərir. Bağlantı ilə bağlı problem yaranarsa zərərverici bu dəfə HTTP üzərindən aşağıdakı adreslərə qoşulmağa cəhd edir. Yaddaş bölgəsindən ixrac edilən ünvanlar.
Zərərvericinin analizi zamanı artıq sözü gedən ünvanlar fəaliyyət göstərmədikləri üçün öncədən topladığımız loqların köməkliyi ilə şəbəkə aktivliklərini simulyasiya edərək analizi prosesini davam etdirdik. Zərərverici ilk bağlantını qurduqdan sonra qarşı tərəfə maşın haqqında məlumatları göndərir və aşağıdakı cavabı alır.
Burada zərərvericinin fəaliyyətinin davam etdirə bilməsi üçün lazım olan modulların haradan endiriləcəyini göstərən url adreslər mövcuddur. Növbəti əməliyyat olaraq göndərilən məlumatları təhlil edir və faylları sistemə endirir. Hədəf qovluq: %homedrive%\ Users\*\AppData\LocalLow
Daha sonra zərərverici user defolt locale informasiyasını, vaxt zonası parametrlərini, sistemə quraşdırılmış proqram təminatları siyahısını, sistem versiyasını, sistem metrika (SM_CYSCREEN, SM_CXSCREEN), operativ yaddaş haqqında və s. məlumatları götürür və qarşı tərəfə (POST) göndərir.
Bundan sonra zərərverici sistemdə olan browser məlumatlarını oğurlama çalışır. Bunun üçün ilk olaraq %homedrive%\Users\*\ AppData qovluğunu rekursiv olaraq gəzir və bəzi qarşılaşdırmalar edir. Məsələn Google Chrome-a aid məlumatları təyin etmək üçün %AppData% alt qovluqlarında User Data (Chromium) adlı qovluğunu, Mozilla Firefox-a aid məlumatları oğurlamaq üçün isə Profiles qovluğunu axtarır. Lazım olan faylları əldə etdikdən sonra sqlite3 modulu ilə web bələdçilərinə aid tarix bazasını təhlil edir və içərisindən lazım olan informasiyaları oğurlayır.
Zərərverici ilk olaraq sözü gedən faylları öz qovluğuna random generasiya etdiyi fayl adı ilə kopya edir və həmin fayllara sqlite sorğuları ilə sorğular göndərərək lazım olan bütün məlumatları əldə edir.
C:\Users\*\AppData\LocalLow\rJr413CADP71
Bundan sonra zərərverici browser yaddaşında saxlanılan şifrələri götürmək üçün lazım olan faylı (logins.json) faylını yenidən random ad ilə öz qovluğuna kopyalayır və təhlil edir.
Test üçün bizim tərəfimizdən bilərəkdən browser yaddaşına yazılan məlumat deşifrə edilir. Deşifrləmə əməliyyatları üçün üçün nss3 kitabxanasından istifadə edir.
Zərərvericinin bir digər missiyası sistemdə kripto valyuta haqqında məlumatlar axtarmaqdır. Hansı məlumatları axtaracağını idarəetmə serverindən (konfiqurasiya məlumatları) ilk bağlantı qurduğu zaman qəbul edir və bunun əsasında axtarış edir.
Son olaraq isə zərərverici konfiqurasiya əsasında aşağıdakı qovluqlarda olan mətn (*.txt) fayllarını öz qovluğuna kopyalayır və qarşı tərəfə göndərir.
Indicators of Compromise
6C10B5260A41CFF517ADBA563D0A5065
BA71A94FDF690F626D935FC648B77009175E7F72
BF4E9FAB6ABCCB9CA8F81ABC9A0FD03C
BA1C94FE92C4D54B769467C1A0760A12D1FCDBA2
94.142.138.9
79.137.197.160
94.142.138.10
94.142.138.9
79.137.197.190