Artikel ini ditujukan untuk memberikan pemahaman tentang teknik hooking pada aplikasi Android dengan praktis menggunakan JsHook, yang merupakan salah satu aspek penting dalam analisis keamanan aplikasi. Dalam konteks pengembangan dan keamanan perangkat lunak, hooking adalah proses memantau dan memodifikasi eksekusi program pada runtime. Teknik ini sering digunakan oleh peneliti keamanan untuk menganalisis aplikasi dengan lebih mendalam, serta oleh pengembang untuk debugging dan pengujian.
Disclaimer
Asumsi penulis adalah bahwa pembaca sudah memahami cara setup perangkat Android untuk keperluan penetration testing. Jika belum, silakan cari informasi dengan keyword “Android Pentest Setup” karena banyak referensi tersedia, dan penulis pun malas menulisnya di blog ini hehehe
Pada tutorial ini tetap menggunakan PC, hanya saja tidak connect via USB debugging sehingga tidak perlu lagi menggunakan kabel dan tutorial ini bisa digunakan untuk bypass USB debugging detection
Preparation
Berikut tools dan module yang diperlukan:
- Rooted Android
- Magisk
- Zygisk
- JsHook Zygisk Module
Kurang lebih seperti ini gambaran setupnya
Magisk
Magisk adalah sebuah alat dan framework yang digunakan untuk melakukan rooting pada perangkat Android. Dikembangkan oleh topjohnwu, Magisk memungkinkan pengguna untuk mendapatkan akses root pada perangkat mereka dengan cara yang lebih aman dan terstruktur dibandingkan metode rooting tradisional.
Pastikan telah menginstal Magisk versi terbaru pada perangkat Anda.
Zygisk
Zygisk adalah fitur yang diperkenalkan dalam Magisk sebagai penerus dari MagiskHide. Zygisk memanfaatkan Zygote, proses inti dalam sistem Android yang bertanggung jawab untuk memulai aplikasi, guna meng-inject modul atau kode tambahan ke dalam setiap aplikasi yang diluncurkan pada perangkat Android.
Pastikan Zygisk aktif pada pengaturan Magisk.
JsHook
JSHook adalah sebuah modul untuk framework Xposed yang memungkinkan pengguna untuk menginjeksi dan menjalankan kode JavaScript pada aplikasi Android secara dinamis. Dengan modul ini, pengguna dapat memodifikasi perilaku aplikasi tanpa perlu memodifikasi kode sumbernya secara langsung.
Instalasi JsHook
Unduh kebutuhan instalasi di sini dan pastikan selalu menggunakan versi yang terbaru.
1. Instal Zygisk - JsHook Module, lalu restart perangkat (gunakan file JsHook-v1.2.8-1208-zygisk-release.zip).
2. Instal aplikasi jshook-v1.2.5.apk.
3. Buka JsHook dan pastikan statusnya “activated.” Jika belum “activated,” pastikan Zygisk dan modulnya berjalan dengan baik.
Setup JsHook
1. Instal framework untuk mendapatkan berbagai pilihan hook injeksi, sehingga tidak hanya bergantung pada framework default.
2. Impor atau buat skrip dalam format JavaScript.
3. Pada tab Apps, pilih aplikasi yang akan diinjeksi.
4. Aktifkan Hook Service.
5. Konfigurasikan injeksi lainnya; di sini, saya mengaktifkan “hook child process.”
6. Jika injeksi default tidak berjalan dengan baik, ganti framework injeksi dengan pilihan lain.
7. Jangan lupa mengaktifkan skrip yang akan diinjeksi yang telah diimpor atau dibuat pada langkah 2. Di sini saya menggunakan skrip untuk bypass SSL pinning.
8. Buka aplikasi target, Seperti menjalankan Frida di PC, JsHook menyediakan log untuk melihat proses eksekusi skrip.
9. Berhasil bypass SSL Pinning.
Note
Pada bulan Juni 2024, JsHook sudah dapat digunakan tanpa LSPosed (Xposed Module), sehingga bisa berjalan hanya dengan Zygisk. Karena referensi tentang penggunaan JsHook langsung via Zygisk masih terbatas, Anda perlu lebih teliti jika mencoba dari berbagai sumber.