UAC-0057 OYSTER Campaign: Bagaimana Ghostwriter Membangun Execution Chain dari JavaScript ke Cobalt Strike - Ethical Hacking Indonesia

Ethical Hacking Indonesia Mei 23, 2026

Kill Chain Diagram Flow - Ethical Hacking Indonesia

PDF yang berisi link. Link yang mengarah ke ZIP. ZIP yang berisi JS file, merupakan behavior Windows yang sudah bertahun-tahun menjadi entry point dan jalur antara kegunaan dan security: wscript.exe yang bisa dieksekusi oleh standard user tanpa elevasi, dan file .js yang di-associate langsung ke Windows Script Host. Sebagian besar organisasi government tier di berbagai negara masih belum mem-block asosiasi ini secara eksplisit di Group Policy. Ghostwriter (dilacak sebagai UAC-0057 / UNC1151 oleh CERT-UA) tampaknya sudah punya informasi mengenai data target, karena mereka masih menggunakan vektor yang sama di 2026.

Phishing email dikirim dari akun yang sudah dikompromikan sebelumnya bukan dari domain baru atau typosquatted address dengan tema sertifikat dari platform edukasi online Prometheus. Teknik ini dilakukan dengan konteks bahwa: Pemerintah Ukraina aktif mendorong penggunaan platform ini untuk pelatihan ASN, sehingga email tentang "sertifikat kursus" secara natural melewati filter kecurigaan awal penerima.

fake Email Sertifikat To User - Ethical Hacking Indonesia

OYSTERFRESH: Entry Point dan State Bootstrapping

File JS pertama yang dieksekusi OYSTERFRESH punya tiga fungsi yang dijalankan secara bersamaan saat eksekusi:

1. Render decoy document ke layar user

2. Tulis payload OYSTERBLUES ke Windows Registry dalam bentuk obfuscated dan encoded

3. Download dan eksekusi OYSTERSHUCK

Langkah kedua yang menyimpan payload ke registry digunakan untuk menghindari forensik dan  memecah dependency antara persistence mechanism dan file-based detection sehingga payload bukan js atau exe dan menghindari deteksi system yang berbasis statis filesystem. Registry key yang digunakan: HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\Blue\ dengan value name Oyster. Ini HKCU, bukan HKL. 

Entry Point

OYSTERSHUCK: Decoder sebagai Komponen Terpisah

OYSTERSHUCK berfungsi sebagai decoder yang memuat OYSTERBLUES dari registry. Alur decode yang digunakan berdasarkan informasi CERT-UA terdiri dari tiga tahap berurutan:

1. String reversal - payload dibaca terbalik

2. ROT13 substitution -setelah di-reverse, melalui ROT13

3. URL-decode - tahap akhir, mengurai percent-encoding

Kombinasinya cukup untuk menghindari simple pattern matching di memory atau registry scanning yang hanya mencari string recognizable. ROT13 pada string yang sudah di-reverse juga mempersulit reversal otomatis tanpa mengetahui urutan operasinya.

Memisahkan decoder (OYSTERSHUCK) dari payload terenkripsi (OYSTERBLUES di registry) dan dropper awal (OYSTERFRESH) membuat setiap komponen tampak tidak berbahaya secara isolated. OYSTERSHUCK tidak berisi payload. OYSTERFRESH tidak berisi logic C2. OYSTERBLUES di registry hanyalah blob encoded yang tidak executable tanpa decoder-nya.

OYSTERBLUES: Reconnaissance dan Eval-Based C2

Setelah decoded dan dieksekusi, OYSTERBLUES mulai dengan reconnaissance lokal:

  • Computer name
  • User account
  • OS version
  • Last boot time
  • Running process list
Dikirim melalui HTTP Post ke Server C2, desain komunikasi server C2 OYSTERBLUES tidak mengimplementasikan protocol custom atau binary format response dari C2 adalah JavaScript code yang langsung dieksekusi menggunakan eval().

Ini adalah desain yang disengaja dengan eval-based execution, operator bisa:
  • Update capability tanpa reinfect endpoint
  • Kirim task spesifik per-target berdasarkan beacon data yang diterima
  • Tidak perlu compile ulang binary untuk setiap operasi
  • Payload berikutnya tidak pernah touch disk jika operator memilih in-memory execution path
Dari perspektif detection: traffic antara OYSTERBLUES dan C2 terlihat seperti legitimate HTTPS request ke server yang ada di belakang Cloudflare. Response-nya hanyalah text/JavaScript, dan tidak ada binary, tidak ada shellcode yang mencurigakan system deteksi. 

Infrastructure Pattern: .icu TLD dan Cloudflare Proxy

Seluruh infrastructure UAC-0057 di kampanye ini konsisten menggunakan dua karakteristik:

Cloudflare sebagai proxy: Real IP server tidak terekspos langsung, semua traffic melewati Cloudflare edge nodes. Ini mempersulit tracking infrastruktur C2 yang sebenarnya dan memberikan operator kemampuan untuk rotate backend dengan mudah tanpa perlu mengubah IOC yang terekspos ke defender.
Domain dengan TLD .icu: Mayoritas C2 domain menggunakan .icu TLD ini murah, registrasi cepat, dan volume abuse-nya sudah cukup tinggi sehingga tidak langsung suspicious secara reputasional dibanding TLD seperti .xyz atau .tk. Tapi sekarang .icu dengan pattern tertentu jelas sudah harus masuk watchlist.

