Ini semua tentang Melewati Android SSL Pinning dan mencegat aplikasi Proxy Unaware.

Nov 27 2022
Hola H3ckers, Kita semua tahu ada banyak artikel yang tersedia untuk “Cara mencegat lalu lintas HTTPS aplikasi Android”, Jadi di sini kita tidak akan membahasnya. Jika Anda belum menemukannya, Lihat yang berikut: Mengonfigurasi Perangkat Android untuk Bekerja dengan Burp — Prasyarat PortSwigger: Familiar dengan proksi BurpSuite, Pentesting Android Dasar dan alat-alat seperti adb, frida, Keberatan, aplikasi Magisk, Dekompilasi/Kompilasi Ulang APK, dan Penandatanganan APK.

Halo H3ckers,

Kita semua tahu ada banyak artikel yang tersedia untuk “Cara mencegat lalu lintas HTTPS aplikasi Android”, Jadi di sini kami tidak akan membahasnya. Jika Anda belum menemukannya, Lihat yang berikut ini:

Mengonfigurasi Perangkat Android untuk Bekerja dengan Burp — PortSwigger

Prasyarat:

Akrab dengan proxy BurpSuite, Pentesting Android Dasar dan alat-alat seperti adb, frida, Keberatan, aplikasi Magisk, Dekompilasi/Kompilasi Ulang APK, dan penandatanganan APK.

Daftar isi

  1. Apakah aplikasi target saya menyematkan SSL?
  2. Tunggu, Bagaimana kami dapat mengonfirmasi Pinning?
  3. Saatnya Bypass
  4. Mengapa saya tidak dapat mencegat lalu lintas aplikasi meskipun aplikasi tersebut Bekerja dengan HTTP

Saya mengerti, kedengarannya seperti lelucon, karena kalian tahu Jika penyematan dilakukan, maka kami tidak akan dapat menangkap lalu lintas HTTPS dari aplikasi android target kami.

2. Tunggu, Bagaimana kami dapat mengonfirmasi Pinning?

Setelah menyiapkan proxy di perangkat dan server proxy (Burp), Jalankan aplikasi target, lalu lakukan beberapa aktivitas yang membuat komunikasi antara aplikasi target dan server mereka.

Saatnya memantau dasbor Burp, khususnya, bagian Log. Jika Pinning sudah terpasang, maka kita akan dapat melihat kesalahan Sertifikat sebagai berikut:

2. Waktu untuk Melewati

2.1 Pindahkan Sertifikat — Modul Magisk:

Jika perangkat Anda di-root dengan Aplikasi Magisk, maka modul Move Certificate adalah salah satu opsi yang bagus.

Modul ini akan memindahkan sertifikat tepercaya pengguna ke penyimpanan sistem, membuat sistem (root) mempercayai Sertifikat yang dipasang pengguna (Sertifikat CA proxy kami)

2.2 Alat keberatan

Repo: sensepost/keberatan: keberatan — eksplorasi seluler runtime (github.com)

Langkah 1 : Pastikan server frida berjalan di perangkat android

Langkah 2: Lampirkan aplikasi target dengan keberatan dengan perintah berikut:

Keberatan -g <pkg name/ PID> jelajahi

Kemudian jalankan perintah " android sslpinning disable "

Itu saja, skrip akan menemukan kelas pinning SSL dan mengaitkannya selama runtime untuk melewati Pinning.

2.3 Kerangka Frida

Repo: Frida (github.com)

Inilah metode yang paling populer dan banyak digunakan.

Langkah 1 : Pastikan server frida berjalan di perangkat android

Langkah 2: Lampirkan aplikasi target Anda dengan frida dan jalankan skrip bypassing SSL favorit Anda.

Berikut ini adalah skrip favorit saya:

https://codeshare.frida.re/@akabe1/frida-multiple-unpinning/
https://codeshare.frida.re/@pcipolloni/universal-android-ssl-pinning-bypass-with-frida/

2.4 Menggunakan Kerangka Xposed

Jika perangkat Anda di-root dengan kerangka kerja Xposed , maka Anda dapat mencoba modul berikut untuk mem-bypass penyematan

  1. ac-pm/SSLUnpinning_Xposed: Modul Android Xposed untuk melewati validasi sertifikat SSL (Certificate Pinning). (github.com)
  2. ViRb3/TrustMeAlready: Nonaktifkan verifikasi dan penyematan SSL di Android, seluruh sistem (github.com)

apk-mitm adalah aplikasi CLI yang secara otomatis menyiapkan file APK Android untuk pemeriksaan HTTPS dengan memodifikasi file apk dan mengemas ulang.

Repo:

shroudedcode/apk-mitm: Aplikasi CLI yang secara otomatis menyiapkan file APK Android untuk pemeriksaan HTTPS (github.com)

