Her şey, Android SSL Sabitlemeyi Atlamak ve Habersiz Proxy uygulamalarını Durdurmakla ilgili.
Merhaba H3ckers,
"Android uygulamalarının HTTPS trafiği nasıl durdurulur" için pek çok makale olduğunu hepimiz biliyoruz, bu yüzden burada bunlara değinmeyeceğiz. Hiçbirini bulamadıysanız, aşağıdakilere bakın:
Bir Android Cihazını Burp ile Çalışacak Şekilde Yapılandırma — PortSwigger
Önkoşullar:
BurpSuite proxy, Temel Android Sızma Testi ve adb, frida, İtiraz, Magisk uygulaması, APK'yi Geri Derleme/Yeniden Derleme ve APK imzalama gibi araçlara aşina.
İçindekiler
- Hedef uygulamamın SSL sabitlemesi var mı?
- Bekle, Sabitlemeyi nasıl onaylayabiliriz?
- Baypas Zamanı
- Uygulama HTTP ile Çalışıyor olsa bile neden uygulama trafiğini engelleyemiyorum?
Anladım, kulağa şaka gibi geliyor, çünkü biliyorsunuz ki sabitleme yerindeyse, o zaman hedef android uygulamamızın HTTPS trafiğini yakalayamayız.
2. Bekle, Sabitlemeyi nasıl onaylayabiliriz?
Proxy'yi hem cihazda hem de proxy sunucusunda (Burp) ayarladıktan sonra, hedef uygulamayı çalıştırın, ardından hedef uygulama ile sunucuları arasında iletişim kuran bazı etkinlikler yapın.
Burp'ın kontrol panelini, özellikle Günlük bölümünü izleme zamanı. Sabitleme yerindeyse, aşağıdaki gibi bir Sertifika hatası görebileceğiz:
2. Atlama Zamanı
2.1 Taşıma Sertifikası — Magisk Modülü:
Cihazınız Magisk Uygulaması ile rootlanmışsa, Move Sertifika modülü iyi bir seçenektir.
Bu modül, kullanıcının güvendiği sertifikaları sistem deposuna taşıyarak sistemin (kök) kullanıcının yüklediği Sertifikaya (Proxy CA sertifikamız) güven duymasını sağlar.
2.2 İtiraz aracı
Depo : sensepost/objection: itiraz — çalışma zamanı mobil keşif (github.com)
Adım 1 : Frida sunucusunun android cihazda çalıştığından emin olun
Adım 2: Hedef uygulamayı aşağıdaki komutla itirazla ekleyin:
İtiraz -g <pkg adı/ PID> keşfet
Ardından “ android sslpinning disable ” komutunu çalıştırın.
İşte bu kadar, betik SSL sabitleme sınıflarını bulacak ve Sabitlemeyi atlatmak için çalışma zamanı sırasında bunları bağlayacaktır.
2.3 Frida Çerçevesi
Depo : Frida (github.com)
İşte en popüler ve yaygın olarak kullanılan yöntem geliyor.
Adım 1 : Frida sunucusunun android cihazda çalıştığından emin olun
Adım 2: Frida ile hedef uygulamanızı ekleyin ve en sevdiğiniz SSL baypas komut dosyasını çalıştırın.
En sevdiğim komut dosyaları aşağıdadır:
https://codeshare.frida.re/@akabe1/frida-multiple-unpinning/
https://codeshare.frida.re/@pcipolloni/universal-android-ssl-pinning-bypass-with-frida/
2.4 Xposed Çerçevesini Kullanma
Cihazınız Xposed çerçevesi ile köklendiyse , sabitlemeyi atlamak için aşağıdaki modülleri deneyebilirsiniz.
- ac-pm/SSLUnpinning_Xposed: Android Xposed Modülü, SSL sertifika doğrulamasını (Sertifika Sabitleme) atlamak için. (github.com)
- ViRb3/TrustMeAlready: Android'de sistem genelinde SSL doğrulamasını ve sabitlemeyi devre dışı bırakın (github.com)
apk-mitm, apk dosyalarını değiştirerek ve yeniden paketleyerek Android APK dosyalarını otomatik olarak HTTPS incelemesi için hazırlayan bir CLI uygulamasıdır.
depo:
shroudedcode/apk-mitm: Android APK dosyalarını HTTPS incelemesi için otomatik olarak hazırlayan bir CLI uygulaması (github.com)
apk-mitm, npm kullanılarak çıkarılabilir.
Adım 1: apk-mitm'i aşağıda gösterildiği gibi çalıştırın.
İşte bu, apk-mitm üzerine düşeni yaptı. Artık yamalı apk'yı yükleyebilir ve uygulama trafiğini durdurabiliriz.
2.6 network_security_config.xml dosyasını değiştirme
Ağ Güvenliği Yapılandırması, uygulamaların bildirim temelli bir yapılandırma dosyası aracılığıyla ağ güvenlik ayarlarını özelleştirmesine olanak tanır . Yapılandırmanın tamamı bu XML dosyasında yer alır ve hiçbir kod değişikliği gerekmez.
Kaynak : Ağ güvenlik yapılandırması | Android Geliştiricileri
Ağ Güvenliği Yapılandırması, Android 7.0 veya sonraki sürümlerde çalışır.
Adım 1 : Android uygulamasını apktool veya alternatifleri ile kaynak koda dönüştürün. Ve /res/xml altındaki network_security_config.xml dosyasını bulun.
Adım 2 : Uygulama kendi CA sertifikalarını sabitlediyse dosya şöyle görünebilir.
Adım 3 : Bu <pin-set>… </pin-set> etiket bölümünü kaldırın ve aşağıdakileri ekleyin:
Adım 4: Şimdi dosyayı kaydedin ve apktool ve uber-apk-signer kullanarak uygulamayı yeniden paketleyin (değiştirilmiş apk'yı imzalamak için).
İşte bu, yeni apk'mızı yükleyin ve hazırsınız.
3. Ya uygulama durdurulmuyorsa ve ayrıca herhangi bir hata göstermiyorsa !!
Burada aklıma gelen ilk şey “ Flutter ”. Flutter tabanlı uygulamalar temel olarak “ Proxy habersizdir ”.
İşte kahramanımız " Reflutter " geliyor:
“ Bu çerçeve, Flutter kitaplığının zaten derlenmiş ve uygulamanın yeniden paketlenmesi için hazır olan yamalı sürümünü kullanarak Flutter uygulamalarının tersine mühendisliğine yardımcı olur. “
depo:https://github.com/Impact-I/reFlutter
Adım 1: reflüter'ı pip kullanarak kurun
Adım 2: Aşağıdaki ekran görüntüsünde gösterilen komutları izleyin.
3. Adım: uber-apk-signer veya herhangi bir alternatifi kullanarak uygulamayı imzalayın ve kurun.
Adım 4: Şimdi Burp proxy'de, 8083 numaralı bağlantı noktasını dinlemeye başlayın ve ayrıca " Görünmez Proxy'yi Destekle " seçeneğini etkinleştirin .
İşte bu kadar dikizler, hepiniz hazırsınız… !
4. Başvurum yalnızca HTTP kullanıyor ama yine de araya giremiyorum!!
Hmm..Bu biraz tuhaf ama bazen oluyor.
Bu davranışa sahip uygulamalar, temel olarak “ Proxy Unhaware ” uygulamaları olarak adlandırılır. Bu tür uygulamalar, sistem genelinde Proxy ayarlarıyla işbirliği yapmadan trafiği doğrudan internete yönlendirir.
Atlama zamanı:
Bu yöntem için Faris Abi'ye çok teşekkür ederim ❤.
(60) Faris Muhammed | LinkedIn
Adım 1: Uygulamanın Wireshark kullanarak iletişim kurduğu etki alanı adresini bulun. Aşağıda gösterilen.
Adım 2: apktool kullanarak uygulamayı kaynak koda dönüştürün
Adım 3: Derlenmiş klasöre girin ve alan adının geçtiği dosyayı bulmak için ack/grep aracını kullanın.
Adım 4: Etki alanı adını BurpSuite'in IP adresi ve Bağlantı Noktası ile değiştirin.
Adım 5: Uygulamayı yeniden paketleyin, imzalayın ve android cihaza kurun.
Adım 7: BurpSuite proxy'sinde, İstek işleme sekmesinden, yönlendirme ana bilgisayarını ve bağlantı noktasını, uygulama tarafından en başta kullanılan orijinal etki alanı adresi olarak verin.
8. Adım: Geğirme dinleyicisi IP adresinden Ana Bilgisayar başlık değerini uygulamanın orijinal etki alanı adresine değiştirmek için proxy seçeneklerinde eşleştirme ve değiştirme ayarlarını yapın
Bu kadar. Artık uygulamanın HTTP trafiği Burp proxy'mizde yakalanacak.
Not: — Burada, sabit kodlu uygulama etki alanını değiştirdiğimiz için, uygulama doğrudan kodlanmış alanla iletişim kurduğu için cihaz proxy'si kurmamıza gerek yoktur (Bunu proxy IP'miz ile değiştirdik).
O yüzden şimdilik yaptığımı düşünüyorum. Aslında, android SSL Sabitlemeyi atlamak için kullanabileceğimiz başka yöntemler de var. Yanıtlarınıza göre bununla bir Bölüm 2 yapmaya çalışacağım.
Teşekkürler peeps, İyi hackler :)