hacktricks/mobile-pentesting/cordova-apps.md

6 KiB

Aplicativos Cordova

Aprenda hacking AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!

Outras maneiras de apoiar o HackTricks:

Para mais detalhes, confira 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, emprega 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 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:

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 do Cordova para obter detalhes sobre as versões de plataforma e APIs do Android suportadas.

Para determinar a versão apropriada da plataforma Cordova Android, 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:

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:

cd bank-new
cordova plugin add https://github.com/moderna/cordova-plugin-cache.git

Certifique-se de que todos os pré-requisitos sejam atendidos antes de compilar:

cd bank-new
cordova requirements

Para construir o APK, utilize o seguinte comando:

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 é uma ferramenta recomendada. Ele simplifica a clonagem de aplicativos Android, simplificando os passos descritos acima.

Aprenda hacking AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!

Outras maneiras de apoiar o HackTricks: