Ing pungkasan Mei, kita nemokake kampanye kanggo nyebarake program malware Remote Access Trojan (RAT) sing ngidini panyerang ngontrol sistem sing kena infeksi saka jarak jauh.
Klompok sing diteliti dibedakake kanthi kasunyatan manawa ora milih kulawarga RAT khusus kanggo infeksi. Sawetara Trojan ditemokake ing serangan ing kampanye kasebut (kabeh kasedhiya). Kanthi fitur iki, grup kasebut ngelingake kita babagan raja tikus - kewan mitos sing kasusun saka rodents kanthi buntut sing gegandhengan.
Asli dijupuk saka monograf dening K. N. Rossikov "Tikus lan tikus kaya tikus, sing paling penting sacara ekonomi" (1908)
Kanggo ngurmati makhluk iki, kita menehi jeneng grup sing dianggep RATKing. Ing kirim iki, kita bakal rinci babagan cara para panyerang nindakake serangan kasebut, alat apa sing digunakake, lan uga nuduhake pikirane babagan atribusi kanggo kampanye iki.
Kemajuan saka serangan
Kabeh serangan ing kampanye iki ditindakake miturut algoritma ing ngisor iki:
Pangguna nampa email phishing kanthi pranala menyang Google Drive.
Nggunakake link kasebut, korban ndownload skrip VBS ala sing nemtokake perpustakaan DLL kanggo mbukak muatan pungkasan menyang registri Windows lan ngluncurake PowerShell kanggo nglakokake.
Pustaka DLL nyuntikake muatan pungkasan - nyatane, salah sawijining RAT sing digunakake dening panyerang - menyang proses sistem lan ndhaptar skrip VBS ing autorun supaya bisa entuk pijakan ing mesin sing kena infeksi.
Muatan pungkasan ditindakake ing proses sistem lan menehi panyerang kemampuan kanggo ngontrol komputer sing kena infeksi.
Skema bisa diwakili kaya mangkene:
Sabanjure, kita bakal fokus ing telung tahap pisanan, amarga kita kasengsem ing mekanisme pangiriman malware. Kita ora bakal njlèntrèhaké kanthi rinci mekanisme operasi malware kasebut. Kasedhiya kanthi akeh - bisa didol ing forum khusus, utawa disebarake minangka proyek sumber terbuka - lan mulane ora unik kanggo grup RATKing.
Analisis tahap serangan
Tahap 1. Email phishing
Serangan kasebut diwiwiti kanthi korban nampa layang ala (para panyerang nggunakake template sing beda karo teks; gambar ing ngisor iki nuduhake salah sawijining conto). Pesen kasebut ngemot link menyang repositori sing sah drive.google.com, sing mesthine mimpin menyang kaca download dokumen PDF.
Contoh email phishing
Nanging, nyatane, dudu dokumen PDF sing dimuat, nanging skrip VBS.
Nalika sampeyan ngeklik link saka email ing gambar ing ndhuwur, file jenenge Cargo Flight Details.vbs. Ing kasus iki, panyerang malah ora nyoba kanggo nyamar file minangka dokumen sah.
Ing wektu sing padha, minangka bagéan saka kampanye iki, kita nemokake skrip jenenge Cargo Trip Detail.pdf.vbs. Bisa uga wis dadi PDF sing sah amarga Windows ndhelikake ekstensi file kanthi standar. Bener, ing kasus iki, anggepan isih bisa ditimbulake dening lambang kasebut, sing cocog karo skrip VBS.
Ing tahap iki, korban bisa ngerteni penipuan kasebut: mung deleng file sing diunduh sedhela. Nanging, ing kampanye phishing kasebut, panyerang asring ngandelake pangguna sing ora peduli utawa kesusu.
Tahap 2. Operasi script VBS
Skrip VBS, sing pangguna bisa mbukak kanthi ora sengaja, ndhaptar perpustakaan DLL ing registri Windows. Skrip kasebut dibuwang: garis-garis ing njero ditulis minangka bait sing dipisahake kanthi karakter sing sewenang-wenang.
Tuladha skrip sing dibuwang
Algoritma deobfuscation cukup prasaja: saben karakter katelu ora kalebu saka string obfuscated, sawise asil decoded saka base16 menyang string asli. Contone, saka nilai 57Q53s63t72s69J70r74e2El53v68m65j6CH6Ct (disorot ing gambar ing ndhuwur) baris sing diasilake yaiku WScript.Shell.
Kanggo deobfuscate strings, kita nggunakake fungsi Python:
def decode_str(data_enc):
return binascii.unhexlify(''.join([data_enc[i:i+2] for i in range(0, len(data_enc), 3)]))
Ing ngisor iki, ing baris 9-10, kita nyorot nilai sing deobfuscation ngasilake file DLL. Dheweke sing diluncurake ing tahap sabanjure nggunakake PowerShell.
String karo DLL obfuscated
Saben fungsi ing skrip VBS dieksekusi minangka strings deobfuscated.
Sawise mbukak skrip, fungsi kasebut diarani wscript.sleep - digunakake kanggo nindakake eksekusi sing ditundha.
Sabanjure, skrip bisa digunakake karo registri Windows. Dheweke nggunakake teknologi WMI kanggo iki. Kanthi bantuan, tombol unik digawe, lan awak file eksekusi ditulis ing parameter kasebut. Registri wis diakses liwat WMI nggunakake printah ing ngisor iki:
Ing tahap katelu, DLL angkoro ngemot muatan pungkasan, nyuntikake menyang proses sistem, lan mesthekake yen skrip VBS diwiwiti kanthi otomatis nalika pangguna mlebu.
Mbukak liwat PowerShell
DLL dieksekusi nggunakake printah ing ngisor iki ing PowerShell:
nampa data nilai registri kanthi jeneng rnd_value_name — data iki minangka file DLL sing ditulis ing platform .Net;
dimuat modul .Net asil menyang memori proses powershell.exe nggunakake fungsi [System.Threading.Thread]::GetDomain().Load()(deskripsi rinci babagan fungsi Load (). kasedhiya ing situs web Microsoft);
nindakake fungsi kasebut GUyyvmzVhebFCw]::EhwwK() - eksekusi perpustakaan DLL diwiwiti - kanthi paramèter vbsScriptPath, xorKey, vbsScriptName... Parameter xorKey disimpen tombol kanggo decrypting payload final, lan paramèter vbsScriptPath и vbsScriptName ditransfer kanggo ndhaptar skrip VBS ing autorun.
Katrangan saka perpustakaan DLL
Ing wangun decompiled, bootloader katon kaya iki:
Loader ing wangun decompiled (fungsi sing miwiti eksekusi perpustakaan DLL digarisi abang)
Bootloader dilindhungi dening .Net Reactor protector. Utilitas de4dot nindakake tugas sing apik kanggo mbusak pelindung iki.
Loader iki:
nyuntikake muatan menyang proses sistem (ing conto iki svchost.exe);
Aku nambahake skrip VBS menyang autorun.
Injeksi muatan
Ayo goleki fungsi sing diarani skrip PowerShell.
Fungsi sing diarani skrip PowerShell
Fungsi iki nindakake tumindak ing ngisor iki:
dekripsi rong set data (array и array2 ing gambar). Dheweke asline dikompres nggunakake gzip lan dienkripsi nganggo algoritma XOR kanthi kunci xorKey;
data disalin menyang wilayah memori diparengake. Data saka array - menyang area memori nuding intPtr (payload pointer ing gambar); data saka array2 - menyang area memori nuding intPtr2 (shellcode pointer ing gambar);
disebut fungsi CallWindowProcA(katrangan Fungsi iki kasedhiya ing situs web Microsoft) kanthi paramèter ing ngisor iki (jeneng paramèter kasebut kapacak ing ngisor iki, ing gambar kasebut padha ing urutan sing padha, nanging kanthi nilai sing bisa digunakake):
lpPrevWndFunc - pointer kanggo data saka array2;
hWnd - pointer menyang senar sing ngemot path menyang file eksekusi svchost.exe;
Msg - pointer kanggo data saka array;
wParam, lParam - paramèter pesen (ing kasus iki, paramèter kasebut ora digunakake lan duweni nilai 0);
digawe file %AppData%MicrosoftWindowsStart MenuProgramsStartup<name>.urlngendi <name> - iki 4 karakter pisanan saka parameter vbsScriptName (ing gambar, fragmen kode kanthi tumindak iki diwiwiti kanthi printah File.Copy). Kanthi cara iki, malware kasebut nambahake file URL menyang dhaptar file autorun nalika pangguna mlebu lan dadi dipasang ing komputer sing kena infeksi. Berkas URL ngemot pranala menyang skrip:
Kanggo mangerteni carane injeksi ditindakake, kita dekripsi susunan data array и array2. Kanggo nindakake iki, kita nggunakake fungsi Python ing ngisor iki:
def decrypt(data, key):
return gzip.decompress(
bytearray([data[i] ^ key[i % len(key)] for i in range(len(data))])[4:])
Akibaté, kita nemokake manawa:
array minangka file PE - iki minangka beban pungkasan;
array2 yaiku shellcode sing dibutuhake kanggo nindakake injeksi.
Shellcode saka array array2 liwati minangka nilai fungsi lpPrevWndFunc menyang fungsi CallWindowProcA. lpPrevWndFunc - fungsi callback, prototipe katon kaya iki:
Dadi nalika sampeyan mbukak fungsi CallWindowProcA karo paramèter hWnd, Msg, wParam, lParam shellcode saka array dieksekusi array2 kanthi argumentasi hWnd и Msg. hWnd minangka pointer menyang string sing ngemot path menyang file sing bisa dieksekusi svchost.exelan Msg - pointer menyang payload pungkasan.
Shellcode nampa alamat fungsi saka kernel32.dll и ntdll32.dll adhedhasar nilai hash saka jenenge lan nyuntikake muatan pungkasan menyang memori proses svchost.exenggunakake teknik Proses Hollowing (sampeyan bisa maca liyane babagan iki artikel). Nalika nyuntikake shellcode:
digawe proses svchost.exe ing negara dilereni soko tugas nggunakake fungsi CreateProcessW;
banjur ndhelikake tampilan bagean ing papan alamat proses svchost.exe nggunakake fungsi NtUnmapViewOfSection. Mangkono, program mbebasake memori saka proses asli svchost.exekanggo banjur nyedhiakke memori kanggo payload ing alamat iki;
memori diparengake kanggo payload ing papan alamat proses svchost.exe nggunakake fungsi VirtualAllocEx;
Miwiti proses injeksi
nulis isi muatan menyang ruang alamat proses svchost.exe nggunakake fungsi WriteProcessMemory (kaya ing gambar ing ngisor iki);
nerusake proses svchost.exe nggunakake fungsi ResumeThread.
Rampung proses injeksi
Malware sing bisa didownload
Minangka asil saka tumindak sing diterangake, salah siji saka sawetara malware kelas RAT diinstal ing sistem sing kena infeksi. Tabel ing ngisor iki nyathet malware sing digunakake ing serangan kasebut, sing bisa digandhengake karo siji klompok panyerang, amarga conto kasebut ngakses server perintah lan kontrol sing padha.
Conto malware sing disebarake kanthi server kontrol sing padha
Rong prekara sing penting ing kene.
Kaping pisanan, kasunyatan manawa para panyerang nggunakake sawetara kulawarga RAT sing beda bebarengan. Prilaku iki ora khas kanggo grup cyber sing kondhang, sing asring nggunakake alat sing padha karo sing wis dikenal.
Kapindho, RATKing nggunakake malware sing didol ing forum khusus kanthi rega murah, utawa malah dadi proyek sumber terbuka.
Dhaptar malware sing luwih lengkap digunakake ing kampanye-karo siji caveat penting-diwenehake ing mburi artikel.
Babagan grup
Kita ora bisa ngubungake kampanye angkoro sing diterangake menyang penyerang sing dikenal. Saiki, kita percaya manawa serangan kasebut ditindakake dening klompok sing dhasar anyar. Nalika kita nulis ing wiwitan, kita diarani RATKing.
Kanggo nggawe skrip VBS, grup kasebut mbokmenawa nggunakake alat sing padha karo sarana kasebut VBS-Crypter saka pangembang NYAN-x-CAT. Iki dituduhake kanthi mirip script sing digawe program iki karo skrip penyerang. Khusus, loro-lorone:
nindakake eksekusi telat nggunakake fungsi kasebut Sleep;
nggunakake WMI;
ndhaftar awak file eksekusi minangka parameter kunci registri;
eksekusi file iki nggunakake PowerShell ing papan alamat dhewe.
Kanggo gamblang, mbandhingake printah PowerShell kanggo mbukak file saka pendaptaran, sing digunakake dening script digawe nggunakake VBS-Crypter:
Elinga yen panyerang nggunakake sarana liyane saka NYAN-x-CAT minangka salah sawijining muatan - LimeRAT.
Alamat server C&C nuduhake fitur khas liyane saka RATKing: grup luwih milih layanan DNS dinamis (ndeleng dhaptar C&C ing tabel IoC).
IoC
Tabel ing ngisor iki nyedhiyakake dhaptar lengkap skrip VBS sing paling mungkin digandhengake karo kampanye sing diterangake. Kabeh skrip iki padha lan nindakake kira-kira urutan tumindak sing padha. Kabeh mau nyuntikake malware kelas RAT menyang proses Windows sing dipercaya. Kabeh mau duwe alamat C&C sing didaftar nggunakake layanan Dynamic DNS.
Nanging, kita ora bisa ngaku yen kabeh skrip iki disebarake dening panyerang sing padha, kajaba conto kanthi alamat C&C sing padha (contone, kimjoy007.dyndns.org).