
Codice sorgente che illustra l'esecuzione dello script demo del server C2 di CVE-2024-23700
Progetto che illustra la progettazione e la costruzione di un server di comando e controllo (C2 Server) per lo scenario sperimentale di sfruttamento della vulnerabilità di escalation dei privilegi CVE-2024-23700. Questo server svolge il ruolo di ricevere, elaborare, classificare e visualizzare i dati sensibili sottratti dal dispositivo Android target.
La documentazione e il codice sorgente in questo repository servono esclusivamente a scopi didattici, di analisi della sicurezza e di test in ambienti autorizzati. Non utilizzare su dispositivi, account o dati che non rientrano nell'ambito di test legittimi.
Progetto relativo al corso: Sicurezza sui dispositivi mobili
Gruppo di lavoro: Progetto realizzato da un gruppo di 4 membri.
Durante il processo di ricerca e completamento del progetto di progettazione di questo C2 Server, il gruppo ha svolto le seguenti attività:
data.json per ottimizzare un PoC rapido e leggero.Il sistema C2 Server adotta il modello Client-Server, in cui l'applicazione Android dannosa (PoC) funge da Client che invia continuamente dati. L'architettura C2 è suddivisa in due componenti di elaborazione indipendenti per garantire elevate prestazioni e flessibilità.
Flusso operativo principale del C2 Server:
/ è progettato con un meccanismo di elaborazione duale. Se viene acceduto con metodo GET (scansione del browser), il server restituisce un falso errore 404 per eludere il rilevamento. Se riceve un metodo POST contenente formato JSON dal malware, il server lo accetta ed estrae l'identificativo del dispositivo.s_cache, gps_cache).data.json./api/data per leggere il database.device_id), esegue una scansione approfondita della struttura per estrarre i parametri hardware (RAM, Batteria, OS) e li visualizza sul radar.Codice vulnerabilità: CVE-2024-23700
Livello di gravità Android: Critico
Componente interessato: Android Companion Device Manager
Patch di riferimento: Android Wear Security Bulletin 2024-05-01
Questo server C2 è progettato come parte di una rete sperimentale, ricevendo flussi di dati di intelligence da dispositivi Android compromessi con successo tramite la vulnerabilità sopra menzionata.
CVE-2024-23700-C2-Server/
├── backend/
│ ├── app.py - Inizializzazione endpoint API, gestione mimetizzazione e classificazione JSON
│ └── requirements.txt
├── frontend/
│ ├── src/
│ │ ├── pages/
│ │ │ ├── Dashboard.jsx - Schermata radar panoramica dei dispositivi
│ │ │ └── DeviceDetails.jsx - Finestra di analisi approfondita del payload
│ │ ├── App.jsx
│ │ └── App.css
│ ├── package.json
│ └── nginx.conf - Reverse Proxy personalizzato per il frontend
├── data.json - Database flat-file per l'archiviazione dei record (montato come volume)
├── docker-compose.yml - Gestione dei container e della rete interna
├── .gitignore
└── README.md
Invece di utilizzare logica complessa, il server riconosce e assegna automaticamente etichette in base ai blocchi di dati (cache) ricevuti, mentre l'interfaccia Frontend integra un dizionario intelligente (MODULE_MAP e COLUMN_TRANSLATIONS) per standardizzare e localizzare i risultati:
s_cache).c_cache).cal_cache).n_cache).gps_cache).Inoltre, il sistema converte automaticamente i timestamp grezzi in un formato di ora locale leggibile e interpreta i codici numerici in stati reali (es: Tipo di chiamata 1 = "↙️ Chiamata in arrivo").
L'intera infrastruttura C2 viene gestita tramite docker compose per garantire coerenza ed eliminare discrepanze ambientali. La struttura esegue 2 servizi principali:
data.json nella memoria /app/data.json all'interno del container. Ciò consente di salvare permanentemente i dati di intelligence anche se il container viene eliminato o riavviato. Il servizio applica la policy restart: always./api/ vengono automaticamente inoltrate (proxy_pass) al Backend per una maggiore sicurezza. Questo container deve avviarsi dopo il Backend (depends_on) per evitare errori di connessione iniziale.data.json abbia i permessi di lettura/scrittura appropriati sul server fisico prima di avviare Docker.| Componente | Descrizione | Percorso |
|---|
Backend Flask (app.py) | Centro di controllo (C2), ascolta, classifica e archivia i dati in data.json. | backend/app.py |
| Dashboard Radar | Pannello di controllo centrale, raggruppa i target e visualizza parametri HW/OS e numero di payload. | frontend/src/pages/Dashboard.jsx |
| Device Details Modal | Interfaccia per analizzare i dati della vittima (Modal XL), con sistema Accordion e tabelle dati dinamiche. | frontend/src/pages/DeviceDetails.jsx |
| File di configurazione Docker | Coordina la distribuzione del Backend (porta 5000) e del Frontend Nginx (porta 80) tramite Reverse Proxy. | docker-compose.yml |