
Code source illustrant un script d'exécution de démonstration de serveur C2 pour CVE-2024-23700
Projet illustrant la conception et la construction d'un serveur de commande et de collecte d'informations (Command & Control - Serveur C2) destiné au scénario expérimental d'exploitation de la vulnérabilité d'élévation de privilèges CVE-2024-23700. Ce serveur joue le rôle de réception, de traitement, de classification et d'affichage des données sensibles dérobées depuis l'appareil Android cible.
La documentation et le code source de ce dépôt servent uniquement à des fins d'apprentissage, d'analyse de sécurité et de tests dans un environnement autorisé. Ne pas utiliser sur des appareils, comptes ou données hors du cadre de tests légitimes.
Projet rattaché au cours : Sécurité sur les appareils mobiles
Équipe de réalisation : Projet réalisé par une équipe de 4 membres.
Au cours de la recherche et de la finalisation du projet de conception de ce serveur C2, l'équipe a pris en charge les tâches suivantes :
data.json afin d'optimiser un PoC rapide et léger.Le système de serveur C2 applique le modèle Client-Serveur, dans lequel l'application Android malveillante (PoC) joue le rôle de Client qui envoie continuellement des données. L'architecture C2 est divisée en deux composants de traitement indépendants pour garantir une vitesse élevée et une grande flexibilité.
Flux de fonctionnement principal du serveur C2 :
/ est conçu avec un mécanisme de traitement double. S'il est accédé par la méthode GET (scan de navigateur), le serveur renvoie une fausse erreur 404 pour se dissimuler. S'il reçoit une méthode POST contenant un format JSON provenant du code malveillant, le serveur accepte et extrait l'identifiant de l'appareil.s_cache, gps_cache).data.json./api/data afin de lire la base de données.device_id), scanne en profondeur la structure pour extraire les paramètres matériels (RAM, Batterie, OS) et les affiche visuellement sur le radar.Code de la vulnérabilité : CVE-2024-23700
Niveau de gravité Android : Critique
Composant concerné : Android Companion Device Manager
Correctif de référence : Android Wear Security Bulletin 2024-05-01
Ce serveur C2 est conçu comme partie d'un réseau expérimental, recevant le flux de données de renseignement provenant des appareils Android ayant été exploités avec succès via la vulnérabilité ci-dessus.
CVE-2024-23700-C2-Server/
├── backend/
│ ├── app.py - Initialisation des Endpoints API, traitement du camouflage et classification JSON
│ └── requirements.txt
├── frontend/
│ ├── src/
│ │ ├── pages/
│ │ │ ├── Dashboard.jsx - Écran radar de vue d'ensemble des appareils
│ │ │ └── DeviceDetails.jsx - Boîte de dialogue d'analyse approfondie des payloads
│ │ ├── App.jsx
│ │ └── App.css
│ ├── package.json
│ └── nginx.conf - Personnalisation du Reverse Proxy pour le frontend
├── data.json - Base de données à fichiers plats stockant les enregistrements (montée en volume)
├── docker-compose.yml - Gestion des conteneurs et du réseau interne
├── .gitignore
└── README.md
Plutôt que d'utiliser une logique alambiquée, le serveur identifie et étiquette automatiquement en fonction des blocs de données (cache) renvoyés, tandis que l'interface Frontend intègre un dictionnaire intelligent (MODULE_MAP et COLUMN_TRANSLATIONS) pour normaliser et « franciser » les résultats :
s_cache).c_cache).cal_cache).n_cache).gps_cache).En outre, le système convertit automatiquement l'horodatage brut en heure locale lisible et interprète les codes numériques en états réels (ex. : Type d'appel 1 = « ↙️ Appel entrant »).
L'ensemble de l'infrastructure C2 est exploitée via docker compose pour garantir la cohérence et éliminer les écarts d'environnement. La structure exécute 2 services principaux :
data.json dans la zone mémoire /app/data.json à l'intérieur du conteneur. Cela permet aux données de renseignement d'être conservées en permanence même si le conteneur est supprimé ou redémarré. Le service applique la politique restart: always./api/ est automatiquement transférée (proxy_pass) au Backend pour renforcer la sécurité. Ce conteneur doit démarrer après le Backend (depends_on) pour éviter les erreurs de perte de connexion initiale.data.json dispose des droits de lecture/écriture appropriés sur le serveur physique avant de lancer Docker.| Composant | Description | Chemin |
|---|
Backend Flask (app.py) | Centre de contrôle (C2), écoute, classifie et stocke les données dans data.json. | backend/app.py |
| Dashboard Radar | Panneau de contrôle central, regroupe les cibles et affiche les paramètres HW/OS, le nombre de payloads. | frontend/src/pages/Dashboard.jsx |
| Device Details Modal | Interface de dissection des données de la victime (Modal XL), fournissant un système d'Accordion et des tableaux de données dynamiques. | frontend/src/pages/DeviceDetails.jsx |
| Fichier de configuration Docker | Coordonne le déploiement du Backend (port 5000) et du Frontend Nginx (port 80) via Reverse Proxy. | docker-compose.yml |