hacktricks/mobile-pentesting/cordova-apps.md

8.1 KiB

Aplicativos Cordova

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥

Informações retiradas do post 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

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 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:

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 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.

Cordova Plugins

Plugins do Cordova

Precisamos instalar todos os plugins um por um com a ajuda do comando abaixo:

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:

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.

cd bank-new
cordova requirements

Uma vez que tenhamos todas as configurações prontas, podemos construir o apk.

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: Uma ferramenta que automatiza todo o processo de clonagem do aplicativo Android.

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