hacktricks/mobile-pentesting/cordova-apps.md

79 lines
6.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Cordova Uygulamaları
{% hint style="success" %}
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>HackTricks'i Destekleyin</summary>
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** bizi takip edin.**
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
</details>
{% endhint %}
**Daha fazla detay için [https://infosecwriteups.com/recreating-cordova-mobile-apps-to-bypass-security-implementations-8845ff7bdc58](https://infosecwriteups.com/recreating-cordova-mobile-apps-to-bypass-security-implementations-8845ff7bdc58) adresini kontrol edin. Bu bir özet:**
Apache Cordova, **JavaScript, HTML ve CSS** kullanarak **hibrit uygulamaların** geliştirilmesini sağladığı için tanınmaktadır. Android ve iOS uygulamalarının oluşturulmasına olanak tanır; ancak, uygulamanın kaynak kodunu güvence altına almak için varsayılan bir mekanizma sunmamaktadır. React Native'in aksine, Cordova varsayılan olarak kaynak kodunu derlemez, bu da kod manipülasyonu zafiyetlerine yol açabilir. Cordova, uygulamaları render etmek için WebView kullanır ve HTML ile JavaScript kodunu APK veya IPA dosyalarına derlendikten sonra bile açığa çıkarır. React Native ise, JavaScript kodunu çalıştırmak için bir JavaScript VM kullanarak daha iyi kaynak kodu koruması sunar.
### Cordova Uygulamasını Klonlama
Bir Cordova uygulamasını klonlamadan önce, NodeJS'in yanı sıra Android SDK, Java JDK ve Gradle gibi diğer ön koşulların yüklü olduğundan emin olun. Resmi Cordova [belgeleri](https://cordova.apache.org/docs/en/11.x/guide/cli/#install-pre-requisites-for-building) bu kurulumlar için kapsamlı bir kılavuz sunmaktadır.
`com.android.bank` paket adına sahip `Bank.apk` adlı bir örnek uygulamayı düşünün. Kaynak koda 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ı da 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 bu adımları izleyin:
```bash
npm install -g cordova@latest
cordova create bank-new com.android.bank Bank
cd bank-new
```
`bank/assets/www` içeriğini `bank-new/www` dizinine kopyalayın, `cordova_plugins.js`, `cordova.js`, `cordova-js-src/` ve `plugins/` dizinini hariç tutarak.
Yeni bir Cordova projesi oluştururken platformu (Android veya iOS) belirtin. Android uygulamasını klonlarken Android platformunu ekleyin. Cordova'nın platform sürümleri ve Android API seviyelerinin farklı olduğunu unutmayın. Platform sürümleri ve desteklenen Android API'leri hakkında ayrıntılar için Cordova [belgelerine](https://cordova.apache.org/docs/en/11.x/guide/platforms/android/) bakın.
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 kurduktan 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:
```bash
cd bank-new
cordova plugin add cordova-plugin-dialogs@2.0.1
```
Eğer bir eklenti npm'de mevcut değilse, GitHub'dan temin edilebilir:
```bash
cd bank-new
cordova plugin add https://github.com/moderna/cordova-plugin-cache.git
```
Tüm ön koşulların derlemeden önce karşılandığından emin olun:
```bash
cd bank-new
cordova requirements
```
APK'yi oluşturmak için aşağıdaki komutu kullanın:
```bash
cd bank-new
cordova build android — packageType=apk
```
Bu komut, hata ayıklama seçeneği etkinleştirilmiş bir APK oluşturur ve Google Chrome üzerinden hata ayıklamayı kolaylaştırır. Uygulama kod değiştirme tespit mekanizmaları içeriyorsa, kurulumdan önce APK'nın imzalanması çok önemlidir.
### Otomasyon Aracı
Klonlama sürecini otomatikleştirmek isteyenler için, **[MobSecco](https://github.com/Anof-cyber/MobSecco)** önerilen bir araçtır. Bu araç, yukarıda belirtilen adımları basitleştirerek Android uygulamalarının klonlanmasını kolaylaştırır.
{% hint style="success" %}
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>HackTricks'i Destekleyin</summary>
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.**
* **Hacking ipuçlarını paylaşmak için [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.**
</details>
{% endhint %}