hacktricks/mobile-pentesting/cordova-apps.md

8.4 KiB

Aplicaciones Cordova

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

Información tomada del artículo https://infosecwriteups.com/recreating-cordova-mobile-apps-to-bypass-security-implementations-8845ff7bdc58

Información básica

Apache Cordova es un framework popular que te permite crear aplicaciones híbridas (Android e iOS) utilizando JavaScript, HTML y CSS.

Uno de los principales problemas con Cordova es que no viene con un método predeterminado para asegurar el código fuente de la aplicación, a diferencia de react-native. El código fuente de la aplicación Cordova no tiene un método predeterminado para compilarlo, lo que facilita la manipulación del código. La aplicación Cordova utiliza WebView para renderizar la aplicación utilizando HTML y JS, lo que revela el código fuente incluso después de compilarlo en APK o IPA, mientras que react native utiliza JavaScript VM para ejecutar el código JavaScript.

Clonando una aplicación Cordova

Para crear una aplicación Cordova, necesitamos instalar NodeJS. Además de NodeJS, necesitamos instalar algunas otras cosas para completar el proceso de compilación, como Android SDK, Java JDK y Gradle. Puedes seguir la documentación oficial para ver la lista de requisitos.

Para este ejemplo, podemos suponer que el nombre original de la aplicación es Bank.apk y el nombre del paquete com.android.bank

Descomprime el archivo bank.apk y abre la carpeta bank/assets/www. Podemos ver el código fuente completo de la aplicación Cordova. Todo el código HTML y JS se puede utilizar para crear un clon de la aplicación. También podemos encontrar el archivo de configuración de la aplicación en bank/res/xml/config.xml.

Ahora podemos crear un nuevo proyecto de aplicación Cordova:

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

Ahora necesitamos copiar todos los archivos y carpetas de bank/assets/www a bank-new/www.

Cuando copiamos el código fuente, necesitamos excluir algunos archivos y carpetas como cordova_plugins.js, cordova.js, cordova-js-src/, plugins/. Podemos copiar todos los archivos y carpetas excluyendo los mencionados anteriormente.

Cuando creamos un nuevo proyecto de Cordova, debemos indicar si la aplicación es para Android o iOS. Dado que estamos clonando la aplicación de Android, debemos agregar una plataforma de Android a ella. En Cordova tenemos las versiones de plataforma, cada versión tiene diferentes características y soporte para APIs de Android o versiones de Android.

Las versiones de API de Android y las versiones de plataforma de Android de Cordova son diferentes. Puedes consultar la lista de versiones de plataforma y su soporte para APIs de Android.

Para agregar la plataforma de Android de Cordova, debemos averiguar qué versión se usó originalmente en la aplicación. Si usas una versión diferente, podrías enfrentar problemas ya que estamos utilizando el mismo código fuente para clonar la aplicación. Puedes abrir el archivo cordova.js y buscar PLATFORM_VERSION_BUILD_LABEL para encontrar la versión utilizada por la aplicación.

\

Ahora que hemos agregado el soporte de la plataforma de Android, podemos agregar todos los complementos requeridos utilizados por la aplicación. En la aplicación original bank/assets/www/cordova_plugins.js, podemos encontrar una lista de todos los complementos utilizados por la aplicación. Necesitamos instalar esos complementos uno por uno. Busca module.exports.metadata en el archivo cordova_plugins.js. Podemos ver todos los complementos con sus respectivas versiones.

Cordova Plugins

Complementos de Cordova

Necesitamos instalar todos los complementos uno por uno con la ayuda del siguiente comando

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

{% hint style="warning" %} Si un plugin no está disponible en npm, búscalo en Github:

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

{% endhint %}

Para compilar la aplicación, debemos asegurarnos de tener todos los requisitos ya instalados.

cd bank-new
cordova requirements

Una vez que tengamos toda la configuración lista, podemos construir el archivo APK.

cd bank-new
cordova build android — packageType=apk

El comando de compilación anterior creará un archivo apk con el método de depuración habilitado, lo que nos permitirá depurar la aplicación usando Google Chrome. Antes de instalar el apk, asegúrese de firmarlo. Si la aplicación tiene detección de manipulación de código, se pasará por alto a menos que no haya una configuración específica establecida.

Herramienta Automática

MobSecco: Una herramienta que automatiza todo el proceso de clonación de la aplicación de Android.

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