hacktricks/mobile-pentesting/cordova-apps.md

78 lines
6.2 KiB
Markdown
Raw Normal View History

# Aplicaciones Cordova
<details>
<summary><strong>Aprende a hackear AWS desde cero hasta convertirte en un experto con</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Otras formas de apoyar a HackTricks:
* Si deseas ver tu **empresa anunciada en HackTricks** o **descargar HackTricks en PDF** Consulta los [**PLANES DE SUSCRIPCIÓN**](https://github.com/sponsors/carlospolop)!
* Obtén el [**oficial PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Descubre [**The PEASS Family**](https://opensea.io/collection/the-peass-family), nuestra colección exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Únete al** 💬 [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **síguenos** en **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Comparte tus trucos de hacking enviando PRs a los** [**HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositorios de github.
</details>
**Para más detalles, consulta [https://infosecwriteups.com/recreating-cordova-mobile-apps-to-bypass-security-implementations-8845ff7bdc58](https://infosecwriteups.com/recreating-cordova-mobile-apps-to-bypass-security-implementations-8845ff7bdc58)**. Esto 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. Por otro lado, React Native emplea una máquina virtual de JavaScript para ejecutar el código JavaScript, ofreciendo una mejor protección del código fuente.
### Clonar una Aplicación Cordova
Antes de clonar una aplicación Cordova, asegúrate de tener instalado NodeJS junto con otros requisitos como el SDK de Android, Java JDK y Gradle. La [documentación](https://cordova.apache.org/docs/en/11.x/guide/cli/#install-pre-requisites-for-building) oficial de Cordova proporciona una guía completa para estas instalaciones.
Considera una aplicación de ejemplo llamada `Bank.apk` con el nombre de paquete `com.android.bank`. Para acceder al código fuente, descomprime `bank.apk` y navega hasta 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:
```bash
npm install -g cordova@latest
cordova create bank-new com.android.bank Bank
cd bank-new
```
Copie el contenido de `bank/assets/www` a `bank-new/www`, excluyendo `cordova_plugins.js`, `cordova.js`, `cordova-js-src/` y el directorio `plugins/`.
Especifique la plataforma (Android o iOS) al crear un nuevo proyecto de Cordova. Para clonar una aplicación Android, agregue la plataforma Android. Tenga en cuenta que las versiones de plataforma de Cordova y los niveles de API de Android son distintos. Consulte la [documentación](https://cordova.apache.org/docs/en/11.x/guide/platforms/android/) de Cordova para obtener detalles sobre las versiones de plataforma y las API de Android admitidas.
Para determinar la versión de plataforma de Cordova Android adecuada, verifique el `PLATFORM_VERSION_BUILD_LABEL` en el archivo `cordova.js` de la aplicación original.
Después de configurar la plataforma, instale los plugins requeridos. El archivo `bank/assets/www/cordova_plugins.js` de la aplicación original enumera todos los plugins y sus versiones. Instale cada plugin individualmente como se muestra a continuación:
```bash
cd bank-new
cordova plugin add cordova-plugin-dialogs@2.0.1
```
Si un plugin no está disponible en npm, se puede obtener desde GitHub:
```bash
cd bank-new
cordova plugin add https://github.com/moderna/cordova-plugin-cache.git
```
Asegúrese de que se cumplan todos los requisitos previos antes de compilar:
```bash
cd bank-new
cordova requirements
```
Para construir el APK, utiliza el siguiente comando:
```bash
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](https://github.com/Anof-cyber/MobSecco)** es una herramienta recomendada. Simplifica la clonación de aplicaciones de Android, simplificando los pasos mencionados anteriormente.
<details>
<summary><strong>Aprende hacking en AWS desde cero hasta experto con</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Otras formas de apoyar a HackTricks:
* Si deseas ver tu **empresa anunciada en HackTricks** o **descargar HackTricks en PDF** Consulta los [**PLANES DE SUSCRIPCIÓN**](https://github.com/sponsors/carlospolop)!
* Obtén el [**oficial PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Descubre [**The PEASS Family**](https://opensea.io/collection/the-peass-family), nuestra colección exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Únete al** 💬 [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **síguenos** en **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Comparte tus trucos de hacking enviando PRs a los** [**HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositorios de github.
</details>