Reverse Engineering Dekriptor Babuk untuk PDN

Di berbagai press release tentang serangan ke PDN, hanya malware turunan LockBit yang dipakai oleh group Brain Cipher yang diterbitkan. Dua hari yang lalu group Brain Cipher dengan murah hati akan merilis key-nya, dan ternyata yang dirilis hari ini adalah dekriptor untuk Ransomware Babuk. Jadi baru saya ketahui bahwa ada dua ransomware yang digunakan oleh Brain Cipher:

  • Di Windows memakai LockBit (dengan enkripsi Salsa20)
  • Di server ESXI memakai Babuk (dengan enkripsi SOSEMANUK). ESXI ini adalah sebuah Hypervisor, alias software untuk menjalankan Virtual Machine. Jadi ternyata bukan cuma Windows yang kena, tapi ESXI-nya.

Kedua ransomware tersebut buildernya sudah bocor di Internet sejak lama, untuk yang Babuk, source codenya juga bocor jadi bisa dimodifikasi (bisa mudah dipasangi backdoor).

Artikel ini ditulis untuk memvalidasi bahwa:

  • Dekriptor yang dirilis oleh group Brain Cipher benar berfungsi
  • Tidak ada backdoor di dekriptor yang dibagikan oleh brain cipher
  • Bagaimana memastikan sendiri tidak ada backdoornya

Supaya cepat, analisis saya lakukan bersama teman saya yang jago RE dan belum tidur: faco. Faco ini satu-satunya reverser Indonesia yang konsisten menyelesaikan Flare-On (ini tulisan saya dari 2018, waktu itu cuma Faco satu-satunya finisher dari Indonesia).

Tidak seperti LockBit yang memakai RSA1024 sebagai master keynya, Babuk memakai ECC curve25519 (256 bit). Karena source code sudah bocor, analisis bisa dilakukan dengan cepat dengan Ghidra ataupun IDA (perkenalan dasar memakai Ghidra dan IDA sudah saya tuliskan di sini). Key ada di alamat 0x0060c360.

Private key yang dipakai oleh ransomware PDN adalah:

static uint8_t m_priv[32] = { 
0xc0, 0x90, 0xda, 0x1d, 0x5a, 0x12, 0x98, 0xdb, 
0x0c, 0x36, 0xe8, 0x81, 0x4f, 0x73, 0x71, 0x08, 
0xbf, 0xff, 0xf4, 0x70, 0x86, 0x8e, 0xae, 0x48, 
0xf9, 0x6a, 0x56, 0x5c, 0x1a, 0x7e, 0x1d, 0x65
};
Private Key di dalam executable decryptor

Dari private key ini, kita bisa mendapatkan public keynya, daripada coding lama, saya dan faco punya ide yang sama: tanya chat GPT. Perlu dicatat: ChatGPT sering salah/ngawur dalam menghasilkan kode enkripsi/dekripsi, tapi kami berdua sudah cukup terbiasa reversing dan coding seperti ini, jadi bisa menilai apakah kodenya benar atau tidak.

static uint8_t m_publ[32] = {
0xa9, 0x9c, 0xa8, 0x65, 0x52, 0x00, 0x11, 0x9e, 
0x5d, 0x86, 0x16,0x57, 0xfa, 0x24, 0x02, 0xb8, 
0xbd, 0x27, 0xe1, 0xf6, 0x5f, 0xdc, 0xbc, 0x50, 
0xf0, 0x32, 0xec, 0x1a, 0x56, 0x19, 0x8d, 0x1b};

Perbedaan utama yang kami lihat dari source aslinya hanya extensionnya: .encrptd (babuk asli extensionnya adalah .babyk).

Sejauh yang kami lihat, tidak ada instruksi/backdoor tambahan yang ditemukan. Jika tidak yakin, maka cara yang bisa dilakukan adalah mendownload sour code asli dekriptornya dari:

https://github.com/Hildaboo/BabukRansomwareSourceCode

Lalu ubah esxi/dec/main.cpp, ganti m_priv dengan yang diatas, dan string ".babyk" menjadi ".encrptd". Compile programnya, dan gunakan ini sebagai dekriptor.

Faco juga sudah memvalidasi bahwa dekriptornya berjalan untuk file ukuran besar.

validasi dekriptor

Kelemahan Babuk?

Andaikan tidak diberikan keynya, apakah Babuk ini bisa didekrip?, jawabannya: tidak bisa. Sejauh yang saya ketahui, dan membaca berbagai hasil analisis orang lain di Internet, semua langkahnya sudah tidak memiliki bug.

