hacktricks/mobile-pentesting/cordova-apps.md

8.6 KiB

Applications Cordova

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥

Informations tirées de l'article https://infosecwriteups.com/recreating-cordova-mobile-apps-to-bypass-security-implementations-8845ff7bdc58

Informations de base

Apache Cordova est un framework populaire qui vous permet de créer des applications hybrides (Android et iOS) en utilisant JavaScript, HTML et CSS.

L'un des principaux problèmes avec Cordova est qu'il ne dispose pas d'une méthode par défaut pour sécuriser la source de l'application, contrairement à react-native. La source de l'application Cordova n'a pas de méthode par défaut pour la compiler, ce qui facilite la manipulation du code. L'application Cordova utilise WebView pour rendre l'application en utilisant HTML et JS, ce qui révèle le code source même après sa compilation en APK ou IPA, tandis que react native utilise JavaScript VM pour exécuter le code JavaScript.

Clonage d'une application Cordova

Pour créer une application Cordova, nous devons installer NodeJS. En plus de NodeJS, nous avons besoin de quelques autres éléments installés pour terminer le processus de construction, tels que Android SDK, Java JDK et Gradle. Vous pouvez suivre la documentation officielle pour la liste des exigences.

Pour cet exemple, nous pouvons supposer que le nom de l'application d'origine est Bank.apk et le nom du package com.android.bank

Décompressez le fichier bank.apk et ouvrez le dossier bank/assets/www. Nous pouvons voir la source complète de l'application Cordova. Tout le code HTML et JS peut être utilisé pour créer un clone de l'application. Nous pouvons également trouver le fichier de configuration de l'application dans bank/res/xml/config.xml.

Maintenant, nous pouvons créer un nouveau projet d'application Cordova :

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

Maintenant, nous devons copier tous les fichiers et dossiers de bank/assets/www vers bank-new/www.

Lorsque nous copions le code source, nous devons exclure quelques fichiers et dossiers tels que cordova_plugins.js, cordova.js, cordova-js-src/, plugins/. Nous pouvons copier tous les fichiers et dossiers en excluant ceux mentionnés ci-dessus.

Lorsque nous créons un nouveau projet Cordova, nous devons préciser s'il s'agit d'une application Android ou iOS. Étant donné que nous clonons l'application Android, nous devons y ajouter une plateforme Android. Dans Cordova, nous avons les versions de plateforme, chaque version ayant différentes fonctionnalités et prise en charge des API Android ou des versions Android.

Les versions de l'API Android et de la plateforme Android de Cordova sont différentes. Vous pouvez consulter la liste des versions de plateforme et leur prise en charge des API Android.

Pour ajouter la plateforme Android de Cordova, nous devons déterminer quelle version a été utilisée à l'origine par l'application. Si vous utilisez une version différente, vous pourriez rencontrer des problèmes car nous utilisons le même code source pour cloner l'application. Vous pouvez ouvrir le fichier cordova.js et rechercher PLATFORM_VERSION_BUILD_LABEL pour trouver la version utilisée par l'application.

Maintenant que nous avons ajouté la prise en charge de la plateforme Android, nous pouvons ajouter tous les plugins requis utilisés par l'application. Dans l'application d'origine bank/assets/www/cordova_plugins.js, nous pouvons trouver une liste de tous les plugins utilisés par l'application. Nous devons installer ces plugins un par un. Recherchez module.exports.metadata dans le fichier cordova_plugins.js. Nous pouvons voir tous les plugins avec leurs versions également.

Cordova Plugins

Plugins Cordova

Nous devons installer tous les plugins un par un à l'aide de la commande suivante

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

{% hint style="warning" %} Si un plugin n'est pas disponible dans npm, recherchez-le sur Github :

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

{% endhint %}

Pour compiler l'application, nous devons nous assurer d'avoir déjà installé toutes les exigences nécessaires.

cd bank-new
cordova requirements

Une fois que nous avons terminé toutes les configurations nécessaires, nous pouvons construire l'APK.

cd bank-new
cordova build android — packageType=apk

La commande de construction ci-dessus créera un fichier apk avec la méthode de débogage activée, ce qui nous permettra de déboguer l'application à l'aide de Google Chrome. Avant d'installer le fichier apk, assurez-vous de le signer. Si l'application dispose d'une détection de modification de code, elle sera contournée à moins qu'aucune configuration spécifique ne soit définie.

Outil automatique

MobSecco : Un outil qui automatise l'ensemble du processus de clonage de l'application Android.

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