Geografi serangan kelompok TA505 untuk 2019Tim analis Threat Intelligence kami dari
PT Expert Security Center telah memantau penjahat cyber dari TA505 selama enam bulan. Bidang yang diminati para penyerang adalah keuangan, dan tujuannya terletak di banyak negara di berbagai benua.
Grup TA505 dikenal untuk apa
Kelompok penyerang ini memiliki
sejarah yang kaya : sejak 2014, mereka telah mendaftarkan Trojan Dridex perbankan, botnet Neutrino, serta seluruh rangkaian kriptografer - Locky, Jaff, GlobeImposter, dll.
Aktivitas kelompok ini direkam di seluruh dunia - dari Amerika Utara hingga Asia Tengah. Catatan: kami mencatat kasus terisolasi pengelompokan TA505 berbahaya di Rusia, tetapi ada alasan untuk meyakini bahwa para penyerang tidak memiliki target di negara kami, dan surat-surat itu sifatnya acak.
Terlepas dari motivasi keuangan kelompok yang dominan, di antara tujuannya dalam enam bulan terakhir terdapat lembaga penelitian, organisasi industri energi, layanan kesehatan, perusahaan penerbangan, dan bahkan sektor publik.
Distribusi serangan TA505 oleh industri untuk 2019Di bawah ini adalah contoh email phising yang berisi perangkat lunak berbahaya yang dikembangkan oleh grup dan ditargetkan, dilihat dari alamat email, ke Kantor Luar Negeri Inggris.

