
Codice sorgente che illustra l'esecuzione dello script demo del server C2 di CVE-2024-23700
[cite_start]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[cite: 2]. [cite_start]Questo server ha il ruolo di ricevere, elaborare, classificare e visualizzare i dati sensibili sottratti dal dispositivo Android target[cite: 3].
La documentazione e il codice sorgente in questo repository sono solo a scopo didattico, di analisi della sicurezza e di test in ambienti autorizzati. Non utilizzare su dispositivi, account o dati non appartenenti a un test legale.
Progetto relativo al corso: Sicurezza sui dispositivi mobili
Gruppo di lavoro: Il progetto è stato realizzato da un gruppo di 4 membri.
| Nr. | Nome e cognome | Codice studente |
|---|---|---|
| 1 | Đặng Quang Vinh | D54.B10.AT.024 |
| 2 | Nguyễn Khắc Hoàng Anh | D54.B10.AT.05 |
| 3 | Trần Văn Tiến | D54.B10.AT.020 |
| 4 | Nguyễn Xuân Tùng | D54.B10.AT.023 |
Durante la ricerca e il completamento del progetto di progettazione del C2 Server, il gruppo ha svolto le seguenti attività:
data.json per ottimizzare la rapidità e la leggerezza del PoC.Il sistema C2 Server adotta il modello Client-Server, in cui l'applicazione Android dannosa (PoC) funge da Client inviando continuamente dati al server. L'architettura C2 è suddivisa in due componenti di elaborazione indipendenti per garantire elevata velocità e flessibilità.
Flusso operativo principale del C2 Server:
/ implementa un meccanismo a doppio trattamento. Se viene raggiunto con metodo GET (scansione del browser), il server restituisce un falso errore 404 per eludere. Se riceve un metodo POST con formato JSON dal malware, il server accetta ed estrae l'identificatore del dispositivo.s_cache, gps_cache).data.json./api/data per leggere il database.device_id), scansiona in profondità la struttura per estrarre parametri hardware (RAM, Batteria, OS) e li visualizza in modo interattivo sul radar.Codice vulnerabilità: CVE-2024-23700
Livello di gravità Android: Critico
Componente coinvolto: Android Companion Device Manager
Patch di riferimento: Android Wear Security Bulletin 2024-05-01
Questo C2 Server è progettato come parte di una rete sperimentale, ricevendo flussi di dati di intelligence da dispositivi Android sfruttati con successo tramite la vulnerabilità sopra indicata.
CVE-2024-23700-C2-Server/
├── backend/
│ ├── app.py - Inizializzazione endpoint API, gestione del camuffamento 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 - Personalizzazione del Reverse Proxy 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 una logica complessa, il server riconosce e assegna automaticamente etichette basate sui blocchi di dati (cache) restituiti, e 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 originali nel formato ora locale leggibile e interpreta i codici in stati reali (es. Call type 1 = "↙️ Chiamata in arrivo").
L'intera infrastruttura C2 viene eseguita tramite docker compose per garantire consistenza ed eliminare discrepanze ambientali. La struttura esegue due servizi principali:
data.json nel percorso /app/data.json all'interno del container. Ciò garantisce che i dati di intelligence siano conservati permanentemente anche se il container viene eliminato o riavviato. Il servizio adotta la policy restart: always./api/ vengono automaticamente inoltrate (proxy_pass) al Backend per aumentare la 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 sulla macchina host 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 mostra parametri HW/OS, numero di payload. | frontend/src/pages/Dashboard.jsx |
| Device Details Modal | Interfaccia per analizzare i dati della vittima (Modal XL), fornisce sistema di accordion e tabella dinamica. | frontend/src/pages/DeviceDetails.jsx |
| File di configurazione Docker | Coordina il deployment del Backend (porta 5000) e del Frontend Nginx (porta 80) tramite Reverse Proxy. | docker-compose.yml |