İçeriğe geç

Android Ssl Pinning Bypass via Frida

Bazı uygulamalar SSL Pinning kullanarak mitm saldıralarına karşı güvenlik önlemi aldıkları için olağan süreçlerin dışına çıkarak atak vektörümüzü değiştirmemiz gerekmektedir. Bu yazımızda Ssl Pinning güvenlik önlemini bypass etmek için en çok kullanılan yöntemlerden biri olan Frida’yı kullanacağız. Temelden almak yerine kısa öz konfigürasyonlardan bahsederek yazıyı sonlandıracağım.
Mobil Pentest işlemlerinin daha kolay yapılması için emulator kurulumunda Android Studio AVD Manager aracını öneriyorum, Yapacağımız işlemlerde esneklik kazanmamız için cihazımızın root destekli olması gerekmektedir. Desteklenen imajlarını şu şekilde sıralayabiliriz:

Intel x86 Atom System Image

Intel x86 Atom_64 System Image

Google APIs Intel x86 Atom System Image

Google APIs Intel x86 Atom_64 System Image.

Bazı uygulamalar intel x86 mimarisinde kurulumda sıkıntı çıkarabiliyor. Aynı şekilde Google APIs ARM imajlarınıda boot edebilirsiniz.

Emulator kurulumundan sonra ~/.android/avd/EMULATOR_ADI.avd/config.ini üzerinden “hw.ramSize,vm.heapSize,sdcard.size” vb. değerleri manuel olarak atayarak cihaz özelliklerini değiştirebilirsiniz.
Burp ve internet bağlantısı için aşağıdaki adımlar izlenmelidir.

Settings –> More –> Cellular Networks –> Access Point Names

Seçeneğini seçtikten sonra yeni bir apn set etmemiz gerekmektedir.
Size tanımlanan local ip ve burpte dinlemeye aldığımız port numarasını aşağıdaki şekilde set ederek kayıt ediyoruz. Kayıt işlemi yaptıktan sonra ilgili proxy ayarımızı seçiyoruz.
Ayarlarımızı gerçekleştirdikten sonra burp arayüzünden sertifikamızı cihazımıza eklememiz için web tarayıcımızda tanımlanan ip ve port bağlantımıza http isteği yapıyoruz.
İndirilen dosya uzantısını crt olarak değiştirip yükledikten sonra ssl trafikleri ile beraber isteklerimiz burp intercept seçeneğinden takip edebiliriz.
Frida yapılandırması için aşağıdaki adımları izleyiniz.
https://github.com/frida/frida/releases/ girerek kullandığınız emulatör mimarisine uygun derlenmiş Frida-Server dosyasını indirerek localden komutlarımızı göndereceğimiz serverimizi kurmamız gerekmektedir.
İndirilen arşiv dosyasındaki ELF formatındaki çalıştırılabilir dosyamızı emülatörümüze push ediyoruz.
adb push frida-server-12.2.27-android-arm /data/local/tmp/frida-server
adb shell
su
chmod 755 /data/local/tmp/frida-server
Sisteme attığımız dosyamızı çalıştırma yetkisi verdikten sonra burp sertifikamızıda frida server için aynı lokasyona push ediyoruz.
adb push cacert.der /data/local/tmp/cert-der.crt
dosya ismimizi değiştirmemizin nedeni bypass için kullanacağımız
https://codeshare.frida.re/@pcipolloni/universal-android-ssl-pinning-bypass-with-frida/ scriptimize uygun olması gerekmektedir.
Gerekli dosyalar yüklendikten sonra frida serveri arka planda çalıştırmak için ilgili komutumuzu giriyoruz.
adb shell “/data/local/tmp/frida-server &”
Frida ile çalışan  uygulamaları görmek için localden frida-ps -U komutunu deneyebilirsiniz.
Daha sonra bypass işlemini gerçekleştirmek için uygulamamızı şu komut ile local shellimizde çalıştırıyoruz.
frida -U -f apk_ismi -l frida-android-repinning.js –no-pause
Ve trafiğimizi artık izleyebiliriz;
İyi çalışmalar diliyorum 🙂
Kaynakça ve İlgili Diğer dökümanlar;
https://techblog.mediaservice.net/2017/07/universal-android-ssl-pinning-bypass-with-frida/https://techblog.mediaservice.net/2018/04/brida-a-step-by-step-user-guide/https://www.codemetrix.net/hacking-android-apps-with-frida-1/https://medium.com/ehsahil/basic-android-security-testing-lab-part-1-a2b87e667533https://www.netguru.co/codestories/3-ways-how-to-implement-certificate-pinning-on-androidhttps://infosecninja.blogspot.com/2017/05/working-with-burpsuite-mobile-assistant.htmlhttps://medium.com/bugbountywriteup/how-to-bypass-certificate-validation-ssl-pinning-ef8af8b15c40
Tarih:Siber Güvenlik

İlk Yorumu Siz Yapın

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir