Bypass SSL Pinning Android dengan Frida
SSL Pinning sepertinya menjadi salah satu keamanan tambahan selain root detection pada aplikasi mobile modern. Hal ini bagus karena artinya trafik didalam aplikasi tidak akan bisa di sniffing dengan mudah. Namun bagi seorang pentester tentu hal ini harus bisa diakali agar kita bisa melihat dan memodifikasi request didalam aplikasi.
Mungkin langsung saja ya ke praktiknya. Berikut beberapa hal yang harus disiapkan atau diinstall:
- Burpsuite
- ADB Shell
- Android Emulator (Genymotion)
- Frida
Untuk instalasi Genymotion bisa ikuti tutorial yang sudah pernah saya tulis sebelumnya:
Di tulisan tersebut saya juga membahas mengenai pemasangan certificate burp di level system, serta alasan kenapa kalian harus menginstall Oxy Proxy. Sehingga ketika membaca tutorial ini saya asumsikan apa yang sudah tertulis disana sudah diikuti.
Install Frida
Di tutorial ini saya menggunakan Kali Linux. Namun seharusnya untuk instalasi Frida caranya sama. Kita gunakan pip.
sudo pip3 install — upgrade frida
sudo pip3 install — upgrade frida-tools
Pada saat tutorial ini ditulis, frida terbaru adalah versi 16.1.8.
Maka, untuk versi Frida server yang terpasang pun harus versi tersebut.
Selanjutnya, masuk ke shell di emulator melalui adb shell. Chek arsitektur menggunakan perintah getprop ro.product.cpu.abilist.
Dari output diatas, kita akan menggunakan frida-server x86, versi 16.1.8. Masih dari adb-shell, jalankan command berikut:
mkdir /data/local/frida
cd /data/local/frida
Sekarang, melalui terminal linux kita unduh frida server, extract, lalu unggah ke android emulator.
wget https://github.com/frida/frida/releases/download/16.1.8/frida-server-16.1.8-android-x86.xz
unxz frida-server-16.1.8-android-x86.xz
adb push frida-server-16.1.8-android-x86 /data/local/frida/
Maka seharusnya sekarang di direktori /data/local/frida pada Android Emulator sudah ada file frida-server yang kita unggah. Tambahkan hak akses eksekusi ke file tersebut, dan jalankan frida-server agar frida di laptop kita dapat terhubung ke emulator android.
chmod +x frida-server-16.1.8-android-x86
./frida-server-16.1.8-android-x86
File frida-server ini harus terus berjalan selama kita ingin menghubungkan laptop attacker kita dengan frida-server di android emulator.
Untuk mengkonfirmasi apakah frida sudah terhubung, kalian bisa jalankan command berikut di terminal:
Demo: Bypass SSL Pinning
Sebagai bahan demo di tutorial ini, saya menggunakan file dari link berikut:
Setelah mengunduh file APK nya dari release page, saya menginstall file .apk tersebut via adb.
adb install pinning-demo.apk
Selanjutnya, nyalakan Burpsuite, dan pastikan proxy listener kalian berjalan.
Selanjutnya nyalakan juga proxy melalui Oxy Proxy.
Maka, ketika aplikasi SSL Pinning Demo tadi kita buka dan klik tombol yang ada disana satu persatu, maka pinned request testnya semuanya gagal.
Selanjutnya, disini saya akan mencoba melakukan bypass SSL pinning menggunakan script yang sudah tersedia di codeshare. Berikut untuk linknya:
Cukup copy isi script yang ada di codeshare tersebut, lalu simpan ke file text.
Namun sebelumnya, jalankan perintah berikut:
frida-ps -Uai
“frida-multiple-bypass” adalah nama script yang saya pakai untuk menyimpan script dari codeshare diatas. Silahkan sesuaikan sendiri ya.
Selanjutnya, ketika kita klik tombol cek nya satu persatu, harusnya script ini mampu melakukan bypass hampir semua metode pinning yang ada di aplikasi.
Oke mungkin sekian tutorial singkat kali ini, semoga bermanfaat. Tinggalkan komentar jika ada pertanyaan, dan atau saran mengenai tulisan ini. Terima kasih.