[ Tutorial ] Bypass Android SSL PINNING + Frida Script [ Indonesian ]

Danang Tri Atmaja
4 min readMar 18, 2020

--

بسم الله الرحمن الرحيم

Berikut yang dipersiapkan :

- Python 2.7

- Pip for Python

- ADB tools ( Android Debug Bridge Tools )

- Proxy ( menggunakan Burpsuite )

- Genymotion Emulator

Pembahasan :

1. Download dan Install Frida

2. Menggunakan ADB

3. Melakukan setup pada Frida guna melakukan Bypass Android SSL Pinning

Apa itu Frida ?

Frida adalah sebuah perangkat instrumentasi kode dinamis. Jadi temen-temen dapat menyuntikkan sebuah kode-kode JavaScript kedalam aplikasi, singkatnya demikian. Nah untuk lebih lengkapnya temen-temen bisa mengunjungi halaman website resminya di : https://frida.re/docs/home/

Berikut langkah-langkah menginstall Frida :

1. Install frida pada perangkat Anda

# pip install frida-tools

Jalankan Android emulator Anda, dan pastikan telah terhubung antara komputer dengan emulator Android

2. Selanjutnya, install frida server pada device Android Anda

3. Akan tetapi terlebih dahulu Anda mengecek version, seperti perintah dibawah ini “version ini untuk mengunduh version frida server.”

# adb shell getprop ro.product.cpu.abi

4. Setelah Anda mengetahui version yang digunakan, selanjutnya Anda dapat meng-unduh file frida server dengan version x86 ( ini disesuaikan dengan version Anda ). Di case ini saya menggunakan frida-server-12.0.5-android-x86.xz

5. Anda dapat meng-unduh file frida server pada halaman berikut :

# https://github.com/frida/frida/releases

6. Selanjutnya ekstrak file yang telah Anda unduh

7. Selanjutnya pindahkan file frida-server-12.0.5-android-x86 kedalam device Android Anda ( sesuaikan dengan path lokasi file Anda )

# adb push ~/Downloads/frida/frida-server-12.0.5-android-x86 /data/local/tmp

8. Selanjutnya jalankan frida-server yang terdapat di /data/local/tmp

# adb shell

# cd /data/local/tmp

# ./frida-server-12.0.5-android-x86 &

9. Frida-server sudah berhasil terinstall didalam perangkat Android Anda, tuk melihat proses yang sedang berjalan pada frida-server berikan perintah :

# frida-ps -U

Atau bisa menggunakan :

# frida-ps -Uai

Langkah terakhir tuk melakukan Bypass Android SSL Pinning

Catatan : sebelum masuk kedalam point 10 ini, Anda harus pastikan Genymotion Emulator telah terhubung dengan Burpsuite, jika belum Anda bisa mengunjungi tutorial berikut :

https://medium.com/@danangtriatmaja/tutorial-genymotion-konfigurasi-burpsuite-ssl-certificate-dengan-adb-indonesian-1a3e9427429f

Tuk melakukan bypass SSL pinning dibutuhkan sebuah kode javascript yang dimasukan kedalam aplikasi menggunakan frida ini *cmiiw, berikut kode javascriptnya :

Java.perform(function() {

var array_list = Java.use(“java.util.ArrayList”);

var ApiClient = Java.use(‘com.android.org.conscrypt.TrustManagerImpl’);

ApiClient.checkTrustedRecursive.implementation = function(a1,a2,a3,a4,a5,a6) {

// console.log(‘Bypassing SSL Pinning’);

var k = array_list.$new();

return k;

}

}, 0);

source : https://codeshare.frida.re/

10. Nah kode javascript Frida telah Anda miliki, silahkan di simpan dengan namafile.js

11. Selanjutnya tahap terakhir Anda spawn aplikasi yang ingin di bypass SSL pinning-nya denga perintah :

# frida -U -f org.package.name -l namafile.js — no-pause

12. Nah, hasil akhirnya dimana aplikasi-aplikasi yang tidak bisa ter-intercept trafficnya oleh proxy ( burpsuite ) sehingga bisa dilakukan intercept dengan dilakukannya bypass SSL Pinning ini dengan bantuan frida ( correct me if `im wrong ).

Di lain case kode javascript ini tidak cocok dengan aplikasi yang Anda ingin bypass SSL Pinningnya, maka dari itu dibutuhkanlah sebuah custom pada kode javascript.

Salam hangat saudaraku, Danang TA

--

--

Danang Tri Atmaja

IT Security { enthusiast } — Penetration Tester PT. ITSEC Asia