Malware Analysis RELEASED 2026-05-11

ValleyRAT Analysis: DLL Side-Loading & Payload Extraction

TECH_STACK ::Reverse EngineeringStatic AnalysisDetection Engineering

Laporan Analisis Malware: DLL Side-Loading

Subtitle: Phishing Attachment Pre-Execution Triage
Klasifikasi: TLP: WHITE — Dapat didistribusikan bebas
Penulis: rwx4m
Tanggal: 10 Mei 2026
Status Insiden: 🟢 TIDAK ADA EKSEKUSI (Triage Pre-Execution)


⚠️ KONTEKS INSIDEN : Seorang karyawan menerima email phishing dengan lampiran ZIP. Karyawan TIDAK mengeksekusi file dan segera melaporkannya kepada tim keamanan. File diserahkan untuk analisis triage pre-execution. Tidak ada sistem yang terdampak.


1. Konteks & Latar Belakang Insiden

Pada awal Mei 2026, seorang karyawan menerima email yang mengklaim berisi dokumen keuangan berupa "Laporan Rekening Bulan April". Email tersebut menyertakan lampiran berupa arsip ZIP. Karyawan TIDAK membuka atau mengeksekusi isi arsip tersebut, melainkan segera melaporkannya kepada tim keamanan dan menyerahkan file untuk dianalisis.

1.1 Kronologi Penemuan

WaktuKejadian
~2 April 2026EXE diduga disiapkan dan dikemas ke dalam ZIP (berdasarkan file timestamp)
7 Mei 2026DLL impostor dikompilasi (PE timestamp: 2026-05-07 09:48:45 UTC)
8 Mei 2026 11:31ZIP dianalisis di sandbox — ValleyRAT C2 aktif terhubung
8 Mei 2026 14:49ZIP diserahkan oleh karyawan kepada tim keamanan (mtime ZIP)
10 Mei 2026 08:28Analisis triage dimulai di mesin analis
11 Mei 2026Laporan analisis dipublikasikan

1.2 Status Dampak

TIDAK ADA EKSEKUSI — TIDAK ADA DAMPAK TERDETEKSI > Berdasarkan laporan karyawan, file ZIP tidak diekstrak maupun dijalankan di mesin produksi manapun. Analisis ini bersifat triage pre-execution untuk memvalidasi ancaman dan menghasilkan artefak deteksi bagi tim keamanan.


2. Ringkasan Eksekutif

Analisis teknis mendalam terhadap lampiran phishing mengungkap kampanye distribusi malware bertarget yang menggunakan teknik DLL Side-Loading dengan tingkat kecanggihan tinggi. Berikut temuan utama yang telah diverifikasi secara independen:

#TemuanSignifikansi
1Tagihan bulan.exe adalah binary Microsoft VS2022 yang SAH (signed) — digunakan sebagai host DLL side-loadingBinary legit menyamarkan eksekusi malware dari deteksi AV
2VsGraphicsCore.dll adalah impostor dikompilasi GCC 4.9.2 (MinGW-w64) — BUKAN Microsoft23 GCC compiler strings yang tidak dapat dipalsukan — bukti definitif
31.859 dari 1.861 exported functions adalah stub return 0Kamuflase — payload berjalan via DLL_PROCESS_ATTACH, bukan export
4Payload 3.008 bytes tersembunyi dalam 188 GUID strings di .rdataTeknik encoding non-trivial — menghindari deteksi berbasis string
5Custom rolling XOR cipher (key=0xe2, poly=0xb8) mendekripsi payloadDikonfirmasi dari decompile FUN_6f9c3030
6C2 IP 207.56.138.28:6666 ditemukan langsung dalam decoded payload DLLDivalidasi INDEPENDEN dari laporan sandbox — bukan asumsi
74 lapis anti-analysis: file marker, screen check, 10 juta iterasi CPU, anti-debug60% VT engine tidak mendeteksi akibat sandbox timeout
8Sandbox: ValleyRAT/Winos4.0 — C2 berhasil terhubung dua arahIDS: ET MALWARE Winos4.0 Framework CnC Login Message + Server Response

3. Gambaran Umum Serangan

