Back to Writeups
Responsi Malware Analisis

Responsi Malware Analisis

Analisis Malware Ransomware

1. Identifikasi Malware

Informasi File

  • Format File: ELF 64-bit LSB pie executable
  • Arsitektur: x86-64
  • Status Simbol: stripped
  • Author Malware: pyrg
image

2. Dynamic Analysis (GEF)

Patching untuk Analisis

Untuk melakukan patching debug, deteksi VM/Sandbox dan juga self-delete, pada awal function sub_41b1 pada paling awal (biasanya push rbp, dst) ubah ke xor eax, eax; ret (memberi laporan aman/return 1, lalu keluar).

image

3. Reverse Engineering - Main (Orchestrator)

Mode Operasi

  • Otomatis: Enkripsi dengan kunci hardcoded
  • Manual: Mendukung argumen enc (enkripsi) atau dec- (dekripsi)

Targeting

  • Identifikasi file via absolute path menggunakan realpath

Fitur Stealth (Anti-Forensik)

  • Self-Deletion: Menghapus binary sendiri dari disk via unlink
  • Anti-Detection: nice(10) untuk membatasi penggunaan CPU agar tidak mencurigakan

Eksekusi & Keamanan Kunci

  • Kriptografi: Inisialisasi kunci di memori untuk proses file
  • Memory Wiping: Menghapus kunci dari RAM segera setelah selesai (mencegah memory dump)
image

4. Reverse Engineering - sub_41B1 (Anti-Analysis)

Fungsi "gerbang" yang mengecek apakah malware berjalan di Virtual Machine (VM) atau Debugger.

image

5. Reverse Engineering - sub_3E74 (Fingerprinting)

Membaca file sistem (seperti di /proc) untuk mencari jejak VMware, QEMU, atau VirtualBox.

image

6. Reverse Engineering - sub_3A89 (Traversal)

Pemindaian Rekursif

  • Menggunakan opendir dan readdir untuk menelusuri folder
  • Jika menemukan folder baru (0x4000), fungsi akan memanggil dirinya sendiri (rekursi) untuk masuk lebih dalam

Identifikasi Target

  • Filter: Mengabaikan direktori spesial . (sekarang) dan .. (atas)
  • Tipe File: Hanya memproses file reguler (0x8000) dan mengabaikan symbolic links

Logika Enkripsi/Dekripsi

  • Ekstensi Khusus: Mengecek 7 karakter terakhir file (sebagai tanda/ekstensi malware)
  • Enkripsi: Jika file belum terenkripsi, panggil sub_3839
  • Dekripsi: Jika file memiliki tanda malware, panggil sub_393E untuk memulihkan
image

7. Reverse Engineering - sub_3839 (File Handler)

Manipulasi Ekstensi

  • Membuat nama file baru dengan menambahkan ekstensi unik (7-8 karakter acak dari sub_24DA) pada akhir nama file asli

Proses Enkripsi (sub_2AD7)

  • Membaca isi file asli, mengenkripsinya dengan kunci dari memori, dan menuliskannya ke file baru yang berekstensi tadi

Preservasi Izin (chmod)

  • Menyalin atribut/izin file asli (st_mode) ke file terenkripsi agar terlihat identik di sistem

Penghapusan File Asli (unlink)

  • Setelah file terenkripsi berhasil dibuat, file asli langsung dihapus untuk memastikan data korban tidak bisa dipulihkan tanpa kunci
image

8. Reverse Engineering - sub_2AD7 (Cryptography & Struktur File)

Algoritma: AES-128-GCM

  • Menggunakan enkripsi blok standar industri yang sangat kuat
  • GCM Mode: Memberikan kerahasiaan sekaligus jaminan integritas data

Struktur Konstruksi File (Layout)

Malware membangun file baru dengan urutan penulisan sebagai berikut:

  1. Header (18 Byte): Berisi Magic Header dan IV (Initialization Vector) 12-byte yang dibuat acak untuk tiap file
  2. Encrypted Body: Data asli korban yang telah dienkripsi dalam chunk besar (256 KB) untuk efisiensi maksimal
  3. Footer/Tag (16 Byte): Authentication Tag dari GCM untuk validasi data saat dekripsi

Optimasi & Anti-Forensik

  • Direct I/O: Menggunakan posix_fadvise untuk mempercepat proses enkripsi langsung ke disk
  • Memory Sanitization: Memanggil fungsi wiping untuk membersihkan kunci enkripsi, IV, dan buffer data dari RAM segera setelah file tertutup
image

9. Ringkasan Malware

Malware ini melakukan enkripsi ke semua file dengan struktur:

Magic Header → IV → Data → Authentication Tag (GCM tag)

Dengan penambahan ekstensi .malrev, lalu melakukan self-delete. Setelah itu clean up memory.

image

10. Encryption Extension

Hasil dari enkripsi berupa nama file + extension dengan penambahan .malrev

Contoh:

  • document.txtdocument.txt.malrev
image

11. Key Extraction

byte_7180 berisi 16 bytes key yang sudah ter-obfuscate (di-XOR dengan 'Z').

Key yang ditemukan:

K8fZp2QwLm3N7rX9
image

12. IV (Initialization Vector)

RAND_bytes menghasilkan 12 bytes random data ke dalam variabel v15.

image

13. Decrypt Command

./program dec-<16_karakter_key>

Key untuk dekripsi harus tepat 16 karakter (setelah "dec-").

Contoh:

./program dec-K8fZp2QwLm3N7rX9
image

14. Test Decrypt File

Script dekripsi:

  • Melewati 6 byte pertama (magic header)
  • Mengambil 12 byte sebagai IV
  • Mengambil 16 byte terakhir sebagai tag
  • Data di antara IV dan tag sebagai Ciphertext
  • Dekripsi menggunakan AES-128-GCM
image

15. YARA Rule

Rules menggunakan sistem tiered scoring - binary harus memiliki:

  • TIER 1: Core encryption functions
  • TIER 2/3: Behavioral indicators (minimal salah satu)

Ini memastikan false positive rate mendekati 0% karena tools legitimate seperti OpenSSL memiliki crypto functions tapi tidak memiliki directory traversal + file encryption pattern yang spesifik untuk ransomware.

Repository YARA Rule: https://github.com/kingzuy/yareeeeeeee-eemuahh/blob/main/yara.yar

image

TERIMA KASIH

End of report.