apk-mitm dapat ditarik menggunakan npm.

Langkah 1: Jalankan apk-mitm seperti yang ditunjukkan di bawah ini.

Itu saja, apk-mitm telah melakukan bagiannya. Sekarang kita dapat menginstal apk yang ditambal dan mencegat lalu lintas aplikasi.

2.6 Memodifikasi file network_security_config.xml

Konfigurasi Keamanan Jaringan memungkinkan aplikasi menyesuaikan pengaturan keamanan jaringannya melalui file konfigurasi deklaratif . Seluruh konfigurasi terdapat dalam file XML ini, dan tidak diperlukan perubahan kode.

Sumber : Konfigurasi keamanan jaringan | Pengembang Android

Konfigurasi Keamanan Jaringan berfungsi di Android 7.0 atau lebih tinggi.

Langkah 1 : Dekompilasi aplikasi android dengan apktool atau alternatif. Dan cari file network_security_config.xml di bawah /res/xml.

Langkah 2 : File mungkin terlihat seperti ini jika aplikasi telah menyematkan sertifikat CA-nya sendiri.

Sumber gambar: developer.android.com

Langkah 3 : Hapus bagian tag <pin-set>… </pin-set> itu dan tambahkan berikut ini:

Langkah 4: Sekarang simpan file dan kemas ulang aplikasi menggunakan apktool dan uber-apk-signer (Untuk menandatangani apk yang dimodifikasi).

Itu saja, instal apk baru kami dan Anda siap melakukannya.

3. Bagaimana jika aplikasi tidak disadap dan juga tidak menunjukkan error!!

Di sini hal pertama yang muncul di benak saya adalah " Flutter ". Aplikasi berbasis flutter pada dasarnya adalah “ Proxy tidak sadar ”.

Jadi inilah pahlawan kita " Reflutter " :

Kerangka kerja ini membantu rekayasa balik aplikasi Flutter menggunakan versi tambalan pustaka Flutter yang sudah dikompilasi dan siap untuk pengemasan ulang aplikasi. “

Repo:https://github.com/Impact-I/reFlutter

Langkah 1: pasang reflektor menggunakan pip

Langkah 2: Ikuti perintah yang diilustrasikan pada tangkapan layar di bawah ini.

Langkah 3: Masuk aplikasi menggunakan uber-apk-signer atau alternatif apa pun dan instal.

Langkah 4: Sekarang di Burp proxy, Mulai dengarkan port 8083 dan aktifkan juga “ Support Invisible Proxying ”.

Itu saja peeps, kalian semua baik-baik saja…!

4. Aplikasi saya hanya menggunakan HTTP tetapi saya tetap tidak dapat mencegat!!

Hmm..Itu agak aneh, Tapi itu kadang terjadi.

Aplikasi dengan perilaku ini, pada dasarnya disebut aplikasi “ Proxy Unaware ”. Aplikasi semacam itu merutekan lalu lintas langsung ke internet tanpa bekerja sama dengan pengaturan Proxy di seluruh sistem.

Waktu untuk melewati:

Untuk metode ini, saya ingin berterima kasih kepada saudara Faris ❤.

(60) Faris Muhammad | LinkedIn

Langkah 1: Cari tahu alamat domain tempat Aplikasi berkomunikasi menggunakan Wireshark. Ditampilkan Di Bawah Ini.

Langkah 2: Dekompilasi aplikasi menggunakan apktool

Langkah 3: Masuk ke folder dekompilasi dan gunakan alat ack/grep untuk mencari tahu file yang menyebutkan nama domain.

Langkah 4: Ganti nama domain dengan alamat IP dan Port of BurpSuite.

Langkah 5: Kemas ulang aplikasi, tandatangani dan pasang di perangkat android.

Langkah7: Di proxy BurpSuite, Dari tab Penanganan permintaan, berikan host dan port pengalihan sebagai alamat domain asli yang digunakan oleh aplikasi di tempat pertama.

Langkah 8: Siapkan kecocokan dan ganti dalam opsi proxy untuk mengganti nilai header Host dari alamat IP pendengar burp ke alamat domain asli aplikasi

Itu dia. Sekarang lalu lintas HTTP aplikasi akan ditangkap di proxy Burp kami.

Catatan: — Di sini, Karena kami mengganti domain aplikasi yang di-hardcode, kami tidak perlu menyiapkan proxy perangkat karena aplikasi langsung berkomunikasi dengan domain yang di-hardcode (Kami telah menggantinya dengan IP proxy kami).

Jadi saya pikir saya sudah melakukannya untuk saat ini. Sebenarnya masih ada beberapa metode lain yang bisa kita gunakan untuk mem-bypass Pinning SSL android. Saya akan mencoba membuat Bagian 2 dengan itu berdasarkan tanggapan Anda.

Terima kasih peeps, Selamat meretas :)