Stealth Falcon memangsa langit Timur Tengah dengan Deadglyph

Stealth Falcon memangsa langit Timur Tengah dengan Deadglyph

Node Sumber: 2899203

Selama bertahun-tahun, Timur Tengah telah mempertahankan reputasinya sebagai lahan subur bagi ancaman persisten tingkat lanjut (APT). Di tengah pemantauan rutin aktivitas mencurigakan pada sistem pelanggan terkenal, beberapa berbasis di wilayah ini, ESET Research menemukan pintu belakang yang sangat canggih dan tidak dikenal yang kami beri nama Deadglyph. Kami mendapatkan nama tersebut dari artefak yang ditemukan di pintu belakang (seperti 0xMATIB001, ditampilkan juga di REF _Ref111452440 jam tabel 1
), ditambah dengan kehadiran homomesin terbang menyerang. Sejauh pengetahuan kami, ini adalah analisis publik pertama terhadap pintu belakang yang sebelumnya tidak terdokumentasikan, yang digunakan oleh kelompok yang menunjukkan tingkat kecanggihan dan keahlian yang luar biasa. Berdasarkan penargetan dan bukti tambahan, kami mengaitkan Deadglyph dengan keyakinan tinggi kepada grup Stealth Falcon APT.

Arsitektur Deadglyph tidak biasa karena terdiri dari komponen yang bekerja sama – satu biner x64 asli, yang lainnya adalah rakitan .NET. Kombinasi ini tidak biasa karena malware biasanya hanya menggunakan satu bahasa pemrograman untuk komponennya. Perbedaan ini mungkin menunjukkan pengembangan terpisah dari kedua komponen tersebut sekaligus memanfaatkan fitur unik dari bahasa pemrograman berbeda yang mereka gunakan. Bahasa yang berbeda juga dapat dimanfaatkan untuk menghambat analisis, karena kode campuran lebih sulit dinavigasi dan di-debug.

Perintah pintu belakang tradisional tidak diimplementasikan dalam biner pintu belakang; sebaliknya, mereka diterima secara dinamis dari server perintah dan kontrol (C&C) dalam bentuk modul tambahan. Pintu belakang ini juga dilengkapi sejumlah kemampuan agar tidak terdeteksi.

Dalam postingan blog ini, kami melihat lebih dekat Deadglyph dan memberikan analisis teknis tentang pintu belakang ini, tujuannya, dan beberapa komponen tambahan yang kami peroleh. Kami juga mempresentasikan temuan kami tentang Deadglyph di LABScon 2023 konferensi.

Poin-poin penting dari posting blog:

  • ESET Research menemukan pintu belakang canggih dengan arsitektur tidak biasa yang kami beri nama Deadglyph.
  • Komponen utama dienkripsi menggunakan kunci khusus mesin.
  • Perintah pintu belakang tradisional diimplementasikan melalui modul tambahan yang diterima dari server C&C-nya.
  • Kami memperoleh tiga dari banyak modul – pembuat proses, pembaca file, dan pengumpul informasi.
  • Kami menghubungkan Deadglyph ke grup Stealth Falcon.
  • Selain itu, kami menemukan pengunduh shellcode terkait; kami mendalilkan itu berpotensi digunakan untuk instalasi Deadglyph.

Korban dari infiltrasi yang dianalisis adalah entitas pemerintah di Timur Tengah yang disusupi untuk tujuan spionase. Sampel terkait yang ditemukan di VirusTotal juga diunggah ke platform pemindaian file dari wilayah ini, khususnya dari Qatar. Wilayah yang ditargetkan digambarkan pada peta di REF _Ref143614671 jam Angka 1
.

Gambar Deadglyph_01
Gambar 1. Victimologi Deadglyph; sampel terkait diunggah ke VirusTotal dari Qatar (dalam warna lebih gelap)

Stealth Falcon (juga dikenal sebagai Project Raven atau FruityArmor) adalah kelompok ancaman yang terkait dengan Uni Emirat Arab menurut MITRE. Aktif sejak 2012, Stealth Falcon diketahui menyasar aktivis politik, jurnalis, dan pembangkang di Timur Tengah. Ini pertama kali ditemukan dan dijelaskan oleh Citizen Lab, yang menerbitkan sebuah analisis dari kampanye serangan spyware pada tahun 2016.

Pada bulan Januari 2019, Reuters menerbitkan sebuah laporan investigasi pada Project Raven, sebuah inisiatif yang diduga mempekerjakan mantan agen NSA dan menargetkan jenis target yang sama seperti Stealth Falcon. Berdasarkan dua laporan tersebut merujuk pada sasaran dan serangan yang sama, Amnesty International telah menyimpulkan (ditunjukkan pada REF _Ref144978712 jam Angka 2
) bahwa Stealth Falcon dan Project Raven sebenarnya adalah grup yang sama.

Deadglyph Gambar 2
Gambar 2. Claudio Guarnieri telah menghubungkan Stealth Falcon dengan Project Raven

Pada bulan September 2019, kami penelitian yang dipublikasikan di pintu belakang, dikaitkan dengan Stealth Falcon, yang menggunakan teknik yang tidak biasa, Background Intelligent Transfer Service, untuk komunikasi K&C. Kami sekarang mengungkapkan hasil analisis mendalam kami tentang apa yang mungkin merupakan tambahan terbaru pada perangkat spionase Stealth Falcon.

Pintu belakang Deadglyph

Rantai pemuatan Deadglyph terdiri dari beberapa komponen, seperti yang diilustrasikan dalam REF _Ref144978760 jam Angka 3
. Komponen awal adalah pemuat kode shell registri, yang memuat kode shell dari registri. Shellcode yang diekstraksi ini, pada gilirannya, memuat bagian x64 asli dari pintu belakang – Executor. Pelaksana kemudian memuat bagian .NET dari pintu belakang – Orchestrator. Khususnya, satu-satunya komponen pada disk sistem sebagai file adalah komponen awal, yang berbentuk Dynamic Link Library (DLL). Komponen lainnya dienkripsi dan disimpan dalam nilai registri biner.

Gambar Deadglyph_02
Gambar 3. Komponen rantai pemuatan Deadglyph

Meskipun metode pasti dari vektor kompromi awal belum ditentukan, kecurigaan kami adalah bahwa komponen penginstal terlibat dalam penerapan komponen lebih lanjut dan membangun persistensi dalam sistem.

Di sisa bagian ini, kami menganalisis setiap komponen.

Pemuat kode shell registri

Komponen awal Deadglyph adalah DLL kecil dengan satu ekspor, bernama 1. Komponen ini tetap digunakan Langganan acara Windows Management Instrumentation (WMI). dan berfungsi sebagai pemuat kode shell registri. Itu dijalankan melalui baris perintah rundll32 C:WINDOWSSystem32pbrtl.dll,#1.

Pemuat kode shell registri memulai operasinya dengan mendekripsi jalur ke kode shell terenkripsi yang disimpan dalam registri Windows, menggunakan RC4. Kami menduga jalurnya unik untuk setiap korban; dalam kasus yang dianalisis di sini, jalur registri adalah:

SoftwareClassesCLSID{5abc7f42-1112-5099-b082-ce8d65ba0c47}cAbRGHLg

Kunci registri root adalah salah satunya hklm or HKCU, bergantung pada apakah proses saat ini berjalan dengan hak istimewa yang lebih tinggi atau tidak. Logika yang sama dapat ditemukan di komponen selanjutnya.

Setelah itu, pemuat memperoleh kunci RC4 khusus mesin menggunakan UUID sistem yang diambil dari tabel firmware SMBIOS mentah. Dengan menggunakan kunci ini, ia memuat, mendekripsi, dan kemudian mengeksekusi kode shell. Penting untuk digarisbawahi bahwa pendekatan derivasi kunci ini memastikan bahwa dekripsi yang tepat tidak akan terjadi jika pemuat dijalankan di komputer lain.

Menariknya, loader juga dapat dikonfigurasi dengan flag di dalamnya .data bagian untuk menggunakan kunci hardcode untuk mendekripsi kode shell, bukan yang khusus mesin.

Kami melihat serangan homoglyph yang meniru Microsoft Corporation di INFORMASI VERSI sumber daya ini dan komponen PE lainnya. Metode ini menggunakan karakter Unicode berbeda yang tampak mirip secara visual, namun dalam hal ini tidak identik, dengan karakter aslinya, khususnya Huruf Kapital Yunani San (U+03FA, Ϻ) dan Huruf Kecil Sirilik O (U+043E, о) pada Ϻicrоsоkaki Corpоratiоn.

Kode cangkang registri

Terdiri dari dua bagian, kode shell registri terdiri dari rutinitas dekripsi dan badan terenkripsi. Pertama, rutinitas dekripsi memutar setiap byte dari badan terenkripsi ke kiri sebanyak satu (ROL 0x01). Selanjutnya, kendali ditransfer ke badan yang didekripsi ini. Badan yang didekripsi terdiri dari pemuat PE dan file PE, yang terakhir adalah Pelaksana, yang mewakili bagian asli dari pintu belakang. Pemuat ini bertanggung jawab untuk menguraikan dan memuat file PE terkait.

Pelaksana

Executor adalah bagian x64 asli dari pintu belakang Deadglyph, yang melakukan hal berikut:

  • memuat konfigurasinya,
  • menginisialisasi runtime .NET,
  • memuat bagian .NET yang tertanam dari pintu belakang (Orchestrator), dan
  • bertindak sebagai perpustakaan untuk Orchestrator.

Pertama, dua konfigurasi default yang tertanam di .data bagian didekripsi AES. Konfigurasi mencakup berbagai parameter, termasuk kunci enkripsi, pengaturan keamanan dan penghindaran, dan titik masuk komponen berikutnya.

Selama eksekusi awal, kedua konfigurasi default tersebut disimpan dalam registri Windows, tempat konfigurasi tersebut dimuat pada proses berikutnya, sehingga memungkinkan penerapan pembaruan. Jalur registri untuk setiap konfigurasi dibuat dengan format berikut:

