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:

  1. Rooted Android
  2. Magisk
  3. Zygisk
  4. JsHook Zygisk Module

Kurang lebih seperti ini gambaran setupnya langkah instalasi jshook

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.

instal magisk

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.

zygisk enabled

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).

jshook install

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.

tampilan jshook

Setup JsHook

1. Instal framework untuk mendapatkan berbagai pilihan hook injeksi, sehingga tidak hanya bergantung pada framework default.

jshook framework

2. Impor atau buat skrip dalam format JavaScript.

jshook script

3. Pada tab Apps, pilih aplikasi yang akan diinjeksi.

jshook apps

4. Aktifkan Hook Service.

jshook apps enabled hook

5. Konfigurasikan injeksi lainnya; di sini, saya mengaktifkan “hook child process.”

jshook apps enabled script

6. Jika injeksi default tidak berjalan dengan baik, ganti framework injeksi dengan pilihan lain.

jshook injection framework

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.

enable script

8. Buka aplikasi target, Seperti menjalankan Frida di PC, JsHook menyediakan log untuk melihat proses eksekusi skrip.

jshook logs

9. Berhasil bypass SSL Pinning.

ssl pinning using jshook

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.