hacktricks/mobile-pentesting/cordova-apps.md

77 lines
6 KiB
Markdown

# Aplicativos Cordova
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Outras maneiras de apoiar o HackTricks:
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-me** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
</details>
**Para mais detalhes, consulte [https://infosecwriteups.com/recreating-cordova-mobile-apps-to-bypass-security-implementations-8845ff7bdc58](https://infosecwriteups.com/recreating-cordova-mobile-apps-to-bypass-security-implementations-8845ff7bdc58)**. Este é um resumo:
O Apache Cordova é reconhecido por permitir o desenvolvimento de **aplicativos híbridos** usando **JavaScript, HTML e CSS**. Ele permite a criação de aplicativos Android e iOS; no entanto, ele não possui um mecanismo padrão para proteger o código-fonte do aplicativo. Ao contrário do React Native, o Cordova não compila o código-fonte por padrão, o que pode levar a vulnerabilidades de manipulação de código. O Cordova utiliza o WebView para renderizar aplicativos, expondo o código HTML e JavaScript mesmo após ser compilado em arquivos APK ou IPA. O React Native, por outro lado, utiliza uma VM JavaScript para executar o código JavaScript, oferecendo uma melhor proteção do código-fonte.
### Clonando um Aplicativo Cordova
Antes de clonar um aplicativo Cordova, certifique-se de que o NodeJS está instalado juntamente com outros pré-requisitos como o Android SDK, Java JDK e Gradle. A [documentação](https://cordova.apache.org/docs/en/11.x/guide/cli/#install-pre-requisites-for-building) oficial do Cordova fornece um guia abrangente para essas instalações.
Considere um aplicativo de exemplo chamado `Bank.apk` com o nome do pacote `com.android.bank`. Para acessar o código-fonte, descompacte `bank.apk` e navegue até a pasta `bank/assets/www`. Esta pasta contém o código-fonte completo do aplicativo, incluindo arquivos HTML e JS. A configuração do aplicativo pode ser encontrada em `bank/res/xml/config.xml`.
Para clonar o aplicativo, siga estes passos:
```bash
npm install -g cordova@latest
cordova create bank-new com.android.bank Bank
cd bank-new
```
Copie o conteúdo de `bank/assets/www` para `bank-new/www`, excluindo `cordova_plugins.js`, `cordova.js`, `cordova-js-src/` e o diretório `plugins/`.
Especifique a plataforma (Android ou iOS) ao criar um novo projeto Cordova. Para clonar um aplicativo Android, adicione a plataforma Android. Note que as versões de plataforma do Cordova e os níveis de API do Android são distintos. Consulte a [documentação](https://cordova.apache.org/docs/en/11.x/guide/platforms/android/) do Cordova para detalhes sobre as versões de plataforma e APIs do Android suportadas.
Para determinar a versão apropriada da plataforma Android do Cordova, verifique o `PLATFORM_VERSION_BUILD_LABEL` no arquivo `cordova.js` do aplicativo original.
Após configurar a plataforma, instale os plugins necessários. O arquivo `bank/assets/www/cordova_plugins.js` do aplicativo original lista todos os plugins e suas versões. Instale cada plugin individualmente conforme mostrado abaixo:
```bash
cd bank-new
cordova plugin add cordova-plugin-dialogs@2.0.1
```
Se um plugin não estiver disponível no npm, ele pode ser obtido no GitHub:
```bash
cd bank-new
cordova plugin add https://github.com/moderna/cordova-plugin-cache.git
```
Certifique-se de que todos os pré-requisitos são atendidos antes de compilar:
```bash
cd bank-new
cordova requirements
```
Para construir o APK, utilize o seguinte comando:
```bash
cd bank-new
cordova build android — packageType=apk
```
Este comando gera um APK com a opção de depuração ativada, facilitando a depuração via Google Chrome. É crucial assinar o APK antes da instalação, especialmente se a aplicação incluir mecanismos de detecção de adulteração de código.
### Ferramenta de Automação
Para aqueles que buscam automatizar o processo de clonagem, **[MobSecco](https://github.com/Anof-cyber/MobSecco)** é uma ferramenta recomendada. Ela simplifica a clonagem de aplicativos Android, simplificando os passos descritos acima.
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Outras maneiras de apoiar o HackTricks:
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-me** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
* **Compartilhe seus truques de hacking enviando PRs para os repositórios** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>