{HKCU|HKLM}Kelas Perangkat LunakCLSID{ }(Bawaan)

adalah GUID yang dihasilkan, yang unik untuk setiap korban.

Setelah ini, runtime .NET diinisialisasi, kemudian Executor RC4 mendekripsi bagian .NET dari pintu belakang yang dikenal sebagai Orchestrator. Orchestrator terletak di dalam .rsrc bagian Pelaksana. Konfigurasi menentukan metode eksekusi Orchestrator sebagai titik masuk. Selain itu, struktur berbeda disediakan untuk memfasilitasi aksesibilitas fungsi Pelaksana oleh Orchestrator.

Setelah meluncurkan Orchestrator, Executor bertindak sebagai perpustakaan dukungan untuk Orchestrator. Executor berisi banyak fungsi menarik; kami menjelaskan beberapa di antaranya di bagian berikut, dalam konteks pemanfaatannya oleh Orchestrator dan modul yang dimuat lebih lanjut.

Pemimpin orkestra

Ditulis dalam .NET, Orchestrator adalah komponen utama pintu belakang Deadglyph. Peran utama komponen ini melibatkan membangun komunikasi dengan server C&C dan menjalankan perintah, sering kali difasilitasi melalui peran perantara dari Pelaksana. Berbeda dengan komponen sebelumnya, Orchestrator dikaburkan, menggunakan .NET Reactor. Secara internal, pintu belakang disebut sebagai agen, yang merupakan nama umum untuk bagian klien dalam berbagai kerangka pasca-eksploitasi.

Inisialisasi

Orchestrator pertama-tama memuat konfigurasinya dan dua modul tertanam, masing-masing disertai dengan rangkaian konfigurasinya sendiri, dari sumber daya. Sumber daya ini adalah Menurunkan terkompresi dan AES terenkripsi. Mereka direferensikan oleh ID yang di-hash SHA-1 ke dalam nama sumber daya. Ikhtisar sumber daya ini disediakan di REF _Ref111452440 jam tabel 1
.

Tabel 1. Sumber daya orkestrator

 

Nama Sumberdaya

ID (desimal)

ID (heksa)

Deskripsi Produk

43ed9a3ad74ed7ab74c345a876b6be19039d4c8c

2570286865

0x99337711

Konfigurasi orkestrator.

3a215912708eab6f56af953d748fbfc38e3bb468

3740250113

0xDEEFB001

Modul jaringan.

42fb165bc9cf614996027a9fcb261d65fd513527

3740250369

0xDEEFB101

Konfigurasi modul jaringan.

e204cdcf96d9f94f9c19dbe385e635d00caaf49d

3735924737

0xDEADB001

Modul pengatur waktu.

abd2db754795272c21407efd5080c8a705a7d151

3735924993

0xDEADB101

Konfigurasi modul pengatur waktu.

Konfigurasi Orchestrator dan modul yang disematkan disimpan dalam format XML. Contoh konfigurasi Orchestrator ditunjukkan pada REF _Ref111452611 jam
Angka 4
.

Gambar Deadglyph_04
Gambar 4. Konfigurasi orkestrator

Deskripsi entri konfigurasi Orchestrator ditunjukkan di REF _Ref111452782 jam tabel 2
.

Tabel 2. Entri konfigurasi orkestrator

kunci

Deskripsi Produk

k


Kunci AES digunakan untuk mempertahankan konfigurasi modul.

a


Nama metode inisialisasi modul jaringan.

b


Tanda terkait modul jaringan tidak diketahui.

c


Nama metode inisialisasi modul pengatur waktu.

d


Tandai yang memungkinkan penggunaan kunci AES khusus mesin (UUID sistem) untuk sumber daya.

p


ID sumber daya modul jaringan.

t


ID sumber daya modul pengatur waktu.

Setelah komponen sumber daya dimuat, beberapa thread dibuat untuk melaksanakan tugas yang berbeda. Salah satu thread ini bertanggung jawab untuk melakukan pemeriksaan lingkungan, sebuah fungsi yang diterapkan dalam Executor. Thread lain dikhususkan untuk membangun komunikasi berkala dengan server C&C, memungkinkan pengambilan perintah. Terakhir, satu set tiga thread digunakan untuk tujuan mengeksekusi perintah yang diterima dan kemudian mengirimkan output apa pun yang dihasilkan kembali ke server C&C.

Thread pemeriksa lingkungan memantau proses yang berjalan untuk mengidentifikasi proses yang tidak diinginkan. Thread ini beroperasi dengan dua daftar nama proses yang berbeda. Jika proses pada daftar pertama terdeteksi, komunikasi C&C dan eksekusi perintah dihentikan sementara hingga proses yang tidak diinginkan tidak ada lagi. Jika ada kecocokan untuk proses mana pun pada daftar kedua, pintu belakang akan segera ditutup dan dicopot pemasangannya sendiri.

