hacktricks/mobile-pentesting/cordova-apps.md
2024-02-10 18:14:16 +00:00

6.1 KiB
Raw Blame History

Cordova Uygulamaları

AWS hacklemeyi sıfırdan kahramanla öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı)!

HackTricks'i desteklemenin diğer yolları:

Daha fazla ayrıntı için https://infosecwriteups.com/recreating-cordova-mobile-apps-to-bypass-security-implementations-8845ff7bdc58'e bakın. İşte bir özet:

Apache Cordova, JavaScript, HTML ve CSS kullanarak hibrit uygulamaların geliştirilmesini sağlamasıyla tanınır. Android ve iOS uygulamalarının oluşturulmasına izin verir; ancak, uygulamanın kaynak kodunu güvence altına almak için varsayılan bir mekanizma sunmaz. React Native'in aksine, Cordova kaynak kodunu varsayılan olarak derlemez, bu da kod manipülasyonu açıklarına yol açabilir. Cordova, uygulamaları render etmek için WebView'i kullanır ve HTML ve JavaScript kodunu APK veya IPA dosyalarına derlendikten sonra bile açığa çıkarır. Öte yandan, React Native, JavaScript kodunu yürütmek için bir JavaScript VM kullanır ve daha iyi kaynak kodu koruması sunar.

Bir Cordova Uygulamasını Klonlama

Bir Cordova uygulamasını klonlamadan önce, NodeJS'in yanı sıra Android SDK, Java JDK ve Gradle gibi diğer önkoşulların yüklü olduğundan emin olun. Resmi Cordova belgeleri bu kurulumlar için kapsamlı bir kılavuz sağlar.

Bank.apk adında bir örnek uygulamayı düşünelim ve paket adı com.android.bank olsun. Kaynak koduna erişmek için bank.apk dosyasınıın ve bank/assets/www klasörüne gidin. Bu klasör, uygulamanın HTML ve JS dosyaları dahil olmak üzere tam kaynak kodunu içerir. Uygulamanın yapılandırması bank/res/xml/config.xml dosyasında bulunabilir.

Uygulamayı klonlamak için şu adımları izleyin:

npm install -g cordova@latest
cordova create bank-new com.android.bank Bank
cd bank-new

bank/assets/www klasöründeki içeriği, cordova_plugins.js, cordova.js, cordova-js-src/ ve plugins/ dizinini hariç tutarak bank-new/www klasörüne kopyalayın.

Yeni bir Cordova projesi oluştururken platformu (Android veya iOS) belirtin. Bir Android uygulamasını klonlamak için Android platformunu ekleyin. Unutmayın, Cordova'nın platform sürümleri ve Android API seviyeleri farklıdır. Platform sürümleri ve desteklenen Android API'leri hakkında ayrıntılı bilgi için Cordova belgelerine başvurun.

Uygun Cordova Android platform sürümünü belirlemek için orijinal uygulamanın cordova.js dosyasındaki PLATFORM_VERSION_BUILD_LABEL değerini kontrol edin.

Platformu ayarladıktan sonra gerekli eklentileri yükleyin. Orijinal uygulamanın bank/assets/www/cordova_plugins.js dosyası tüm eklentileri ve sürümlerini listeler. Aşağıda gösterildiği gibi her eklentiyi ayrı ayrı yükleyin:

cd bank-new
cordova plugin add cordova-plugin-dialogs@2.0.1

Eğer bir eklenti npm'de mevcut değilse, GitHub üzerinden temin edilebilir:

cd bank-new
cordova plugin add https://github.com/moderna/cordova-plugin-cache.git

Derleme yapmadan önce tüm önkoşulların karşılandığından emin olun:

cd bank-new
cordova requirements

APK'yi oluşturmak için aşağıdaki komutu kullanın:

cd bank-new
cordova build android — packageType=apk

Bu komut, hata ayıklamayı Google Chrome üzerinden kolaylaştıran hata ayıklama seçeneği etkinleştirilmiş bir APK oluşturur. Özellikle uygulama kodu manipülasyonu tespit mekanizmaları içeriyorsa, APK'nın kurulmadan önce imzalanması önemlidir.

Otomasyon Aracı

Klonlama sürecini otomatikleştirmek isteyenler için MobSecco önerilen bir araçtır. Bu, yukarıda açıklanan adımları basitleştirerek Android uygulamalarının klonlanmasını kolaylaştırır.

AWS hacklemeyi sıfırdan kahraman olmak için htARTE (HackTricks AWS Red Team Expert)'ı öğrenin!

HackTricks'i desteklemenin diğer yolları: