Watch out! Demo dan tutorial pada artikel ini adalah sebagai contoh dan pembelajaran, diluar dari itu penulis tidak bertanggung jawab. Jadi Gunakan secara Bijak !
Introduction
Salah satu cara untuk mencegah traffic aplikasi agar tidak disadap adalah dengan memasang pin ke sertifikat ( SSL Pinning ). Penandaan sertifikat berarti bahwa pada setiap sambungan SSL, sertifikat yang disajikan oleh server akan dibandingkan dengan versi yang disimpan secara lokal. Sambungan hanya akan berhasil jika server dapat memberikan identitas yang benar. Pada android versi >= 7 (Android Nougat) untuk bypass ssl pinning membutuhkan trik khusus yang akan dijelaskan pada artikel ini beda halnya dengan android versi < 7, cukup atur proxy pada jaringan wifi di smartphone kita lalu burp dengan mudah melakukan intercept pada request traffic pada smartphone.
Tapi kita dapat bypass ssl pinningnya dengan salah satu trik yaitu menambahkan ssl cert milik burp pada system trusted credentials smartphone. Sehingga aplikasi akan mendeteksi bahwa cert milik burp berasal dari system smartphone bukan dari installasi oleh user.
Ini adalah cara yang paling gampang untuk bypass ssl pinning, tanpa harus melakukan decompile-compile file apk tersebut atau melalui objections ssl-pinning bypass
atau dengan frida dynamic instrumentation.
Persiapan Hardware dan Software
-
Software Burp Suite - Download Community Edition Install pada laptop atau komputer.
-
Smartphone Dengan Android Versi 7 (Nougat) ROOTED! Disini saya menggunakan hp Xiaomi Note 4x sudah ROOT
-
ProxyDroid - Download Install pada Smartphone.
-
Internet Smartphone dengan laptop/komputer harus berada pada jaringan yang sama. Disini saya menggunakan internet melalui hotspot dari smartphone hp saya.
Konfigurasi
Konfigurasi Burpsuite
-
Atur proxy terlebih dahulu.
Atur terlebih dahulu port proxy pada burp, disini saya menggunakan
port 8082
dengan listen pada ip wifi saya192.168.43.189
yang nantinya akan digunakan sebagai proxy di smartphone. -
Export burp ssl cert
Export burp ssl cert untuk kita pasang pada smartphone, save dengan nama
cacert.der
. Pada android sertifikat ssl harus pada PEM format dengan nama filesubject_hash_old
dan ekstensi .0 -
Konversi cert DER ke cert PEM format Saya menggunakan openssl untuk melakukan konversi der ke pem, jika OpenSSL < 1.0 maka
subject_hash
tanpa old. Disini saya menggunakan openssl versi 1.1, jadi saya menggunakansubject_hash_old
Nama cert saya adalah 9a5ba575.0
- Install burp ssl cert
.0 pada smartphone. Selanjutnya adalah install ssl cert ke [system trusted credentials](https://tamingthedroid.com/trusted-credentials) pada smartphone, kita memerlukan mounting `/system` agar bisa writable jika anda dapat melakukan perintah `adb root` jalankan perintah berikut :
Jika tidak bisa, lakukan perintah berikut :
Setelah smartphone restart, cek system trusted credentials pada smartphone anda Settings -> Additional Settings -> Privacy -> Trusted Credentials
. Jika seperti gambar dibawah ini berarti burp ssl cert berhasil kita pasang dismartphone kita.
Konfigurasi Smartphone
Selanjutnya yang harus kita lakukan adalah melakukan konfigurasi proxy ke burp, proxy burp saya berada pada alamat IP 192.168.43.189:8082
.
-
Buka aplikasi ProxyDroid.
-
Setting Host dan Port ke proxy burp.
Setting Aplikasi yang akan kita intercept, Jangan setting proxy secara global karna akan melakukan intercept pada traffic yang berada dismartphone untuk menghindari itu dapat menggunakan
individual proxy
pada ProxyDroid lalu pilih aplikasi yang akan kita intercept. Dalam tutorial ini saya mengambil contoh aplikasi bukalapak. -
Jalankan ProxyDroid.
Penutup
Langkah selanjutnya adalah tinggal menjalankan burp :)
Catatan : Tidak semua aplikasi bisa dibypass ssl pinningnya dengan cara ini, karena ada cara untuk mencegah bypass ssl pinning. Jika cara ini tidak berfungsi, silahkan coba dengan cara lain.
Gunakan secara bijak, pastikan aplikasi yang ingin anda pentest memiliki bug bounty program untuk mendapatkan reward :) .
Salam Anak Muda.
Referensi
Yohan.es - Reverse Engineering APK Android
support.portswigger.net - Configuring an Android Device to Work With Burp
support.portswigger.net - Intercepting Android version 8.1 HTTPS Traffic