mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-28 15:41:34 +00:00
92 lines
8.1 KiB
Markdown
92 lines
8.1 KiB
Markdown
# Aplicativos 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>
|
|
|
|
* Você trabalha em uma **empresa de cibersegurança**? Você quer ver sua **empresa anunciada no HackTricks**? ou você quer ter acesso à **última versão do PEASS ou baixar o HackTricks em PDF**? Verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
|
|
* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
|
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
|
|
* **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-me** no **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
|
* **Compartilhe suas técnicas de hacking enviando PRs para o** [**repositório hacktricks**](https://github.com/carlospolop/hacktricks) **e** [**repositório hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
|
|
|
|
</details>
|
|
|
|
Informações retiradas do post [https://infosecwriteups.com/recreating-cordova-mobile-apps-to-bypass-security-implementations-8845ff7bdc58](https://infosecwriteups.com/recreating-cordova-mobile-apps-to-bypass-security-implementations-8845ff7bdc58)
|
|
|
|
## Informações básicas
|
|
|
|
O Apache Cordova é um framework popular que permite **criar aplicativos híbridos** (Android e iOS) usando **JavaScript, HTML e CSS**.
|
|
|
|
Um dos principais problemas do Cordova é que ele **não possui um método padrão para proteger** o **código-fonte** do aplicativo, ao contrário do react-native. O código-fonte do aplicativo Cordova não possui um método padrão para compilá-lo, o que facilita a adulteração do código. O aplicativo Cordova usa o WebView para renderizar o aplicativo usando HTML e JS, o que expõe o código-fonte mesmo após a compilação para APK ou IPA, enquanto o react native usa o JavaScript VM para executar o código JavaScript.
|
|
|
|
### Clonando um aplicativo Cordova <a href="#8f50" id="8f50"></a>
|
|
|
|
Para criar um aplicativo Cordova, precisamos instalar o NodeJS. Além do NodeJS, precisamos de algumas outras coisas instaladas para concluir o processo de compilação, como Android SDK, Java JDK e Gradle. Você pode seguir a [documentação oficial](https://cordova.apache.org/docs/en/11.x/guide/cli/#install-pre-requisites-for-building) para a lista de requisitos.
|
|
|
|
Para este exemplo, podemos assumir que o nome do aplicativo original é `Bank.apk` e o nome do pacote `com.android.bank`
|
|
|
|
Descompacte o `bank.apk` e abra a pasta `bank/assets/www`. Podemos visualizar o **código-fonte completo do aplicativo Cordova**. Todo o código HTML e JS pode ser usado para criar um clone do aplicativo. Também podemos encontrar o arquivo de configuração do aplicativo em `bank/res/xml/config.xml`.
|
|
|
|
Agora podemos criar um novo projeto de aplicativo Cordova:
|
|
```bash
|
|
npm install -g cordova@latest
|
|
cordova create bank-new com.android.bank Bank
|
|
cd bank-new
|
|
```
|
|
Agora precisamos copiar todos os arquivos e pastas de `bank/assets/www` para `bank-new/www`.
|
|
|
|
Ao copiar o código-fonte, precisamos excluir alguns arquivos e pastas, como `cordova_plugins.js, cordova.js, cordova-js-src/, plugins/`. Podemos copiar todos os arquivos e pastas, excluindo os mencionados acima.
|
|
|
|
Ao criar um novo projeto Cordova, precisamos mencionar se o aplicativo é para Android ou iOS. Como estamos clonando o aplicativo Android, precisamos adicionar uma plataforma Android a ele. No Cordova, temos as versões da plataforma, cada versão possui recursos diferentes e suporte para APIs ou versões do Android.
|
|
|
|
As versões da API do Android e da plataforma Android do Cordova são diferentes. Você pode [verificar](https://cordova.apache.org/docs/en/11.x/guide/platforms/android/) a lista de versões da plataforma e seu suporte para APIs do Android.
|
|
|
|
Para adicionar a plataforma Android do Cordova, precisamos descobrir qual versão foi usada originalmente pelo aplicativo. Se você usar uma versão diferente, poderá enfrentar problemas, pois estamos usando o mesmo código-fonte para clonar o aplicativo. Você pode abrir o arquivo `cordova.js` e pesquisar `PLATFORM_VERSION_BUILD_LABEL` para encontrar a versão usada pelo aplicativo.
|
|
|
|
\
|
|
|
|
Agora que adicionamos o suporte à plataforma Android, podemos adicionar todos os plugins necessários usados pelo aplicativo. No aplicativo original `bank/assets/www/cordova_plugins.js`, podemos encontrar uma lista de todos os plugins usados pelo aplicativo. Precisamos instalar esses plugins um por um. Procure por `module.exports.metadata` no arquivo `cordova_plugins.js`. Podemos ver todos os plugins com suas respectivas versões.
|
|
|
|
<figure><img src="https://miro.medium.com/v2/resize:fit:1124/1*Hap3DmxS6-1apNj5RfpC3g.png" alt="Cordova Plugins" height="570" width="562"><figcaption><p>Plugins do Cordova</p></figcaption></figure>
|
|
|
|
Precisamos instalar todos os plugins um por um com a ajuda do comando abaixo:
|
|
```bash
|
|
cd bank-new
|
|
cordova plugin add cordova-plugin-dialogs@2.0.1
|
|
```
|
|
{% hint style="warning" %}
|
|
Se um plugin não estiver disponível na pesquisa do npm, procure no Github:
|
|
```bash
|
|
cd bank-new
|
|
cordova plugin add https://github.com/moderna/cordova-plugin-cache.git
|
|
```
|
|
{% endhint %}
|
|
|
|
Para compilar o aplicativo, precisamos garantir que todos os requisitos já estejam instalados.
|
|
```bash
|
|
cd bank-new
|
|
cordova requirements
|
|
```
|
|
Uma vez que tenhamos todas as configurações prontas, podemos construir o apk.
|
|
```bash
|
|
cd bank-new
|
|
cordova build android — packageType=apk
|
|
```
|
|
O comando de compilação acima criará um apk com o método de depuração ativado, o que nos permitirá depurar o aplicativo usando o Google Chrome. Antes de instalar o apk, certifique-se de assiná-lo. Se o aplicativo tiver detecção de adulteração de código, ela será contornada, a menos que não haja configuração específica definida.
|
|
|
|
### Ferramenta Automática
|
|
|
|
[**MobSecco**](https://github.com/Anof-cyber/MobSecco): Uma ferramenta que automatiza todo o processo de clonagem do aplicativo 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>
|
|
|
|
* Você trabalha em uma **empresa de segurança cibernética**? Você quer ver sua **empresa anunciada no HackTricks**? ou você quer ter acesso à **última versão do PEASS ou baixar o HackTricks em PDF**? Verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
|
|
* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
|
* Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
|
|
* **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-me** no **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
|
* **Compartilhe seus truques de hacking enviando PRs para o** [**repositório hacktricks**](https://github.com/carlospolop/hacktricks) **e** [**repositório hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
|
|
|
|
</details>
|