Hi guys. pada kesempatan kali ini saya akan melakukan pentesting statis & dinamis pada aplikasi open source "AndroGoat.apk" yang bersumber dari https://github.com/satishpatnayak/AndroGoat. Beberapa tools yang saya gunakan antara lain:
- Jadx-gui
- Frida
A. Root Detection Bypass

Objectives dalam challenge ini meliputi:
- Memahami rooting
- Bagaimana aplikasi mendeteksi jika perangkat di root
- Membypass deteksi root menggunakan tools yang disarankan

Bagaimana aplikasi mendeteksi jika perangkat di root ?
- Pemeriksaan Binary
suAplikasi memindai direktori sistem untuk mendeteksi filesuyang menandakan adanya akses root. - Deteksi Aplikasi Root Manager Aplikasi memeriksa paket aplikasi yang terinstal untuk menemukan aplikasi pengelola root seperti Magisk, SuperSU, atau KingoRoot.
- Pemeriksaan System Properties
Aplikasi membaca properti sistem menggunakan perintah
getpropuntuk mendeteksi modifikasi sistem. - Verifikasi Integritas Perangkat Menggunakan Google Play Integrity API untuk memeriksa integritas perangkat melalui server Google.
- Pemeriksaan Izin Direktori Aplikasi mencoba menulis file di direktori sistem yang seharusnya terlindungi untuk mendeteksi akses root.

Jika melihat pada file AndroidManifest.xml Root Detection mempunyai nama activity RootDetectionActivity jika melihat ke dalam logic kode-nya


Pada bagian ini dapat dilihat bahwa aplikasi melakukan pemeriksaan apakah perangkat dalam kondisi rooted atau tidak. Jika perangkat terdeteksi root, maka aplikasi akan menampilkan pesan "Device is rooted", sedangkan jika tidak, akan muncul pesan "Device is not rooted".
Untuk melakukan pengujian lebih lanjut, saya menggunakan tool Frida serta sebuah script open-source bernama fridaantiroot yang tersedia di CodeShare. Script tersebut digunakan untuk melakukan bypass mekanisme Root Detection pada aplikasi AndroGoat.

frida -U -f owasp.sat.agoat -l rootbypass.jsFrida kemudian akan menjalankan aplikasi dan mengirimkan payload untuk membypass sistem deteksi aplikasi tersebut

Setelah payload dikirimkan aplikasi sudah berhasil di bypass dan tidak mendeteksi bahwa perangkat tidak di rooted.
B. Hardcode Issues
Objectives dalam challange ini:
- Memahami konsep secret dan proses secret scanning
- Mengidentifikasi secret yang tersimpan di dalam aplikasi
- Mengetahui risiko dari hardcoded secret di dalam kode aplikasi
Shopping Cart

Objectives dalam challange ini:
- Menemukan lokasi promocode yang di-hardcode di dalam aplikasi.
- Menggunakan promocode tersebut untuk mendapatkan produk secara gratis.
Dalam file AndroidManifest.xml kita dapat melihat Activity dari tantangan kali ini

Melihat ke dalam kode file HardCodeActivity kita menemukan promocode terlihat jelas dalam bentuk Hardcoded


AI Chat

Objectives dalam challange ini
- Menemukan lokasi OpenAI API Key yang di-hardcode dalam aplikasi.
- Menggunakan tools secret scanning untuk mengidentifikasi keberadaan API key.
Dengan memeriksa file AndroidManifest.xml dan Activity dari fitur AI Chat, dapat ditemukan API Key yang di-hardcode di dalam aplikasi.



API key yang bocor bisa dimanfaatkan oleh attacker dan menyebabkan developer membayar bill yang mahal dari OpenAI (Quota Theft).
View Cloud Services

Objectives dalam challenge ini:
- Menemukan lokasi AWS Access Key dan Secret Key yang di-hardcode dalam aplikasi.
- Menggunakan tools secret scanning untuk mengidentifikasi keberadaan kunci tersebut.
Dengan memeriksa file AndroidManifest.xml dan Activity dari fitur View Cloud Services, dapat ditemukan Key ID dan Access Key yang di-hardcode di dalam aplikasi


Dengan kredensial tersebut attacker dapat menggunakan AWS CLI untuk mendownload data pribadi pelanggan, menghapus backups, atau menambang cryptocurrency di website perusahaan
Sekian, Terimakasih.