mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-30 08:30:57 +00:00
94 lines
8.4 KiB
Markdown
94 lines
8.4 KiB
Markdown
|
# Aplicaciones Cordova
|
||
|
|
||
|
<details>
|
||
|
|
||
|
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||
|
|
||
|
* ¿Trabajas en una **empresa de ciberseguridad**? ¿Quieres ver tu **empresa anunciada en HackTricks**? ¿O quieres tener acceso a la **última versión de PEASS o descargar HackTricks en PDF**? ¡Consulta los [**PLANES DE SUSCRIPCIÓN**](https://github.com/sponsors/carlospolop)!
|
||
|
* Descubre [**The PEASS Family**](https://opensea.io/collection/the-peass-family), nuestra colección exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||
|
* Obtén el [**swag oficial de PEASS & HackTricks**](https://peass.creator-spring.com)
|
||
|
* **Únete al** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de Telegram**](https://t.me/peass) o **sígueme** en **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||
|
* **Comparte tus trucos de hacking enviando PRs al** [**repositorio de hacktricks**](https://github.com/carlospolop/hacktricks) **y al** [**repositorio de hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
|
||
|
|
||
|
</details>
|
||
|
|
||
|
Información tomada del artículo [https://infosecwriteups.com/recreating-cordova-mobile-apps-to-bypass-security-implementations-8845ff7bdc58](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 <a href="#8f50" id="8f50"></a>
|
||
|
|
||
|
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](https://cordova.apache.org/docs/en/11.x/guide/cli/#install-pre-requisites-for-building) 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:
|
||
|
```bash
|
||
|
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](https://cordova.apache.org/docs/en/11.x/guide/platforms/android/) 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.
|
||
|
|
||
|
<figure><img src="https://miro.medium.com/v2/resize:fit:1124/1*Hap3DmxS6-1apNj5RfpC3g.png" alt="Cordova Plugins" height="570" width="562"><figcaption><p>Complementos de Cordova</p></figcaption></figure>
|
||
|
|
||
|
Necesitamos instalar todos los complementos uno por uno con la ayuda del siguiente comando
|
||
|
```bash
|
||
|
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:
|
||
|
```bash
|
||
|
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.
|
||
|
```bash
|
||
|
cd bank-new
|
||
|
cordova requirements
|
||
|
```
|
||
|
Una vez que tengamos toda la configuración lista, podemos construir el archivo APK.
|
||
|
```bash
|
||
|
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**](https://github.com/Anof-cyber/MobSecco): Una herramienta que automatiza todo el proceso de clonación de la aplicación de Android.
|
||
|
|
||
|
<details>
|
||
|
|
||
|
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||
|
|
||
|
* ¿Trabajas en una **empresa de ciberseguridad**? ¿Quieres ver tu **empresa anunciada en HackTricks**? ¿O quieres tener acceso a la **última versión de PEASS o descargar HackTricks en PDF**? ¡Consulta los [**PLANES DE SUSCRIPCIÓN**](https://github.com/sponsors/carlospolop)!
|
||
|
* Descubre [**The PEASS Family**](https://opensea.io/collection/the-peass-family), nuestra colección exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||
|
* Obtén el [**swag oficial de PEASS y HackTricks**](https://peass.creator-spring.com)
|
||
|
* **Únete al** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de Telegram**](https://t.me/peass) o **sígueme** en **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||
|
* **Comparte tus trucos de hacking enviando PRs al** [**repositorio de hacktricks**](https://github.com/carlospolop/hacktricks) **y al** [**repositorio de hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
|
||
|
|
||
|
</details>
|