Bypass SSL Pinning Android dengan Frida

Problem Child
LinuxSec
Published in
4 min readDec 5, 2023

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.

Frida Installed

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.

Chek arsitektur

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

Create Directory on Android Emulator

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/

Download Frida Server

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

Run Frida Server on Android Emulator

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:

Find Proccess

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

Install SSL Pinning Demo Apps

Selanjutnya, nyalakan Burpsuite, dan pastikan proxy listener kalian berjalan.

Run Burp Listener

Selanjutnya nyalakan juga proxy melalui Oxy Proxy.

Turn on Burp Proxy via 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.

SSL Pinning Error

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

View Apps Identifier

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.

SSL Pinning Bypass with Frida

Oke mungkin sekian tutorial singkat kali ini, semoga bermanfaat. Tinggalkan komentar jika ada pertanyaan, dan atau saran mengenai tulisan ini. Terima kasih.

--

--

Problem Child
LinuxSec

GNU/Linux Enthusiast | Security Researcher | Penetration Tester