Sejak musim semi 2018, grup ini telah menggunakan Alat Akses Jarak Jauh FlawedAmmyy, dan sejak akhir tahun ini telah menggunakan backdoor ServHelper baru. TA505 - salah satu dari sedikit yang dapat membanggakan aktivitas yang kuat untuk waktu yang lama. Selain itu, dengan setiap gelombang serangan baru, mereka membawa perubahan menarik pada alat mereka.
TA505 Group Discovery Dynamics berdasarkan Bulan untuk 2019Tentu saja, aktivitas riuh seperti itu tidak luput dari perhatian: ada banyak publikasi rekan kami dari
Proofpoint ,
Trend Micro ,
Yoroi dan tidak hanya tentang teknik jahat dan malware. Namun, banyak detail menarik diabaikan:
- pengidentifikasi PE packer kelompok;
- variasi dari backdoor ServHelper, di mana penekanannya bukan pada fungsionalitasnya sendiri, tetapi pada implementasi NetsupportManager yang sudah jadi dan terkenal;
- infrastruktur jaringan: pendaftar karakteristik, host, termasuk persimpangan dengan infrastruktur kelompok Buhtrap;
- grup VPO lain yang tidak dijelaskan sebelumnya.
Artikel ini adalah yang pertama dari serangkaian posting kami tentang TA505.
Bagian Satu Bertemu dengan paket
Pada pertengahan Juni 2019, kami memperhatikan bahwa pengunduh malware FlawedAmmy berikutnya secara signifikan berbeda dari versi sebelumnya: misalnya, representasi visual dari kode program dalam editor heksadesimal berubah, dan bahkan menjadi sesuatu karakteristik dari beberapa sampel yang diambil:
Representasi kode program ASCIIAnalisis cepat terhadap kode menunjukkan bahwa di hadapan kami ada paket yang tidak diketahui dari file yang dapat dieksekusi. Kemudian ternyata bahwa paket ini tidak hanya mencakup loader yang disebutkan di atas, tetapi juga sampel lain dari grup HPE, termasuk muatannya. Kemudian kami memutuskan untuk mempelajari secara detail logika dekompresi untuk mengekstraksi objek target secara otomatis.
Layer 1. Twisted XOR
Bagian penting dari pembongkaran didahului oleh banyak instruksi yang tidak berguna. Penulis virus sering menggunakan teknik seperti itu untuk membingungkan emulator produk antivirus. Semua hal menarik dimulai dengan alokasi memori untuk buffer ukuran 0xD20 menggunakan fungsi WinAPI VirtualAllocEx. Memori dialokasikan dengan izin PAGE_EXECUTE_READWRITE, yang memungkinkan Anda untuk menulis dan mengeksekusi kode.
Mulai dari konten unpackerBagian data dari file yang sedang dipelajari berisi larik data yang melewati prosedur dekripsi, dan hasilnya ditulis ke memori yang dialokasikan. Algoritma Dekripsi:
- menafsirkan 4 byte sebagai integer,
- kurangi nomor seri
- melakukan operasi XOR dengan konstanta yang diberikan,
- melakukan pergeseran bitwise siklik ke kiri sebanyak 7 unit,
- melakukan operasi XOR lagi dengan konstanta yang diberikan.
Decoding layer pertamaKami menyatakan algoritma ini dengan singkatan
SUB-XOR-ROL7-XOR untuk merujuknya nanti.
Setelah prosedur dekripsi, variabel diinisialisasi secara berurutan. Ini dapat direpresentasikan sebagai pengisian struktur dalam C dalam format berikut:
struct ZOZ { HMODULE hkernel32; void *aEncodedBlob; unsigned int nEncodedBlobSize; unsigned int nBlobMagic; unsigned int nBlobSize; };
dimana:
- hkernel32 - deskriptor perpustakaan kernel32.dll;
- aEncodedBlob - penunjuk ke blok data yang disandikan, kami sebutkan ketika kami merujuk pada kesamaan visual dari sampel di atas;
Blok data yang dikodekan- nEncodedBlobSize - ukuran 4 byte dari blok data yang disandikan;
- nBlobMagic - konstanta 4-byte di depan blok data, yang akan kita bahas nanti;
- nBlobSize - ukuran 4 byte dari blok data yang di-decode;
Kami menyebut struktur
ZOZ (ini "505" di
leetspeak ).
Isi Struktur ZOZSebagai hasil dari tindakan yang dijelaskan, eksekusi kode akan diarahkan ke buffer dekripsi (sekarang tidak ada keraguan bahwa data yang didekripsi adalah kode yang dapat dieksekusi), dan penunjuk ke struktur yang diisi akan diteruskan sebagai parameter fungsi:
Memanggil kode yang didekripsi dengan struktur " ZOZ " diteruskan sebagai argumen
Potongan kode dekripsi yang dibongkarLayer 2. Semakin kecil semakin baik
Setelah mentransfer kontrol ke potongan kode yang didekripsi, langkah pertama adalah menentukan alamat fungsi WinAPI GetProcAddress, VirtualQuery, VirtualAlloc, VirtualProtect, VirtualFree dan LoadLibraryA. Daftar ini sering ditemukan dalam karya kode shell: setelah semua, mereka perlu mempersiapkan dan mengisi memori dengan benar untuk peluncuran payload berikutnya.
Setelah menyelesaikan prosedur awal, blok data yang disandikan yang ditransmisikan terpotong: dari setiap lima byte, dua yang pertama dibuang, dan tiga sisanya disimpan:
Pengurangan Blok Data BerkodeKemudian, prosedur dekripsi, yang kami sebut
SUB-XOR-ROL7-XOR, dilakukan . Dalam hal ini, sebagai konstanta untuk operasi XOR, nilai nBlobMagic lain digunakan, yang diteruskan dalam struktur
ZOZ .
Menggunakan kembali SUB-XOR-ROL7-XORSetelah itu, array yang dihasilkan ditransfer ke fungsi di mana serangkaian transformasi yang lebih kompleks terjadi. Dengan nilai-nilai karakteristik konstanta, mudah untuk menetapkan bahwa ini adalah
implementasi FSG PE-wrapper populer (Fast Small Good). Sangat mengherankan bahwa versi asli packer FSG memampatkan PE menjadi beberapa bagian, dan implementasi algoritma dalam kasus kami bekerja dengan PE secara keseluruhan.
Implementasi FSG PackerPada tahap ini, file target PE yang sudah dibongkar siap untuk analisis lebih lanjut. Sisa dari shellcode akan menimpa PE asli di ruang alamat dengan versi yang sudah dibongkar dan menjalankannya dengan benar. Sangat menarik untuk dicatat bahwa dalam proses menyesuaikan titik masuk dari modul yang dimuat, struktur dimanipulasi dalam PEB. Mengapa penyerang memutuskan untuk meneruskan deskriptor kernel32 dari logika lapisan pertama alih-alih mengambilnya menggunakan struktur PEB yang sama tidak diketahui.
Menimpa nilai dari titik masuk modul yang dimuat di PEBKesimpulan
Jadi, algoritma pembongkaran payload:
- decoding kode shell menggunakan SUB-XOR-ROL7-XOR,
- mengisi struktur ZOZ dan memanggil shellcode,
- pengurangan lima hingga tiga payload,
- decoding payload menggunakan SUB-XOR-ROL7-XOR,
- pengurai dekompresi FSG.
Selama evolusi malware, logikanya berubah: misalnya, jumlah perubahan siklik dari algoritma SUB-XOR-ROL7-XOR (tujuh dalam kasus yang dipertimbangkan) diubah oleh lima, sembilan, versi paket untuk platform x64 dirilis, dll. epigraf untuk narasi masa depan tentang alat dan fitur TA505.
Dalam artikel berikut, kita akan berbicara tentang bagaimana alat TA505 dikembangkan dan diubah selama serangan terbaru, tentang interaksi peserta dengan kelompok cyber lainnya, dan kita akan mempelajari model malware yang sebelumnya tidak dianggap.
Penulis : Alexey Vishnyakov dan Stanislav Rakovsky, Positive Technologies
IOC
b635c11efdf4dc2119fa002f73a9df7b
-
b635c11efdf4dc2119fa002f73a9df7b
Packaged Loader
71b183a44f755ca170fc2e29b05b64d5
-
71b183a44f755ca170fc2e29b05b64d5
bootloader