Attack chain berikut direkonstruksi berdasarkan analisis artefak, reverse engineering, dan laporan sandbox:

  [TAHAP 1: DELIVERY]
  Karyawan menerima email dengan lampiran:
  'Laporan Rekening Bulan April.zip' (849 KB)
         |
         v
  [TAHAP 2: EXTRACTION  --  TIDAK TERJADI DI ENDPOINT INI]
  Jika dibuka, WinRAR mengekstrak ke direktori YANG SAMA:
    Tagihan bulan.exe   (2.1 MB) -- Microsoft VS2022, SIGNED, LEGITIMATE
    VsGraphicsCore.dll  (132 KB) -- GCC impostor, UNSIGNED, MALICIOUS
         |
         v
  [TAHAP 3: DLL SIDE-LOADING]
  EXE dijalankan --> Windows DLL Search Order:
  Cari VsGraphicsCore.dll di direktori EXE --> MATCH! --> DLL dimuat
  DLL_PROCESS_ATTACH --> DllMain() dieksekusi otomatis
         |
         v
  [TAHAP 4: ANTI-ANALYSIS GAUNTLET (FUN_6f9c2eb0)]
  Cek %LOCALAPPDATA%\\.app_config_test   (anti-reanalysis file marker)
  GetSystemMetrics()                    (deteksi resolusi layar sandbox)
  100x floating-point loop              (CPU timing / VM detection)
  GetVersionExA()                       (OS version fingerprinting)
         |
         v
  [TAHAP 5: PAYLOAD LOADING (FUN_6f9c3300 = 'stringw::stringw()')]
  - LoadLibrary(activeds.dll, Kernel32, rpcrt4, User32)
  - GetProcAddress(UuidFromStringA, VirtualProtect, SetTimer)
  - Decode 188 GUID strings --> 3.008 bytes encoded binary payload
  - ANTI-SANDBOX: 10.000.000 iterasi CPU burn  (>30 detik!)
  - Sleep(500ms)
  - CreateFileMappingA(PAGE_EXECUTE_READWRITE) --> executable memory
  - FUN_6f9c3030: Rolling XOR decode (key=0xe2, poly=0xb8)
  - SetTimer(0, 0, 0, shellcode_ptr)  --> SHELLCODE DIEKSEKUSI!
  - GetMessageA / DispatchMessageA    --> trigger timer callback
         |
         v
  [TAHAP 6: C2 COMMUNICATION]
  TCP connect --> 207.56.138.28:6666
  IDS: 'ET MALWARE Winos4.0 Framework CnC Login Message'
  IDS: 'CnC Server Response' --> koneksi 2 arah BERHASIL

4. Analisis Artefak

Seluruh command berikut dijalankan langsung di mesin analisis. Output dapat direproduksi dan di-screenshot untuk verifikasi.

4.1 Identifikasi File & Verifikasi Hash


Tagihan bulan.exe:  PE32+ executable for MS Windows 6.00 (GUI), x86-64, 6 sections
VsGraphicsCore.dll: PE32+ executable for MS Windows 5.02 (DLL),
                    x86-64 (stripped to external PDB), 11 sections

-rw-rw-r-- 1 rwx4m rwx4m 2.1M Apr  2 17:02  Tagihan bulan.exe
-rw-rw-r-- 1 rwx4m rwx4m 132K May  7 17:48  VsGraphicsCore.dll

3375ca29848411bcd49f7d6f7c6e3354f9804fb736d8486c39dc24ab934033fb  Tagihan bulan.exe
52253c4e296a1d1f0931e8836fe9bf02413996e49f091e589eea24252c920dbc  VsGraphicsCore.dll

Catatan: VsGraphicsCore.dll terakhir dimodifikasi 7 Mei 2026 — hanya 3 hari sebelum analisis. Keterangan stripped to external PDB mengindikasikan debug symbol dihapus — umum pada malware release build.

4.2 Analisis ZIP Attachment


 Length  Method   Size  Cmpr    Date    Time   CRC-32    Name
-------  ------  -----  ----  ----------  -----  --------  ----
2191944  Defl:N  828240  62%  2026-04-02  17:02  62af5d21  Tagihan bulan.exe
 134656  Defl:N   40708  70%  2026-05-07  17:48  badebb8f  VsGraphicsCore.dll
-------          -------  ---                              -------
2326600           868948  63%                              2 files

4.3 PE Header Analysis

AtributVsGraphicsCore.dllTagihan bulan.exeDLL VS Asli
Compile Time2026-05-07 ✅ Real2052-01-21 ⚠️ ForgedSesuai versi
Subsystem3 (Console) ❌2 (GUI) ✅2 (GUI)
ASLRNonaktif ❌Aktif ✅Aktif
CFG GuardNonaktif ❌Aktif ✅Aktif
AuthenticodeUNSIGNED ❌Signed Microsoft ✅Signed Microsoft
Version InfoTIDAK ADA ❌Ada ✅Ada

4.4 Compiler Forensics — Bukti GCC dalam DLL

