Cordova Apps

Support HackTricks

Para más detalles, consulta https://infosecwriteups.com/recreating-cordova-mobile-apps-to-bypass-security-implementations-8845ff7bdc58. Este es un resumen:

Apache Cordova es reconocido por permitir el desarrollo de aplicaciones híbridas utilizando JavaScript, HTML y CSS. Permite la creación de aplicaciones para Android e iOS; sin embargo, carece de un mecanismo predeterminado para asegurar el código fuente de la aplicación. A diferencia de React Native, Cordova no compila el código fuente por defecto, lo que puede llevar a vulnerabilidades de manipulación de código. Cordova utiliza WebView para renderizar aplicaciones, exponiendo el código HTML y JavaScript incluso después de ser compilado en archivos APK o IPA. React Native, en cambio, emplea una VM de JavaScript para ejecutar código JavaScript, ofreciendo mejor protección del código fuente.

Clonando una Aplicación Cordova

Antes de clonar una aplicación Cordova, asegúrate de que NodeJS esté instalado junto con otros requisitos previos como el SDK de Android, Java JDK y Gradle. La documentación oficial de Cordova proporciona una guía completa para estas instalaciones.

Considera un ejemplo de aplicación llamada Bank.apk con el nombre de paquete com.android.bank. Para acceder al código fuente, descomprime bank.apk y navega a la carpeta bank/assets/www. Esta carpeta contiene el código fuente completo de la aplicación, incluidos los archivos HTML y JS. La configuración de la aplicación se puede encontrar en bank/res/xml/config.xml.

Para clonar la aplicación, sigue estos pasos:

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

Copia el contenido de bank/assets/www a bank-new/www, excluyendo cordova_plugins.js, cordova.js, cordova-js-src/ y el directorio plugins/.

Especifica la plataforma (Android o iOS) al crear un nuevo proyecto de Cordova. Para clonar una aplicación de Android, añade la plataforma Android. Ten en cuenta que las versiones de plataforma de Cordova y los niveles de API de Android son distintos. Consulta la documentación de Cordova para obtener detalles sobre las versiones de plataforma y las API de Android compatibles.

Para determinar la versión de plataforma de Cordova Android adecuada, verifica el PLATFORM_VERSION_BUILD_LABEL en el archivo cordova.js de la aplicación original.

Después de configurar la plataforma, instala los plugins requeridos. El archivo bank/assets/www/cordova_plugins.js de la aplicación original enumera todos los plugins y sus versiones. Instala cada plugin individualmente como se muestra a continuación:

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

Si un plugin no está disponible en npm, se puede obtener de GitHub:

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

Asegúrate de que se cumplan todos los requisitos previos antes de compilar:

cd bank-new
cordova requirements

Para construir el APK, usa el siguiente comando:

cd bank-new
cordova build android  packageType=apk

Este comando genera un APK con la opción de depuración habilitada, facilitando la depuración a través de Google Chrome. Es crucial firmar el APK antes de la instalación, especialmente si la aplicación incluye mecanismos de detección de manipulación de código.

Herramienta de Automatización

Para aquellos que buscan automatizar el proceso de clonación, MobSecco es una herramienta recomendada. Simplifica la clonación de aplicaciones de Android, facilitando los pasos descritos anteriormente.

Support HackTricks

Last updated