🌳Setup environnement

Outils

Android Studio IDE

Android Studio est l'IDE officiel pour le développement Android et comprend tout ce dont vous avez besoin pour créer des applications Android.

ressource: https://developer.android.com/studio/releases

Pen-Andro

Script permettant d'automatiser l'intallations d'applications, frida-server et le certificat burp suite.

ressource: https://github.com/raoshaab/Pen-Andro

Setup

lancement du service adb (Android Debug Bridge)

$ adb start-server

Lancer une emulation

Créer un nouvel émulateur en utilisant le périphérique virtuel Android (AVD) Manager, qui est inclus dans Android Studio.

  • Accéder à AVD

  • Télécharger la version Android souhaitée

  • Installer la version choisie

  • Nommez l'émulateur

  • Exécuter l'emulateur

Lister les emulateurs disponibles

$ adb devices

Installer une application

$ adb -s <emulator name> install exemple.apk

Extraire un apk

$ adb shell pm list packages #lister les packages

$ adb shell pm path <package>

$ adb pull /path/to/package==/exemple.apk

Setup Burp Proxy

Dans burp suite

  1. Aller dans "Proxy > Options" puis cliquer sur "Import / export CA certificate"

  2. Importer le certificat au format DER

  3. Retourner dans "Options" et créer un nouveau listener sur le port souhaité et écoutant sur toutes les interfaces.

Sur l'appareil Android

Méthode 1: Proxy via paramètres WIFI

Aller dans les parametres WIFI avancés et ajouter un proxy à l'adresse de votre machine hôte et au port choisi dans burp.

Méthode 2: Global proxy

Ajouter un proxy:

$ adb shell settings put global http_proxy <IP>:<Port>

Supprimer le proxy:

$ adb shell settings put global http_proxy :0

Sur l'appareil hôte

Convertir le fichier cacert.der importé en format accepté par l'appareil mobile comme ceci:

$ openssl x509 -inform DER -in cacert.der -out cacert.pem
puis,
$ CERT="`openssl x509 -inform PEM -subject_hash_old -in cacert.pem | head -1`.0"
puis,
$ mv cacert.pem $CERT

Copier le certificat dans l'appareil android

$ emulator -list-avds
<avd name>
$ emulator -avd "<avd name>" -http-proxy <ip proxy>:<port proxy> -writable-system

//Dans un autre terminal
$ adb root
$ adb remount
$ adb push 9a5ba575.0 /sdcard/
$ adb shell
# mount -o rw,remount /system
# mv /sdcard/9a5ba575.0 /system/etc/security/cacerts/
# chmod 644 /system/etc/security/cacerts/9a5ba575.0
# reboot

Patch APK

Cette étape permet d'ajouter les gadgets frida à une application afin de pouvoir hook l'application plus facilement. Pour cela il existe deux solutions...

Solution automatique

Objection permet de faire ce patch automatiquement via la commande suivante:

$ objection patchapk -s example.apk [-t com.example.xyz.SpecificClass]

Note: Si il y a une erreur disant qu'il est impossible de décoder la ressource, il faut ajouter l'argument --use-aapt2 à la commande.

Objection ajoutera alors la lib frida adaptée à l'architecture du device dans les libs et dans le code puis signera le nouvel apk (example.objection.apk). Une fois cela fait, il ne reste plus qu'a remplacer l'apk original par le nouvel apk sur l'appareil.

Solution manuelle

Si la solution automatique ne fonctionne pas, il est nécessaire de faire la manipulation manuellement. Pour cela, suivre les instructions du site suivant:

Outils

Frida

Frida est une boîte à outils d'instrumentation de code dynamique. Il vous permet d'injecter des extraits de code JavaScript ou votre propre bibliothèque dans des applications natives sur Windows, macOS, GNU/Linux, iOS, watchOS, tvOS, Android, FreeBSD et QNX.

ressource: https://frida.re/docs/installation/

Objection

Objection est une boîte à outils d'exploration mobile d'exécution, optimisée par Frida =, conçue pour vous aider à évaluer l'état de sécurité de vos applications mobiles, sans avoir besoin d'un jailbreak.

ressource: https://github.com/sensepost/objection/

Dernière mise à jour