Ini adalah bukti forensik paling definitif bahwa DLL ini bukan produk Microsoft:

Mingw-w64 runtime failure:
Address %p has no image-section
  Unknown pseudo relocation protocol version %d.
  Unknown pseudo relocation bit size %d.
GCC: (GNU) 4.9.2          <- muncul 21 kali
GCC: (tdm64-1) 4.9.2      <- MinGW-w64 TDM build (2 kali)
                              TOTAL: 23 GCC compiler strings

🚨 BUKTI DEFINITIF: DLL IMPOSTOR > GCC strings muncul 23 kali — satu per object file yang dikompilasi dan di-link ke DLL ini. Artifact ini TIDAK DAPAT dipalsukan secara retrospektif tanpa recompile ulang. Microsoft tidak pernah menggunakan GCC untuk mem-build komponen Visual Studio.

4.5 Authenticode & Version Info

# Tagihan bulan.exe -- Microsoft Signed
WIN_CERTIFICATE:
  wCertType : 0x2 (WIN_CERT_TYPE_PKCS_SIGNED_DATA)
  Signer    : Microsoft Corporation
  Issuer    : Microsoft Code Signing PCA 2011
  Valid FROM: 2024-09-12 20:11:14Z
  Valid TO  : 2025-09-11 20:11:14Z

Kesimpulan: EXE adalah binary Microsoft yang sepenuhnya sah dan ditandatangani resmi. EXE bukan malware — ia adalah carrier yang dimanfaatkan untuk DLL side-loading.

4.6 Section Entropy Analysis

Section .edata berukuran 77 KB dengan entropy 5.91 — di atas normal untuk export table (3.0–4.5). Elevasi berasal dari dua sumber: (1) 1.861 mangled C++ names panjang, dan (2) 188 GUID strings yang menyembunyikan encoded payload shellcode (Bagian 6).

4.7 Import Table Analysis

Pola LoadLibraryA + GetProcAddress tanpa import API tingkat lanjut secara langsung adalah runtime API resolution — teknik menyembunyikan kapabilitas berbahaya dari static analysis. Penggunaan msvcrt.dll alih-alih VCRUNTIME140.dll adalah konfirmasi tambahan compiler GCC/MinGW.

4.8 Export Table Anomaly

Total exports  : 1861
Unique RVAs    : 783

[1859x] 554889e5b8000000  <- push rbp; mov rbp,rsp; mov eax,0  --> return 0!
[   2x] 5541574156415541  <- fungsi dengan implementasi nyata

⚠️ IMPLIKASI KRITIS: Export Functions Adalah Kamuflase > 1.859 dari 1.861 exported functions adalah stub identik yang hanya mengembalikan 0. EXE tidak mendapatkan fungsionalitas apapun dari export DLL ini. Payload aktif berjalan HANYA melalui DLL_PROCESS_ATTACH saat DLL dimuat — bukan melalui export functions manapun.

5. Reverse Engineering

5.1 DllMain — Entry Point

Eksekusi chain: DllMain → FUN_6f9c1290 → FUN_6f9c1050 → stringw::stringw() @ 0x6f9c3300. Payload utama tersembunyi di dalam C++ class constructor dengan nama yang terlihat seperti kelas string standar dari VisualStudioGraphics.

5.2 FUN_6f9c2eb0 — Environment Check & Anti-Reanalysis

AtributImplementasiTujuan
File marker%LOCALAPPDATA%\.app_config_test (OPEN_EXISTING)Deteksi reanalysis berulang
Screen checkGetSystemMetrics(SM_CXSCREEN / SM_CYSCREEN)Deteksi sandbox resolusi kecil
CPU timing100× floating-point operationsDeteksi VM/hypervisor via timing
OS fingerprintGetVersionExA(&osvi)Profiling target environment

5.3 FUN_6f9c1a00 — PRNG Seed Initializer

Fungsi ini mengumpulkan entropy dari berbagai sumber sistem (GetSystemTimeAsFileTime, PID, TID, GetTickCount, QueryPerformanceCounter) dan melakukan XOR untuk menghasilkan PRNG seed baru.

5.4 FUN_6f9c3300 — GUID Shellcode Loader (Payload Utama)

Tersembunyi di balik nama VisualStudioGraphics::stringw::stringw() — sebuah C++ class constructor yang terlihat sah.

---------------------🚧 Work In Progress---------------

Seluruh bagian tambahan tersebut akan dirilis secara bertahap. masih ada 12 poin lagi. Sabar ya... xixixi

Verified by rwx4m-Vault
End of Transmission