Tidak ada daftar yang dikonfigurasi dalam contoh yang dianalisis, jadi kami tidak tahu proses apa yang biasanya diperiksa; kami yakin ini mungkin dimaksudkan untuk menghindari alat analisis yang dapat mendeteksi aktivitas mencurigakan dan mengarah pada penemuan pintu belakang.

Komunikasi

Orchestrator menggunakan dua modul tertanam untuk komunikasi C&C – Timer dan Jaringan. Seperti Orchestrator, modul-modul ini dikaburkan dengan .NET Reactor. Konfigurasi untuk kedua modul disediakan oleh Orchestrator. Di dalam Orchestrator, konfigurasi preset untuk modul disertakan; secara opsional, Orchestrator juga dapat memuat versi konfigurasi yang diperbarui dari registri:

{HKCU|HKLM}Kelas Perangkat LunakCLSID{ }

Pintu belakang berisi ukuran keamanan menarik terkait komunikasi. Jika pintu belakang tidak dapat menjalin komunikasi dengan server C&C selama durasi melebihi ambang batas yang telah ditentukan, yang dikonfigurasi dalam Pelaksana, mekanisme penghapusan instalasi otomatis akan dipicu. Ambang batas waktu ini ditentukan dalam jam dan ditetapkan pada satu jam dalam kasus yang diperiksa.

Pendekatan ini memiliki tujuan ganda. Di satu sisi, ini mencegah pembuatan permintaan jaringan yang berlebihan terhadap server yang tidak dapat diakses. Di sisi lain, hal ini mengurangi kemungkinan deteksi berikutnya jika operator kehilangan kendali atas pintu belakang.

Modul pengatur waktu

Modul kecil ini mengeksekusi panggilan balik yang ditentukan pada interval yang dapat dikonfigurasi. Ini digunakan oleh Orchestrator bersama dengan modul Jaringan untuk berkomunikasi dengan server C&C secara berkala. Untuk mencegah terciptanya pola yang terdeteksi dalam log jaringan, interval eksekusi harus diacak, berdasarkan persentase yang ditentukan dalam konfigurasi. Dalam contoh yang dianalisis, intervalnya ditetapkan menjadi lima menit, dengan variasi ±20% diperkenalkan untuk keacakan.

Metode lain untuk menghindari pola jaringan yang terdeteksi dalam komunikasi periodik dapat ditemukan dengan membuat permintaan yang dikirim ke server C&C. Mekanisme ini, yang diterapkan di Executor, melibatkan penyertaan padding dengan panjang yang bervariasi, terdiri dari byte acak, dalam permintaan, sehingga menghasilkan permintaan dengan ukuran yang beragam.

Modul jaringan

Modul Jaringan mengimplementasikan komunikasi dengan server C&C yang ditentukan dalam konfigurasinya. Itu dapat mengirim data ke server C&C menggunakan permintaan HTTP(S) POST. Khususnya, ia menawarkan beberapa mekanisme untuk memperoleh detail konfigurasi proxy. Fitur ini menunjukkan potensi fokus pada lingkungan di mana akses internet langsung tidak tersedia.

Contoh konfigurasi yang didekripsi (dan dipercantik) ditunjukkan pada REF _Ref144978805 jam Angka 5
.

Gambar Deadglyph_06
Gambar 5. Konfigurasi modul jaringan

Entri konfigurasi berisi detail terkait komunikasi jaringan – URL C&C, Agen Pengguna HTTP, dan konfigurasi proxy opsional.

Saat berkomunikasi dengan server C&C, protokol biner khusus dengan konten terenkripsi digunakan di bawah HTTPS.

Perintah

Orchestrator menerima perintah dari server C&C dalam bentuk tugas, yang dimasukkan ke dalam antrian untuk dieksekusi. Ada tiga jenis tugas yang diproses:

  • tugas orkestrator,
  • Tugas pelaksana, dan
  • Unggah tugas.

Dua jenis pertama diterima dari server C&C dan jenis ketiga dibuat secara internal untuk mengunggah keluaran perintah dan kesalahan.

Tugas orkestrator

Tugas Orchestrator menawarkan kemampuan untuk mengelola konfigurasi modul Jaringan dan Timer, dan juga untuk membatalkan tugas yang tertunda. Ikhtisar tugas Orchestrator ditunjukkan di REF _Ref111101783 jam tabel 3
.

Tabel 3. Tugas orkestrator

Tipe

Deskripsi Produk

0x80


Atur konfigurasi modul jaringan dan pengatur waktu.

0x81


Dapatkan konfigurasi modul jaringan dan pengatur waktu.

0x82


Batalkan tugas.

0x83


Batalkan semua tugas.

Tugas pelaksana

Tugas pelaksana menawarkan kemampuan untuk mengelola pintu belakang dan menjalankan modul tambahan. Perlu dicatat bahwa fungsi pintu belakang tradisional tidak ada secara inheren dalam biner itu sendiri. Sebaliknya, fungsi-fungsi ini diperoleh dari server C&C dalam bentuk file PE atau shellcode. Potensi penuh dari pintu belakang masih belum diketahui tanpa modul tambahan ini, yang secara efektif membuka kemampuan sebenarnya. Ikhtisar tugas modul ditunjukkan di REF _Ref117677179 jam tabel 4
, yang mencakup detail tentang beberapa modul yang teridentifikasi. Demikian pula, REF _Ref117677188 jam tabel 5
memberikan gambaran umum tugas manajemen yang terkait dengan Pelaksana.

