Hello I am Arsalan. Offensive Security Engineer, I blog about Cyber security, CTF writeup, Programming, Blockchain and more about tech. born and raised in indonesia, currently living in indonesia
We all have dark side, but some are darker than the others ;)
Latar Belakang
Pada jumaat 10 Feb 2023, salah satu rekan kerja saya di kantor mendapatkan chat dari nomor yang tidak dikenal dimana beliau di undang untuk menghadiri suatu undangan, dan undangan yang di attach adalah sebuah aplikasi android APK
Aplikasi yang kirimkan oleh scammer tersebut terlihat kecil hanya berukuran (6 MB) dan memiliki nilai hash seperti berikut
Reverse engineering
Setelah melakukan dekompilasi terhadap APK tersebut, saya menemukan APK tersebut membutuhkan 3 permission yaitu
Yang berarti, aplikasi tersebut dapat menerima SMS, menggunakan internet, membaca dan mengirim SMS. Bila dilihat dari permission yang dibutuhkan sepertinya aplikasi ini hanya akan melakukan pencurian SMS OTP pada handphone korban.
Selanjutnya pada directory sources/com/example/myapplication ditemukan beberapa file, namun kita akan fokus pada 3 File saja yakni MainActivity.java, ReceiveSms.java dan SendSMS.java
Pada file Mainactivity.java ditemukan adanya komunikasi ke telegram pada function onRequestPermissionsResult()
Pada code diatas terlihat aplikasi tersebut melakukan pengiriman request ke api telegram dengan request body berikut
dimana this.device adalah nilai dari String device = ("𝐃𝐞𝐭𝐚𝐢𝐥 𝐏𝐞𝐫𝐚𝐧𝐠𝐤𝐚𝐭 : " + Build.FINGERPRINT + Build.TIME + HttpUrl.FRAGMENT_ENCODE_SET);
dimana nilainya pada setiap device akan berbeda - beda, hal ini sepertinya dilakukan untuk menandai device yang telah berhasil di dapatkan permissionnya, function onRequestPermissionsResult() akan tertrigger saat aplikasi tersebut berhasil mendapatkan permission dari pemilik device yang akan di curi SMS OTPnya
Saya juga menemukan adanya url https://kadio.id/demo/cream-puff dimana url tersebut akan di load pada webview
dimana webview tersebut akan membuka link tersebut dan function melalukan check terhadap permission SEND_SMS dan READ_SMS, setelah dicoba membuka link tersebut didapatkan tampilan website seperti berikut
dapat dilihat si pembuat aplikasi scam tersebut menggunakan service dari kadio.id untuk membuat undangan terlihat asli.
Selanjutnya dilakukan analisis terhadap file ReceiveSms.java
Function tersebut akan melakukan pencurian SMS dimana setiap adanya SMS yang masuk pada device korban maka SMS tersebut akan diteruskan melalui API Telegram dengan request seperti berikut
dimana variable originatingAddress berisi nomor pengirim SMS yang diterima oleh korban, dan variable replace adalah variable yang berisi body SMS.
Selanjutnya adalah file SendSMS.java, berikut potongan source code pada file ini
sama halnya dengan function yang ada pada file ReceiveSms.java, pada function onReceive aplikasi akan mengambil alamat pengirim SMS dan body SMS yang selanjutnya akan di teruskan melalui telegram API dengan request url seperti berikut
setelah melakukan penelusuran terhadap api telegram yang ada, ditemukan beberapa informasi seperti berikut
terdapat akun bot dengan username @Hshsvshauagsgswbot dan akun asli dengan username @Mafiaberdasi3811
Penutup
Untuk saat ini analisis saya berhenti sampai disini, untuk selanjutnya mungkin pihak berwajib dapat berkerja sama dengan pihak telegram untuk menangkap pemilik bot dan pembuat aplikasi, sebelumnya saya tidak tahu kalau sudah ada beberapa orang juga yang sudah melakukan analisis terhadap aplikasi ini, kudos untuk semua orang yang melakukan analisis pada aplikasi ini, Pak Joshua pada laman Facebooknya dan Mas Nikko pada blognya
Saran:
Jangan melakukan instalasi aplikasi yang dikirimkan oleh siapa pun (kenal/tak dikenal)
Selalu instal aplikasi resmi melalui App store/Play store