Indicator of Compromise?

Jadi kami (saya dan teman-teman) tidak tahu keberadaan babuk ini, karena memang tidak pernah disebutkan di IOC yang diterbitkan BSSN (dan juga tidak pernah disebutkan di berita manapun). Beberapa fakta:

  • BSSN/Kominfo pasti tahu bahwa ESXI nya terenkripsi
  • BSSN/Kominfo mungkin tidak menemukan enkriptornya (karena sudah dihapus oleh penyerang), tapi pasti menemukan ransom notenya (saya tidak tahu seperti apa isinya, apakah sama dengan versi LockBit di Windows, atau beda lagi)

Mana key LockBitnya?

Keynya LockBit tidak diberikan, rekan saya: Joshua Sinambela (ahli forensik digital) sudah bertanya ke pembuat malwarenya, katanya nggak perlu dikasih, seharusnya kunci ESXI sudah cukup buat restore semuanya.

Apakah benar cukup key ini saya bisa restore semuanya? saya nggak tau, group ransom ini sudah masuk ke dalam jaringan PDN, mungkin mereka lebih paham dari kami tentang layout jaringan, sistem backup dan lain-lain di PDN. Mungkin mereka tahu bahwa jika ESXI bisa direstore, mungkin backup ada dalam virtual machinenya.

Jangan tanya saya detailnya ya. Hanya Tuhan, yang bikin ransomware, dan orang PDN yang bisa menjawab ini.

Penutup

Tadinya saya ingin menuliskan tentang cara analisis malware yang benar, karena Indicator of Compromise terbaru yang dirilis oleh BSSN masih ngaco. Sebuah IOC dirilis supaya sebuah perusahaan bisa mengeblok file berdasarkan hashnya, dan memblok IP yang dipakai malware. Masalahnya adalah di IOC yang dirilis BSSN, IP yang tercantum bukan IP milik malware, tapi IP-nya Windows update, Edge Update, dsb. Kalau IPnya semua diblok, malah ada kemungkinan Windows update akan gagal, dan membuat masalah baru.

Tapi karena hari ini dekriptor baru dirilis, saya tuliskan saja dulu tentang dekriptornya. Semoga berguna buat para petugas yang besok akan merestore data PDN.

Catatan tambahan: jika menjalankan dekriptor ini, harap buat backup dulu file encrptd-nya. Proses dekripsi dilakukan in-place, artinya: begitu membaca 1 blok, langsung ditimpa dengan hasil decryptnya, misalnya di tengah-tengah terjadi masalah (misalnya proses terinterupsi, mati lampu, dsb), maka file akan corrupt (sebagian terdekrip dan sebagian tidak), dan dekriptornya tidak mencatat bagian mana yang sudah dan belum terdekrip, jadi tidak bisa di-resume.

Sangat disarankan menjalan dekriptor satu instance saja, supaya aman. Jika ingin menjalankan lebih dari 1 dekriptor (supaya cepat), pastikan tiap dekriptor diberi parameter direktori terpisah. Jangan menjalankan dekriptor dengan parameter direktori yang sama (bisa ada race condition).

6 thoughts on “Reverse Engineering Dekriptor Babuk untuk PDN”

  1. Ngapain diberikan secara gratis… Hacker mental tempe, takut ditangkap kali

    ngakunya ngasih pelajaran, baru bentar udh dikasi jawaban, kalau begini tetep aja orang orang gajelas yang ada di BSSN dan kominfo.

    1. Bukan mental tempe, jstru mereka iba, terhinanya negara ini dikasihani pencuri. Faktanya yg mereka share tidak semua, hanya 1 lapisan saja

  2. …. di Indicator of Compromise (IOC) yang dirilis BSSN, IP yang tercantum bukan IP milik malware, tapi IP-nya Windows update, Edge Update, dsb. Kalau IP-nya semua diblok, malah ada kemungkinan Windows update akan gagal, dan membuat masalah baru.

    Lha nanti Windows Defender-nya gak bisa update database dong, kocak juga nih BSSN 🙂

  3. Tulisan yang luar biasa. dengan analisa mandiri ini patut di acungi jempol. malah BSSN seperti menyembunyikan sesuatu.

  4. as expected kena di VMDK level 😀 menarik sekali bisa terinfeksi sampai ke level datastore/hypervisornya, antara entry pointnya memang dari segmen management PDNS atau ini lateral move dari segmen tenantnya.

    anyway nice write ups om.

Tinggalkan Balasan

Situs ini menggunakan Akismet untuk mengurangi spam. Pelajari bagaimana data komentar Anda diproses.