
Server MCP in stile C2 agentico per la strumentazione Frida su Android rooted e iOS jailbroken.
Un server MCP con trasporto HTTP streamable che esegue la strumentazione dinamica di Frida interamente sul dispositivo — nessun tool lato client richiesto.
Questo progetto gira direttamente su dispositivi Android rooted e iOS jailbroken, esponendo Frida come un insieme di strumenti richiamabili via HTTP. Qualsiasi client compatibile con MCP può connettersi a un dispositivo in rete ed eseguire strumentazione dinamica senza installare alcun tool Frida localmente.
In futuro, lo sviluppo punta su Gemini CLI e Claude Code come client principali, poiché entrambi stanno sviluppando supporto nativo per l'orchestrazione multi-agente e MCP — in linea con la direzione di questo progetto di comporre più server MCP (es. FridaC2MCP + Jadx-MCP) in workflow automatizzati. 5ire è stato usato ampiamente durante lo sviluppo iniziale e rimane un'ottima opzione GUI per interagire con il server.
Gemini CLI — registra il server MCP del dispositivo (sostituisci <DEVICE_IP> con l'indirizzo LAN del tuo telefono):
gemini mcp add --transport http frida-c2-mcp http://<DEVICE_IP>:6767/mcp
Demo Android
https://github.com/user-attachments/assets/7cee77c5-ed40-4797-b6b5-3edb5fdd03ce
Demo iOS
https://github.com/user-attachments/assets/1f0fa9c4-6fd0-4dfd-a640-78c9f8a95a6b
keep_alive=True).L'obiettivo è il testing di sicurezza mobile completamente automatizzato e guidato da agenti. Esponendo Frida come server MCP, un pentester o un agente AI può ispezionare e manipolare il comportamento di un'applicazione senza una connessione USB diretta o accesso shell locale dopo la configurazione iniziale. Il client non richiede alcun tool Frida: tutto gira sul dispositivo di destinazione.
Un workflow tipico:
Questo si estende naturalmente a configurazioni multi-dispositivo: esegui più telefoni sulla stessa rete, ciascuno con il proprio server MCP, e orchestrali da un singolo agente.
cli.py)Gira in Termux su Android rooted. Usa esbuild per il bundling degli script al volo e frida-java-bridge per la strumentazione del runtime Java/Android. Sebbene frida-compile sia tecnicamente disponibile tramite frida-tools, non può essere utilizzato su Termux perché il dominio SELinux untrusted_app di Android blocca i mapping di memoria W^X richiesti dal compilatore JIT di V8 — causando un SIGSEGV su qualsiasi script non banale. esbuild è un binario Go staticamente linkato senza JIT, quindi gira correttamente in qualsiasi contesto SELinux.
ios.py)Gira su iOS jailbroken rootless (testato su iPhone X, iOS 16.7.12 con palera1n). Usa frida-compile per il bundling degli script e frida-objc-bridge per la strumentazione del runtime Objective-C. Node.js non è richiesto sul dispositivo.
La porta iOS ha richiesto la compilazione personalizzata dell'intera toolchain Python 3.12 per arm64, poiché nessuno di questi pacchetti era disponibile per iOS jailbroken rootless:
Le wheel precompilate e il .deb di Python sono inclusi in ios_precompiled/ così non devi compilarle tu. Vedi setup.md per le istruzioni di installazione su iOS.
esbuild gestisce il bundling (gira in qualsiasi contesto SELinux senza JIT). Su iOS, viene usato frida-compile con gli import del bridge ObjC iniettati automaticamente.FridaC2MCP è un'impalcatura per un framework di pentesting mobile automatizzato. L'idea è comporre più server MCP specializzati — ad esempio: FridaC2MCP per la strumentazione dinamica, Jadx-MCP per l'analisi statica — e lasciare che gli agenti AI orchestrino l'intero workflow. Decompila un APK, identifica i metodi interessanti, poi agganciali dal vivo. Nessun cambio manuale di strumenti, nessun copia-incolla tra terminali.
Questo si abbina naturalmente a Gemini CLI e Claude Code, che già supportano nativamente workflow MCP multi-strumento. Il framework non ha bisogno di implementare la propria orchestrazione degli agenti — deve solo fornire i giusti server MCP e lasciare che gli agenti esistenti facciano ciò in cui sono bravi.
devlog.md per i dettagli.requirements-android.txt o requirements-ios.txt — non aggiornare a un fastmcp senza vincolo di versione finché questo repo non esegue la migrazione.Questo progetto è un'evoluzione in rete dell'originale FridaMCP di Daniel Nakov. Mentre il progetto originale ha fatto da pioniere nell'uso di Frida come server MCP via stdio, FridaC2MCP adatta questo concetto per ambienti C2 remoti e multi-dispositivo usando Streamable HTTP e il moderno bundling di Frida 17.
Il runtime Python 3.12 per iOS si basa su python3.12-ios-arm64 di k1tty-xz. Il progetto originale era destinato a jailbreak rootful — sono state necessarie modifiche significative per adattarlo ad ambienti jailbreak rootless (palera1n, struttura /var/jb/).
Questo è un proof-of-concept. Manca di una corretta gestione delle sessioni, di una gestione elegante degli errori e di qualsiasi forma di sicurezza. Tutte le comunicazioni non sono crittografate né autenticate. Usalo a tuo rischio e solo in ambienti di rete sicuri e isolati.
| Pacchetto | Versione | Sistema di Build | Motivo |
|---|
| Python | 3.12.5 | configure + Make | Runtime di base — non disponibile tramite Procursus |
| frida-python | 17.6.0 | Meson + setuptools | Binding core di Frida |
| pydantic-core | 2.41.5 | maturin (Rust/PyO3) | Richiesto da FastMCP |
| cryptography | 47.0.0.dev1 | maturin (Rust) + OpenSSL 3.x | Catena di dipendenze; necessaria correzione SIGILL per A11 |
| cffi | 2.0.1.dev0 | setuptools + libffi | Richiesto da cryptography |
| pyyaml | 7.0.0.dev0 | setuptools + libyaml | Richiesto dalle dipendenze di FastMCP |
| rpds-py | 0.30.0 | maturin (Rust/PyO3) | Richiesto dalle dipendenze di FastMCP |
| lupa | 2.6 | setuptools + Lua | Embedding Lua |