hacktricks/mobile-pentesting/android-app-pentesting/react-native-application.md

4.5 KiB

{% hint style="success" %} Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks
{% endhint %}

Análise de Aplicações React Native

Para confirmar se a aplicação foi construída no framework React Native, siga estes passos:

  1. Renomeie o arquivo APK com uma extensão zip e extraia-o para uma nova pasta usando o comando cp com.example.apk example-apk.zip e unzip -qq example-apk.zip -d ReactNative.

  2. Navegue até a nova pasta ReactNative e localize a pasta assets. Dentro desta pasta, você deve encontrar o arquivo index.android.bundle, que contém o JavaScript React em um formato minificado.

  3. Use o comando find . -print | grep -i ".bundle$" para procurar o arquivo JavaScript.

Para analisar ainda mais o código JavaScript, crie um arquivo chamado index.html no mesmo diretório com o seguinte código:

<script src="./index.android.bundle"></script>

Você pode fazer o upload do arquivo para https://spaceraccoon.github.io/webpack-exploder/ ou seguir estas etapas:

  1. Abra o arquivo index.html no Google Chrome.

  2. Abra a Developer Toolbar pressionando Command+Option+J para OS X ou Control+Shift+J para Windows.

  3. Clique em "Sources" na Developer Toolbar. Você deve ver um arquivo JavaScript que está dividido em pastas e arquivos, formando o pacote principal.

Se você encontrar um arquivo chamado index.android.bundle.map, poderá analisar o código-fonte em um formato não minimizado. Os arquivos de mapa contêm mapeamento de origem, que permite mapear identificadores minimizados.

Para procurar credenciais e endpoints sensíveis, siga estas etapas:

  1. Identifique palavras-chave sensíveis para analisar o código JavaScript. Aplicações React Native costumam usar serviços de terceiros como Firebase, endpoints de serviço AWS S3, chaves privadas, etc.

  2. Neste caso específico, observou-se que a aplicação estava usando o serviço Dialogflow. Procure por um padrão relacionado à sua configuração.

  3. Foi uma sorte que credenciais sensíveis codificadas foram encontradas no código JavaScript durante o processo de reconhecimento.

Referências

{% hint style="success" %} Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks
{% endhint %}