Tabel 4. Tugas pelaksana – modul

Tipe

Deskripsi Produk

0x??–0x63


tidak diketahui

0x64


Pembaca file

0x65


tidak diketahui

0x66


tidak diketahui

0x67


tidak diketahui

0x68


tidak diketahui

0x69


Pencipta proses

0x6A


tidak diketahui

0x6B


tidak diketahui

0x6C


Pengumpul informasi

0x6D


tidak diketahui

0x6E


tidak diketahui

Tabel 5. Tugas Pelaksana – Manajemen

Tipe

Deskripsi Produk

0x6F-0x76

Tidak diimplementasikan

0x77

Atur konfigurasi Pelaksana

0x78

Dapatkan konfigurasi Pelaksana

0x79-0x7C

Tidak diimplementasikan

0x7D

Memperbarui

0x7E

Berhenti

0x7F

Uninstall

Perintah yang mengatur konfigurasi Executor dapat mengubah:

  • daftar proses yang tidak diinginkan,
  • ambang batas waktu kegagalan komunikasi C&C, dan
  • batas waktu untuk pelaksanaan modul tambahan.
Modul

Kami berhasil mendapatkan tiga modul unik dari server C&C, masing-masing sesuai dengan jenis tugas Pelaksana yang berbeda, seperti yang ditunjukkan pada REF _Ref117677179 jam tabel 4 08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F005200650066003100310037003600370037003100370039000000
. Berdasarkan informasi yang tersedia, kami memperkirakan total ada sembilan hingga empat belas modul. Karena modul sebenarnya adalah perintah pintu belakang, mereka memiliki satu operasi dasar untuk dieksekusi dan kemudian secara opsional mengembalikan outputnya. Modul yang kami peroleh adalah DLL dengan satu ekspor tanpa nama (ordinal 1), di mana mereka menyelesaikan fungsi API yang diperlukan dan memanggil fungsi utama.

Saat dijalankan, modul dilengkapi dengan fungsi resolusi API, yang dapat menyelesaikan API Windows dan API Pelaksana khusus. Windows API direferensikan oleh hash DWORD, dihitung dari nama API dan DLL-nya. Nilai hash kecil (<41) diperlakukan secara khusus, merujuk pada fungsi API Pelaksana. Executor API terdiri dari total 39 fungsi yang dapat diakses oleh modul. Fungsi-fungsi ini berkaitan dengan berbagai operasi, termasuk:

  • operasi berkas,
  • enkripsi dan hashing,
  • kompresi,
  • pemuatan PE,
  • mengakses Peniruan Identitas Token, dan
  • utilitas

Di sisa bagian ini, kami menjelaskan modul yang kami peroleh.

Pencipta proses

Modul 0x69 mengeksekusi baris perintah yang ditentukan sebagai proses baru dan memberikan keluaran yang dihasilkan kembali ke Orchestrator. Prosesnya dapat dibuat di bawah pengguna yang berbeda, dan waktu pelaksanaannya dapat dibatasi. Khususnya, hal yang tidak biasa API Pekerjaan digunakan dalam fungsionalitas modul ini.

Modul ini disajikan dengan baris perintah cmd.exe /c daftar tugas /v.

Kami berasumsi ini berfungsi sebagai perintah idle yang dikeluarkan secara otomatis, sementara operator menunggu sesuatu yang menarik terjadi pada komputer yang disusupi.

Pengumpul informasi

Modul 0x6C mengumpulkan informasi ekstensif tentang komputer melalui kueri WMI dan meneruskannya kembali ke Orchestrator. Informasi tentang hal-hal berikut dikumpulkan:

  • sistem operasi,
  • adaptor jaringan,
  • perangkat lunak yang diinstal,
  • drive,
  • jasa,
  • driver,
  • proses,
  • pengguna,
  • variabel lingkungan, dan
  • perangkat lunak keamanan.
Pembaca file

Modul 0x64 membaca file yang ditentukan dan meneruskan konten kembali ke Orchestrator. Opsional, dapat menghapus file setelah dibaca.

Kami melihat modul ini digunakan untuk mengambil file data Outlook korban

c:Pengguna AppDataLocalMicrosoftOutlookoutlook.ost.

Rantai dengan pengunduh shellcode

Dalam proses penyelidikan Deadglyph, kami menemukan file CPL yang meragukan yang ditandatangani dengan sertifikat yang sudah kadaluwarsa dan tidak ada tanda tangan balasan dengan stempel waktu, yang telah diunggah ke VirusTotal dari Qatar. Setelah diperiksa lebih dekat, menjadi jelas bahwa file CPL ini berfungsi sebagai pengunduh shellcode multitahap, berbagi kemiripan kode tertentu dengan Deadglyph. Rantai pemuatan diilustrasikan dalam REF _Ref143693067 jam Angka 6
.

