Reverse Engineering
5Head (700 pts)
Description
-
Solution
Diberikan file exe yang cukup besar , kemudian kami lakukan static analysis pada file exe tersebut.
Terlihat pada fungsi main terdapat mapping terhadap file dengan nama “winrarsfxmappingfile.tmp” , kemudian kami coba lakukan pencarian terhadap string tersebut dan ternyata pada kasus njRat terdapat algoritma yang sama dan melakukan write file untuk second stage executable ke Local\Temp\RarSFX1 ( https://menshaway.blogspot.com/2021/03/njrat-malware.html ). Jadi saat kami menjalankan file kami coba cek direktori tersebut dan didapatkan file exe . Disaat yang bersamaan kami juga melakukan dynamic analysis cuman pas cek direktori tersebut ternyata ada file 5head.exe yang dibuat dengan electronjs , jadi kami lanjut analisis file pada direktori tersebut.
Berdasarkan informasi yang kami dapat , file asar dapat dikembalikan ke source code lagi , yaitu dengan melakukan unpack pada file asar tersebut ( https://github.com/jonmest/How-To-Tamper-With-Any-Electron-Application ).
Sayangnya saat mencari informasi kami tidak mendapatkan sesuatu yang penting, yang kami ketahui pasti disini saat menjalankan file terdapat tombol authenticate dan pada direktori resources/app terdapat index.html dengan tombol serupa.
Kemudian kami lakukan view page source dan terdapat obfuscated javascript , lakukan deobfuscate secara otomatis + manual.
Intinya kode tersebut melakukan pengambilan gambar melalui kamera ( grabframe ) lalu dilakukan encoding pada fungsi _0x576184 dan dilakukan pembandingan dengan variable_0x583cf8 . Selanjutnya kami lakukan analisis pada fungsi _0x576184 .
Fungsi tersebut intinya melakukan perkalian banyaknya nilai yang sama dengan 2**8 lalu menambahkan nilai tersebut ke hasil perkalian sebelumnya. Jadi untuk mendapatkan nilai dan banyaknya nilai tersebut bisa dengan melakukan bruteforce pengurangan terhadap data kemudian di modulo dengan 2**8 , jika hasilnya nilai pengurangannya adalah nilai yang kita cari. Untuk mendapatkan banyaknya bilangan tinggal membagi hasil pengurangan tersebut dengan 2**8. Berikut script helper yang kami gunakan untuk melakukan generate value tiap pixelnya
Selanjutnya kami melakukan write ke image menggunakan javascript ( write pada canvas ), dan menebak nilai width dan height , setelah mencoba coba sampai ke tahap mencoba widthxheight dari common monitor resolution kami mendapatkan gambar yang dapat dilihat string flagnya
Flag : MDT4.0{bypassed_face_recognition_wannabe_app_with_my_5Head}
Last updated