Bypass SSL Pinning dan Intercept / Capture HTTPS Traffic pada Aplikasi Android
Untuk pengertian apa itu ssl pinning mungkin kalian bisa mengunjungi tulisan ini https://medium.com/@qomarullah/mengenal-ssl-pinning-untuk-keamanan-aplikasi-mobile-baac5be2ecf6
Sebenernya untuk mencapture traffic pada aplikasi android biasanya kita bisa menggunakan Aplikasi Packet Capture yang bisa kita download di Playstore, Tapi ini hanya bisa untuk traffic HTTP saja kadang bisa juga untuk HTTPS tapi dia ter decode / malah apk yang mau di intercept / capture itu akan error seperti ga ada koneksi atau dll nah disitulah ada ssl pinning.
Karena saya tidak bisa menjelaskan panjang lebar disini, Jadi kita langsung saja ke tutorial nya.
Yang Dibutuhkan.
- Fiddler (Disini saya menggunakan Fiddler4)
- Text Editor
- Emulator (Disini saya menggunakan genymotion)
- Apktool (Untuk Decompile Recompile APK)
- jarsigner (Untuk sign apk)
Kita Mulai Boy!!!
- Pertama Buka Fiddler lalu masuk ke tools > options, lalu pilih tab connections
- Setting port seperti diatas, untuk sekarang samakan dahulu
- Pastikan Centang Allow remote computers to connect
2. Kalau dirasa settingan fiddler udah benar, sekarang kita menuju emulator. Lalu masuk ke setting pilih wifi tekan dan tahan lama pada logo wifi sampai muncul pilihan menu
Lalu Klik Modify Network
Untuk Proxy Hostname diisi ip Laptop / Pc kamu. Untuk yang belumm tau caranya kalian bisa ketik ipconfig untuk windows, ifconfig untuk linux. Kalau kurang jelas bisa contact saya atau cari tau di google hehe.
Untuk port isi port yang kita udah setting tadi di Fiddler nah karena kita tadi mmasukin port 8888 jadi disini juga kita masukin port 8888.
Lalu klik save
3. Masih di emulator, Sekarang masuk ke browser di emulator lalu kunjungi http://ipv4.fiddler:8888/
Lalu klik FiddlerRoot Certificate
Lalu kalian akan mendownload certificate dan install certificate
Berinama certificatenya lalu klik ok. Nah sampai tahap ini sebenernya kalian sudah bisa Capture traffic http pada emulator di fiddler
Ok kalian sudah bisa capture sampe disini ya. Dan sekarang kita coba capture aplikasi yang terdapat ssl pinningnya :D
Apknya bakal blank / error / ga bisa diapa apain( belum ada ss ya maap )
4. Nah disini saatnya kegunaan Apktool haha, pastikan kalian menginstall ApkTool dengan benar lalu masukan command :
apktool d namafile.apk
Command untuk apa ini ? command ini digunakan untuk decompile APK untuk membongkar apknya. Tunggu sampai selesai, Setelah selesai akan ada folder dengan namafile apk yang sudah di bongkar tadi lalu kalian masuk ke foldernya dan bukan AndroidManifest.xml menggunakan text editor
Lalu di file AndroidManifest.xml cari tags <applications
lalu tambahkan :
android:networkSecurityConfig=”@xml/network_security_config”
Setelah itu masuk ke dalam folder res/xml, Lalu buat file bernama network_security_config.xml dan lalu isi file tersebut dengan :
https://gist.github.com/M1n007/8259642c43bc3abee38f72785499d64c
Jika dirasa semua sudah, lalu kalian keluar folder aplikasi tadi lalu ketikan command
apktool b namafolder -o outputApkSetelahedit.apk
Nah setelah proses selesai akan ada file apk denngan nama outputApkSetelahedit.apk nah apk ini belum bisa kita install karena belum di sign, untuk sign kita bisa gunakan apk di playstore ada namnya apk signer atau dengan jarsigner yang saya sebutin diatas.
Untuk menggunakan jarsigner kelian cukup ketikan command (Pastikan jarsigner / signer nya sudah ada ya di folder project)
java -jar signer --apks outputApkSetelahedit.apk
Nah tunggu proses selesai dalam beberapa menit, nah jika sudah selesai nanti akan ada output file apk dengan pattern -aligned-debugSigned.apk.
Jika sudah silahkan diinstall apknya di genymotion dan Boom!!
Selamat berjuang!!! Mohon maaf jika ada salah dalam tutur kata / kata kata /informasi yang salah disini juga saya masih belajar ^_^
Refference : https://youtu.be/INOV1tY3QSA