Gambar Deadglyph_03
Gambar 6. Rantai pemuatan pengunduh Shellcode

Dalam bentuk awalnya, yang berfungsi sebagai tahap pertama, file ini diantisipasi memiliki a .cpl ekstensi (file Panel Kontrol) dan dimaksudkan untuk dieksekusi melalui tindakan klik dua kali. Setelah dieksekusi dengan cara ini, kode shell yang tertanam mengalami dekripsi XOR, dan proses yang berjalan diperiksa untuk mengidentifikasi proses host yang sesuai untuk injeksi berikutnya.

If avp.exe (proses keamanan titik akhir Kaspersky) sedang berjalan, %windir%system32UserAccountBroker.exe digunakan. Jika tidak, browser default akan digunakan. Kemudian, ia membuat proses host dalam keadaan ditangguhkan, menyuntikkan kode shell dengan membajak thread utamanya, dan melanjutkan thread tersebut.

Tahap kedua, shellcode, terdiri dari dua bagian. Bagian pertama dari shellcode menyelesaikan hash API, menggunakan teknik perhitungan hash unik yang sama yang digunakan di Deadglyph, dan mendekripsi string dengan nama proses. Ini memulai thread penghapusan mandiri yang bertugas menimpa dan kemudian menghapus file tahap pertama. Setelah ini, shellcode melanjutkan untuk memeriksa proses yang sedang aktif, menargetkan solusi keamanan.

Jika salah satu proses tertentu terdeteksi, kode shell akan membuat thread tidur dengan prioritas terendah (THREAD_PRIORITY_IDLE) dan memungkinkannya tetap aktif selama 60 detik sebelum menghentikan pengoperasiannya. Interval ini kemungkinan diterapkan sebagai tindakan pencegahan untuk menghindari mekanisme deteksi tertentu yang digunakan oleh solusi keamanan. Terakhir, shellcode melanjutkan untuk menjalankan eksekusi bagian kedua dari kodenya.

Bagian kedua dari shellcode memuat file PE yang tertanam dengan tahap tiga dan memanggil ekspornya dengan nomor urut 1.

Tahap ketiga, DLL, berfungsi sebagai pemuat .NET dan berisi muatan di dalamnya .rsrc bagian.

Untuk memuat payload, runtime .NET diinisialisasi. Selama inisialisasi .NET, dua teknik menarik dilakukan, tampaknya dimaksudkan untuk menghindari Windows Pemindaian Antarmuka Pemindaian Antimalware (AMSI).:

  • Pemuat .NET mengaitkan sementara DapatkanModuleHandleW impor dalam dimuat clr.dll, sambil menelepon ICorRuntimeHost::Mulai. Kait merusak nilai kembalian ketika DapatkanModuleHandleW disebut dengan NULL. Ini mengembalikan pointer ke PE tiruan tanpa bagian.
  • Kemudian secara halus menambalnya AmsiInisialisasi impor string nama di .rdata bagian yang dimuat clr.dll untuk amsiiinisialisasi.

Tahap keempat adalah perakitan .NET, dikaburkan dengan ConfuserEx, yang berfungsi sebagai pengunduh shellcode. Pertama, ia melakukan XOR-dekripsi konfigurasinya dalam format XML dari sumber dayanya. Versi yang dipercantik dari konfigurasi yang diekstraksi disajikan di REF _Ref143695453 jam Angka 7
. Entri konfigurasi berisi detail terkait komunikasi jaringan dan proses yang masuk daftar blokir.

Gambar Deadglyph_05
Gambar 7. Konfigurasi pengunduh Shellcode

Sebelum melanjutkan, ia memeriksa proses yang berjalan terhadap daftar proses yang masuk daftar blokir dari konfigurasi. Jika kecocokan terdeteksi, eksekusi dihentikan. Penting untuk dicatat bahwa dalam contoh yang dianalisis, daftar blokir ini tidak disiapkan.

Selanjutnya, ia mengirimkan permintaan HTTP GET ke server C&C untuk mengambil beberapa kode shell, menggunakan parameter yang ditentukan dalam konfigurasi (URL, Agen-Pengguna, dan Proksi opsional). Sayangnya, selama penyelidikan kami tidak dapat memperoleh kode shell apa pun dari server C&C. Meskipun demikian, kami berhipotesis bahwa konten yang diambil berpotensi berfungsi sebagai penginstal Deadglyph.

Setelah ini, kode shell yang diambil dieksekusi dalam thread yang baru dibuat. Setelah menunggu hingga thread shellcode selesai dieksekusi, pengunduh shellcode menghapus semua file yang terletak di direktori %WINDIR%Profil LayananLocalServiceAppDataLocalTempTfsStoreTfs_DAV.

Terakhir, ia mencoba menghapus dirinya sendiri setelah interval 20 detik, menggunakan perintah berikut, sebelum mengakhiri operasinya dan keluar:

pilihan cmd.exe /CY /N /DY /T 20 & Del /f /q

