Nikx
4 min readApr 7, 2023

--

Bypass SSL/Certificate Pinning Aplikasi Android dengan Frida dan mitmproxy

Source image : https://www.guardsquare.com/blog/ios-ssl-certificate-pinning-bypassing

Saya di sini akan memberikan langkah-langkah untuk bypass SSL/Certificate pinning pada aplikasi android yang sudah pernah saya coba dan berhasil. Perlu diingat cara ini belum tentu berhasil di setiap aplikasi, karena tingkat keamanan dan kerumitan Certificate Pinning pada tiap aplikasi berbeda-beda.

Persiapan

Beberapa hal berikut yang perlu dipersiapkan:

  1. Install LDPlayer atau Emulator lain (dalam tutorial ini menggunakan LDPlayer) | Download
  2. Install Python terbaru | Download
  3. Install mitmproxy | Download
  4. Download ADB-Tools | Download

Setelah mengunduh dan memasang semuanya, mari kita lanjut pada tahap instalasi Frida.

Instalasi Frida
1. Buka powershell, lalu install Frida menggunakan command berikut:

pip install frida-tools

2. Setelah selesai, cek apakah frida telah terpasang dengan command berikut:

frida --version
Contoh sudah terpasang

Apabila sudah selesai, maka kita akan menghubungkan adb dengan LDPlayer.

Menghubungkan ADB dan LDPlayer
1. Sebelum dihubungkan adb, buka pengaturan LDPlayer, pada tab Lain, ganti Hak root menjadi aktif dan Debug ADB menjadi Buka Koneksi Lokal

Settings LDPlayer

2. Lalu simpan, dan mulai kembali emulatornya
3. Kemudian extract ADB-Tools dimana saja

ADB-Tools Folder

4. Arahkan directory powershell ke folder hasil extract ADB-Tools tadi dengan command “cd

cd D:\apktool\adb

ps: pastikan folder terdapat adb.exe

5. Pastikan emulator terdeteksi di adb, dengan command

./adb devices
List devices

6. Check alamat IPv4 terlebih dahulu dengan ipconfig
7. Setting proxy LDPlayer sesuai dengan alamat IPv4 dengan port 8080 melalui adb dengan command berikut:

./adb shell settings put global http_proxy 192.168.1.24:8080

Setelah konfigurasi tersebut selesai, sekarang kita akan install frida-server pada emulator

Install & Running Frida-Server
1. Pertama cek terlebih dahulu versi arsitektur processor android pada emulator dengan command

./adb shell getprop ro.product.cpu.abi

2. Kemudian download Frida-Server sesuai dengan versi arsitekturnya disini (sebagai contoh disini versi x86_64)

Frida-Server Download File

3. Download frida-server-1.0.11-android-x86_64.xz
4. Extract frida-server-1.0.11-android-x86_64.xz kemudian rename file yang sudah di extract menjadi frida-server, lalu copy filenya ke dalam adb folder (pada contoh ini terletak di D:\apktool\adb)
5. Pindahkan file Frida-Server ke android dengan command berikut menggunakan adb

./adb push ./frida-server /data/local/tmp

6. Kemudian ubah permission filenya agar dapat di eksekusi

./adb shell "chmod 777 /data/local/tmp/frida-server"

7. Lalu jalankan frida-server dengan command berikut

./adb shell "/data/local/tmp/frida-server &"

8. Biarkan frida-server tetap berjalan, mari ke langkah selanjutnya

Running mitmproxy & Inject frida ke android app
1. Disini kita akan mengunakan fitur dari mitmproxy yaitu mitmweb yang sudah mendukung user interface dengan browser, jalankan mitmweb

mitmweb

2. Sebelum melakukan inject, download terlebih dahulu file frida-scripts.js nya disini dan letakkan pada folder adb
3. Kemudian check package indentifier app yang akan di inject dengan

frida-ps -Uai

4. Sebagai contoh disini kita akan inject app twitter dengan package identifier com.twitter.android , lalu gunakan command berikut

frida -U -l ./frida-scripts.js -f com.twitter.android

Maka akan muncul tampilan seperti ini

Success Inject Twitter app

5. Setelah itu app twitter akan otomatis terbuka di emulator dan mitmweb akan menerima request dan response data dari app twitter

mitmweb result

Sekian untuk tutorialnya, semoga bermanfaat ^_^

--

--