Beberapa menggunakan subdomain dengan kata-kata verbose yang tidak natural untuk legitimate service easiestnewsfromourpointofview.algsat[.]icu, productionsamplesoftheyear.cgdirector[.]icu. Ini bukan random generation, tapi juga tidak mimetik terhadap legitimate service yang dikenal. Membuat regex pattern untuk subdomain pattern ini bisa jadi detection surface.

URL path pada C2 juga patut diperhatikan. Beberapa path menggunakan pola yang menyerupai legitimate WordPress REST API atau CDN path:

/wp-json/prometheus-plus/certs-at-home/downloads

/wp-content/plugins/elementor/assets/lib/eicons/css

/wp-content/plugins/contact-form-7/modules/recaptcha

Ini adalah defense evasion pada level URL inspection jika ada proxy atau NGFW yang hanya melakukan path-based filtering, traffic ini bisa lolos karena path-nya terlihat seperti WordPress plugin asset request.

Persistence Mechanism: Registry dan Scheduled Task

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run\MicrosoftEdgeUpdate

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run\WindowsEdgeStartup

Dua Run key di HKCU, keduanya menggunakan nama yang adalah tiiruan terhadap legitimate Microsoft Edge update mechanism, ini akan trigger saat user logon.

Di sisi filesystem:

%APPDATA%\EdgeMachineData\EdgeTaskMachine.js

%APPDATA%\EdgeMachineData\MicrosoftEdgeUpdate.exe

%PROGRAMDATA%\WindowsEdgeApp\EdgeApp.exe

%PROGRAMDATA%\WindowsEdgeApp\EdgeSystemConfig.dll

Ada juga scheduled task MicrosoftEdgeUpdateTaskMachine nama yang identik dengan legitimate Edge update task. Operator mengandalkan fakta bahwa sysadmin yang melihat task ini di Task Scheduler dengan asumsi bahwa itu adalah Edge component yang valid. Komponen .dll (EdgeSystemConfig.dll) menarik karena tidak disebut secara eksplisit dalam deskripsi behavior chain yang dipublikasikan. Kemungkinan ini adalah sideloading target atau persistence component tambahan yang diload oleh EdgeApp.exe.

User-Agent Spoofing: Edge dan Chrome Version Mismatch

User-Agent yang digunakan dalam network traffic menunjukkan pattern:
Chrome/111.0.0.0 Safari/537.30
Chrome/121.0.0.0 Safari/537.30
Chrome/141.0.0.0 Safari/537.30
Chrome/87.0.4280.88 Safari/537.36 Edg/87.0.664.66

Perhatikan Safari/537.30 versi 537.30 bukan versi yang valid untuk Chromium-based browser. Legitimate Chrome menggunakan Safari/537.36. 

Cobalt Strike sebagai Final Stage

Dari perspective attacker, OYSTERBLUES yang mengandalkan eval-based JavaScript execution memberikan fleksibilitas maksimal untuk stage berikutnya. Operator bisa mengirim JavaScript yang melakukan reflective DLL injection, mendownload dan exec shellcode, atau menggunakan living-off-the-land technique lain semuanya tanpa mengubah infrastructure. CERT-UA mengassess bahwa final payload adalah Cobalt Strike secara operasional ini konsisten dengan modus operandi UAC-0057 di operasi-operasi sebelumnya. Cobalt Strike Beacon memberikan operator C2 yang mature, flexible, dan memiliki ekosistem BOF (Beacon Object Files) yang luas untuk post-exploitation.

Dengan akses HKCU dan execution tanpa elevasi, Cobalt Strike Beacon akan berjalan sebagai user biasa tapi di lingkungan government yang menjadi target, bahkan akses sebagai standard user sudah cukup untuk credential harvesting, lateral movement via pass-the-hash jika ada misconfigured service, atau exfiltration dokumen sensitif dari profil user.

Attack Surface dan Mitigasi

Satu mitigasi yang paling impactful: restrict wscript.exe untuk standard user accounts via AppLocker atau Software Restriction Policy. Jika .js tidak bisa dieksekusi sebagai user biasa, seluruh initial execution stage collapse. 

Untuk detection, priority sequence yang bisa dilakukan:

  1. 1. Monitor write ke HKCU\SOFTWARE\Microsoft\Windows\Blue\ key path ini tidak digunakan oleh komponen Windows legitimate
  2. 2. Alert pada wscript.exe yang diinvoke dari browser download path atau email client temporary folder
  3. 3. Hunt untuk kombinasi eval() dengan HTTP outbound dari proses JavaScript host
  4. 4. UA string dengan Safari/537.30 (invalid trailing digit)
  5. 5. DNS query ke TLD .icu dari endpoint corporate, terutama dengan subdomain pattern verbose/random
Path URL yang menyerupai WordPress path bisa jadi false positive magnet jika di-block tanpa melihat apa anomali yang terjadi dari url tersebut. Correlate URL pattern ini dengan UA string anomaly dan beacon timing regularity (OYSTERBLUES melakukan polling interval yang bisa dideteksi via traffic analysis).

Benediktus Sava – Security Researcher

Sumber: Cert-Gov-Ua Eval()-Function 

Share this

Add Comments


EmoticonEmoticon