Penghapusan mandiri ini tidak masuk akal dalam rantai ini. Hal ini disebabkan oleh fakta bahwa pengunduh shellcode dijalankan dalam browser atau proses sistem setelah disuntikkan, bukan beroperasi sebagai executable independen. Apalagi file awal sudah dihapus pada tahap kedua. Pengamatan ini menunjukkan bahwa pengunduh kode shell mungkin bukan merupakan muatan eksklusif rantai ini dan juga dapat digunakan secara terpisah dalam operasi lain.

Kesimpulan

Kami telah menemukan dan menganalisis pintu belakang canggih yang digunakan oleh kelompok Stealth Falcon yang kami beri nama Deadglyph. Ia memiliki arsitektur yang tidak biasa, dan kemampuan pintu belakangnya disediakan oleh K&C dalam bentuk modul tambahan. Kami berhasil memperoleh tiga modul ini, mengungkap sebagian kecil dari kemampuan penuh Deadglyph.

Khususnya, Deadglyph menawarkan serangkaian mekanisme deteksi balik, termasuk pemantauan berkelanjutan terhadap proses sistem dan penerapan pola jaringan acak. Selain itu, pintu belakang mampu menghapus instalasinya sendiri untuk meminimalkan kemungkinan terdeteksinya dalam kasus tertentu.

Selain itu, penyelidikan kami mengarahkan kami pada penemuan rantai pengunduh shellcode multitahap yang menarik di VirusTotal. Kami menduga rantai pengunduh ini kemungkinan dimanfaatkan dalam proses instalasi Deadglyph.

Untuk pertanyaan apa pun tentang penelitian kami yang dipublikasikan di WeLiveSecurity, silakan hubungi kami di ancamanintel@eset.com.
ESET Research menawarkan laporan intelijen APT pribadi dan umpan data. Untuk setiap pertanyaan tentang layanan ini, kunjungi Intelijen Ancaman ESET .

IoC

File

SHA-1

Filename

Deteksi

Deskripsi Produk

C40F1F46D230A85F702DAA38CFA18D60481EA6C2

pbrtl.dll

Win64/Deadglyph.A

Pemuat Kode Shell Registri.

740D308565E215EB9B235CC5B720142428F540DB

N / A

Win64/Deadglyph.A

Pintu Belakang Deadglyph – Pelaksana.

1805568D8362A379AF09FD70D3406C6B654F189F

N / A

MSIL/Deadglyph.A

Pintu Belakang Deadglyph – Orkestrator.

9CB373B2643C2B7F93862D2682A0D2150C7AEC7E

N / A

MSIL/Deadglyph.A

Modul Jaringan Orchestrator.

F47CB40F6C2B303308D9D705F8CAD707B9C39FA5

N / A

MSIL/Deadglyph.A

Modul pengatur waktu orkestrator.

3D4D9C9F2A5ACEFF9E45538F5EBE723ACAF83E32

N / A

Win64/Deadglyph.A.gen

Modul pembuat proses.

3D2ACCEA98DBDF95F0543B7C1E8A055020E74960

N / A

Win64/Deadglyph.A

Modul pembaca file.

4E3018E4FD27587BD1C566930AE24442769D16F0

N / A

Win64/Deadglyph.A

Modul pengumpul info.

7F728D490ED6EA64A7644049914A7F2A0E563969

N / A

Win64/Injektor.MD

Tahap pertama dari rantai pengunduh shellcode.

sertifikat

Nomor seri

00F0FB1390F5340CD2572451D95DB1D92D

Sidik jari

DB3614DAF58D041F96A5B916281EA0DC97AA0C29

Subjek cn

RHM TERBATAS

Subjek O

RHM TERBATAS

Subjek L

St. Albans

Subjek S

Hertfordshire

Subjek C

GB

Email

rhm@rhmlimited[.]co.uk

Berlaku dari

2021-03-16 00:00:00

Berlaku untuk

2022-03-16 23:59:59

Server C&C

IP

Domain

Pertama kali melihat

Pesan

185.25.50[.]60

caturdanlinks[.]com

2021-08-25

Server K&C Deadglyph.

135.125.78[.]187

easymathpath[.]com

2021-09-11

Server K&C Deadglyph.

45.14.227[.]55

joinushealth[.]com

2022-05-29

Server C&C pengunduh Shellcode.

Teknik ATT&CK MITER

Tabel ini dibuat menggunakan versi 13 dari kerangka MITRE ATT&CK.

Taktik

ID

Nama

Deskripsi Produk

Pengembangan Sumber Daya

T1583.001

Akuisisi Infrastruktur: Domain

Stealth Falcon telah mendaftarkan domain untuk server C&C dan untuk mendapatkan sertifikat penandatanganan kode.

T1583.003

Memperoleh Infrastruktur: Server Pribadi Virtual

Stealth Falcon telah menggunakan penyedia hosting VPS untuk server C&C.

T1587.001

Kembangkan Kemampuan: Malware

Stealth Falcon telah mengembangkan malware khusus, termasuk pemuat khusus dan pintu belakang Deadglyph.

T1588.003

Dapatkan Kemampuan: Sertifikat Penandatanganan Kode

