mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-26 14:40:37 +00:00
79 lines
6 KiB
Markdown
79 lines
6 KiB
Markdown
# Cordova Apps
|
|
|
|
{% hint style="success" %}
|
|
Learn & practice AWS Hacking:<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">\
|
|
Learn & practice GCP Hacking: <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>Support HackTricks</summary>
|
|
|
|
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
|
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
|
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
|
|
|
</details>
|
|
{% endhint %}
|
|
|
|
**Pour plus de détails, consultez [https://infosecwriteups.com/recreating-cordova-mobile-apps-to-bypass-security-implementations-8845ff7bdc58](https://infosecwriteups.com/recreating-cordova-mobile-apps-to-bypass-security-implementations-8845ff7bdc58)**. Voici un résumé :
|
|
|
|
Apache Cordova est reconnu pour permettre le développement d'**applications hybrides** utilisant **JavaScript, HTML et CSS**. Il permet la création d'applications Android et iOS ; cependant, il manque d'un mécanisme par défaut pour sécuriser le code source de l'application. Contrairement à React Native, Cordova ne compile pas le code source par défaut, ce qui peut entraîner des vulnérabilités de falsification de code. Cordova utilise WebView pour rendre les applications, exposant le code HTML et JavaScript même après avoir été compilé en fichiers APK ou IPA. React Native, en revanche, utilise une VM JavaScript pour exécuter le code JavaScript, offrant une meilleure protection du code source.
|
|
|
|
### Cloner une application Cordova
|
|
|
|
Avant de cloner une application Cordova, assurez-vous que NodeJS est installé avec d'autres prérequis comme le SDK Android, Java JDK et Gradle. La [documentation officielle de Cordova](https://cordova.apache.org/docs/en/11.x/guide/cli/#install-pre-requisites-for-building) fournit un guide complet pour ces installations.
|
|
|
|
Considérez un exemple d'application nommée `Bank.apk` avec le nom de package `com.android.bank`. Pour accéder au code source, décompressez `bank.apk` et naviguez vers le dossier `bank/assets/www`. Ce dossier contient le code source complet de l'application, y compris les fichiers HTML et JS. La configuration de l'application se trouve dans `bank/res/xml/config.xml`.
|
|
|
|
Pour cloner l'application, suivez ces étapes :
|
|
```bash
|
|
npm install -g cordova@latest
|
|
cordova create bank-new com.android.bank Bank
|
|
cd bank-new
|
|
```
|
|
Copiez le contenu de `bank/assets/www` vers `bank-new/www`, en excluant `cordova_plugins.js`, `cordova.js`, `cordova-js-src/` et le répertoire `plugins/`.
|
|
|
|
Spécifiez la plateforme (Android ou iOS) lors de la création d'un nouveau projet Cordova. Pour cloner une application Android, ajoutez la plateforme Android. Notez que les versions de plateforme de Cordova et les niveaux d'API Android sont distincts. Consultez la [documentation](https://cordova.apache.org/docs/en/11.x/guide/platforms/android/) de Cordova pour plus de détails sur les versions de plateforme et les API Android prises en charge.
|
|
|
|
Pour déterminer la version appropriée de la plateforme Cordova Android, vérifiez le `PLATFORM_VERSION_BUILD_LABEL` dans le fichier `cordova.js` de l'application d'origine.
|
|
|
|
Après avoir configuré la plateforme, installez les plugins requis. Le fichier `bank/assets/www/cordova_plugins.js` de l'application d'origine répertorie tous les plugins et leurs versions. Installez chaque plugin individuellement comme indiqué ci-dessous :
|
|
```bash
|
|
cd bank-new
|
|
cordova plugin add cordova-plugin-dialogs@2.0.1
|
|
```
|
|
Si un plugin n'est pas disponible sur npm, il peut être obtenu depuis GitHub :
|
|
```bash
|
|
cd bank-new
|
|
cordova plugin add https://github.com/moderna/cordova-plugin-cache.git
|
|
```
|
|
Assurez-vous que toutes les conditions préalables sont remplies avant de compiler :
|
|
```bash
|
|
cd bank-new
|
|
cordova requirements
|
|
```
|
|
Pour construire l'APK, utilisez la commande suivante :
|
|
```bash
|
|
cd bank-new
|
|
cordova build android — packageType=apk
|
|
```
|
|
Cette commande génère un APK avec l'option de débogage activée, facilitant le débogage via Google Chrome. Il est crucial de signer l'APK avant l'installation, surtout si l'application inclut des mécanismes de détection de falsification de code.
|
|
|
|
### Outil d'automatisation
|
|
|
|
Pour ceux qui cherchent à automatiser le processus de clonage, **[MobSecco](https://github.com/Anof-cyber/MobSecco)** est un outil recommandé. Il simplifie le clonage des applications Android, rendant plus faciles les étapes décrites ci-dessus.
|
|
|
|
{% hint style="success" %}
|
|
Learn & practice AWS Hacking:<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">\
|
|
Learn & practice GCP Hacking: <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>Support HackTricks</summary>
|
|
|
|
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
|
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
|
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
|
|
|
</details>
|
|
{% endhint %}
|