Stealth Falcon telah memperoleh sertifikat penandatanganan kode.

Execution

T1047

Instrumen Manajemen Windows

Deadglyph menggunakan WMI untuk menjalankan rantai pemuatannya.

T1059.003

Penerjemah Perintah dan Skrip: Windows Command Shell

Pengunduh Shellcode menggunakan cmd.exe untuk menghapus dirinya sendiri.

T1106

API asli

Modul Deadglyph menggunakan Buat ProsesW dan BuatProcessAsUserW Fungsi API untuk eksekusi.

T1204.002

Eksekusi Pengguna: File Berbahaya

Rantai pengunduh shellcode mengharuskan pengguna mengklik dua kali dan menjalankannya.

Ketekunan

T1546.003

Eksekusi yang Dipicu Peristiwa: Langganan Peristiwa Instrumentasi Manajemen Windows

Pemuat Deadglyph awal dipertahankan menggunakan langganan acara WMI.

Penghindaran Pertahanan

T1027

File atau Informasi yang Dikaburkan

Komponen Deadglyph dienkripsi. Deadglyph Orchestrator dan modul yang disematkan dikaburkan dengan .NET Reactor.

Pengunduh shellcode dikaburkan dengan ConfuserEx.

T1070.004

Penghapusan Indikator: Penghapusan File

Deadglyph dapat menghapus instalasinya sendiri.

Rantai pengunduh shellcode menghapus dirinya sendiri dan menghapus file di cache WebDAV.

T1112

Ubah Registri

Deadglyph menyimpan konfigurasi dan muatan terenkripsinya di registri.

T1134

Manipulasi Token Akses

Deadglyph dapat meniru identitas pengguna lain.

T1140

Deobfuscate/Decode File atau Informasi

Deadglyph mendekripsi string terenkripsi.

Rantai pengunduh shellcode mendekripsi komponen dan konfigurasinya.

T1218.011

Eksekusi Proksi Biner Sistem: Rundll32

Pemuat Deadglyph awal dijalankan menggunakan rundll32.exe.

T1480.001

Pagar Pembatas Eksekusi: Penguncian Lingkungan

Deadglyph dienkripsi menggunakan kunci khusus mesin yang berasal dari UUID sistem.

T1562.001

Hancurkan Pertahanan: Nonaktifkan atau Ubah Alat

Pengunduh shellcode menghindari pemindaian AMSI dengan melakukan patching clr.dll dalam kenangan .

T1620

Pemuatan Kode Reflektif

Deadglyph secara reflektif memuat modulnya menggunakan pemuat PE khusus.

penemuan

T1007

Penemuan Layanan Sistem

A Modul Deadglyph menemukan layanan menggunakan kueri WMI PILIH * DARI Win32_Service.

T1012

Registri Kueri

Rantai pengunduh shellcode menanyakan registri untuk browser default.

T1016

Penemuan Konfigurasi Jaringan Sistem

Modul Deadglyph menemukan adaptor jaringan menggunakan kueri WMI PILIH * DARI Win32_NetworkAdapter dan PILIH * DARI Win32_NetworkAdapterConfiguration di mana InterfaceIndex=%d.

T1033

Pemilik Sistem/Penemuan Pengguna

Modul Deadglyph menemukan pengguna dengan kueri WMI PILIH * DARI Win32_UserAccount.

T1057

Proses Penemuan

Modul Deadglyph menemukan proses menggunakan kueri WMI PILIH * DARI Win32_Proses.

T1082

Penemuan Informasi Sistem

Modul Deadglyph menemukan informasi sistem seperti versi OS, drive, variabel lingkungan, dan driver menggunakan kueri WMI.

T1518

Penemuan Perangkat Lunak

Modul Deadglyph menemukan perangkat lunak yang diinstal menggunakan kueri WMI PILIH * DARI Win32_Produk.

T1518.001

Penemuan Perangkat Lunak: Penemuan Perangkat Lunak Keamanan

Modul Deadglyph menemukan perangkat lunak keamanan menggunakan kueri WMI PILIH * DARI Produk AntiVirus, PILIH * DARI Produk AntiSpyware dan PILIH * DARI Produk Firewall.

Rantai pengunduh shellcode memeriksa proses yang berjalan untuk mencari solusi keamanan.

Koleksi

T1005

Data dari Sistem Lokal

Deadglyph memiliki modul untuk membaca file.

Komando dan Pengendalian

T1071.001

Protokol Lapisan Aplikasi: Protokol Web

Deadglyph dan pengunduh shellcode berkomunikasi dengan server C&C melalui protokol HTTP.

T1090

wakil

Deadglyph dan pengunduh shellcode dapat menggunakan proxy HTTP untuk komunikasi C&C.

T1573.001

Saluran Terenkripsi: Kriptografi Simetris

Deadglyph menggunakan AES untuk mengenkripsi komunikasi C&C.

exfiltration

T1041

Eksfiltrasi Melalui Saluran C2

Deadglyph menggunakan saluran C&C untuk eksfiltrasi.

Stempel Waktu:

Lebih dari Kami Hidup Keamanan