
nightcrawler — Updated!
AI locale potenziato per red teaming su un telefono
Nightcrawler
Un agente autonomo di penetration testing che gira interamente su uno smartphone. Lascia il telefono su una rete, allontanati, e lui scopre host, mappa servizi, trova vulnerabilità e genera un report di pentest — tutto senza connettività cloud.
░█▄░█ █ █▀▀ █░█ ▀█▀ █▀▀ █▀█ ▄▀█ █░█░█ █░░ █▀▀ █▀█
░█░▀█ █ █▄█ █▀█ ░█░ █▄▄ █▀▄ █▀█ ▀▄▀▄▀ █▄▄ ██▄ █▀▄ v0.1.0
AUTONOMOUS MOBILE PENTEST AGENT
OnePlus 8 · NetHunter · LFM2.5-1.2B · OpenCL GPU
Cos'è?
Il penetration testing (pentest) è la pratica di testare la sicurezza di una rete informatica simulando un attacco — con il permesso esplicito del proprietario della rete. I pentester professionisti vengono assunti per trovare vulnerabilità prima che lo facciano i veri attaccanti.
Nightcrawler automatizza questo processo su un telefono. Usa un piccolo modello di IA (LFM2.5-1.2B-Instruct-Heretic, 1,2 miliardi di parametri) eseguito localmente sulla GPU del telefono per decidere cosa fare dopo — quale host sondare, quale strumento usare, cosa cercare. Nessuna connessione internet o API cloud richiesta.
Demo
▶️ Guarda Nightcrawler in azione su Instagram
Come funziona
- WiFi Breach (opzionale) — Se lasciato senza WiFi, può craccare autonomamente reti WPA2 usando un adattatore WiFi USB esterno
- Ricognizione — Scopre i dispositivi sulla rete usando scan stealth
- Enumerazione — Sonda i servizi scoperti (server web, condivisioni file, SSH, DNS, ecc.)
- Exploitation — Testa vulnerabilità note e credenziali di default
- Reporting — Genera un report di pentest strutturato con risultati e consigli di remediation
L'agente opera come un pentester umano paziente — ruota tra gli host, fa una piccola azione per turno e costruisce conoscenza gradualmente nel corso delle ore. Questo lo rende molto più difficile da rilevare rispetto ai tradizionali scanner di vulnerabilità che bombardano tutti gli host contemporaneamente.
Concetti chiave
| Termine | Cosa significa |
|---|---|
| Drop box | Un dispositivo lasciato su una rete target per eseguire test in autonomia |
| Scope | L'insieme di reti/host che sei autorizzato a testare |
| Rules of Engagement (ROE) | Un documento legale che specifica cosa ti è permesso fare |
| Stealth | Tecniche per evitare il rilevamento da parte del monitoraggio di rete (IDS/IPS) |
| MCP | Model Context Protocol — un'interfaccia standard per l'uso di strumenti IA |
| C2 | Command and Control — la dashboard web per monitorare e guidare l'agente |
Architettura
┌──────────────────────────────────────────────────────────┐
│ PHONE (OnePlus 8) │
│ │
│ ┌─────────────┐ ┌──────────────────┐ │
│ │ LFM2.5 │ │ Agent Loop │ │
│ │ 1.2B model │◄───►│ (main.py) │ │
│ │ on GPU │ │ Decides what │ │
│ │ (:8080) │ │ to do next │ │
│ └─────────────┘ └────────┬─────────┘ │
│ │ │
│ ┌────────▼─────────┐ │
│ │ Scope Proxy │ ← Safety layer │
│ │ Validates every │ Blocks out- │
│ │ command before │ of-scope │
│ │ execution │ actions │
│ └────────┬─────────┘ │
│ │ │
│ ┌────────▼─────────┐ │
│ │ Kali MCP Server │ ← Runs the │
│ │ nmap, curl, │ actual │
│ │ smbclient, ... │ commands │
│ └──────────────────┘ │
│ │
│ ┌──────────────────┐ ┌──────────────────┐ │
│ │ Web Dashboard │ │ SQLite DB │ │
│ │ (:8888) │ │ Hosts, vulns, │ │
│ │ Monitor & steer │ │ creds, commands │ │
│ └──────────────────┘ └──────────────────┘ │
└──────────────────────────────────────────────────────────┘
Per il design completo del sistema, vedi docs/ARCHITECTURE.md.
Funzionalità
- Completamente autonomo — nessun umano nel loop durante l'operazione
- Inferenza 100% locale — l'IA gira sulla GPU del telefono, nessun cloud necessario
- Scope enforced — difesa a due livelli che previene azioni fuori scope
- Stealth-first — velocità di scan lente, rotazione degli host, cover traffic, solo nmap -T2
- 27 playbook di exploit — catene di attacco multi-step che si eseguono automaticamente
- Database CVE con 24.956 voci — corrispondenza delle vulnerabilità basata sulla versione
- Dashboard web — monitoraggio in tempo reale, gestione host, controlli C2
- Modalità WiFi breach — cracking WPA2 autonomo con adattatore USB (ispirato a Pwnagotchi)
- Scoperta passiva — cattura in background di broadcast mDNS/NBNS/DHCP/ARP
- Multi-rete — dati isolati per rete, sopravvive ai cambi DHCP tramite host con chiave MAC
- Self-healing — rilevamento garbage, reset del contesto, watchdog, rilevamento blocco
- Cattura per training — registra interazioni riuscite per il futuro fine-tuning del modello
- Generazione report — report di pentest scaricabile con vulnerabilità, catene di exploit, remediation
Vedi docs/FEATURES.md per il riferimento completo delle funzionalità.
Hardware
Richiesto
- Telefono Android con Kali NetHunter (testato su OnePlus 8, Snapdragon 865)
- Accesso root tramite Magisk
- 12GB+ di RAM (il modello usa ~1,3GB, Android ~4GB, il resto per gli strumenti)
Opzionale
- Adattatore WiFi USB per la modalità WiFi breach offline (consigliato Ralink RT3572)
- Kernel personalizzato con MAC80211 per la modalità monitor (guida alla build)
- NVIDIA AGX per scaricare su un modello più grande tramite Tailscale
Prestazioni GPU
Tutta l'inferenza tramite OpenCL su GPU Adreno 650:
| Modello | Quantizzazione | Velocità Prompt | Velocità Generazione |
|---|---|---|---|
| LFM2.5-1.2B-Instruct-Heretic (produzione) | Q8_0 | 115 tok/s | 13 tok/s |
| Qwen3.5-0.8B | Q8_0 | 30,5 tok/s | 6,3 tok/s |
| Qwen3.5-4B | Q4_0 | 10,1 tok/s | 2,0 tok/s |
Nota: Android limita la GPU quando si è a batteria (rallentamento di 6x). Nightcrawler include un demone del governor GPU che forza le massime prestazioni e auto-limita a ≤15% di batteria.
Avvio Rapido
# 1. Installazione (dentro il chroot di Kali NetHunter)
bash INSTALL.sh
# 2. Attendi l'avvio di llama-server (~5 min dopo il boot)
curl -s http://127.0.0.1:8080/health # Dovrebbe restituire {"status":"ok"}
# 3. Avvia tutti i servizi
bash scripts/run-36h.sh
# 4. Apri la dashboard web (da qualsiasi dispositivo sulla tua rete Tailscale)
# https://<il-tuo-hostname-tailscale>:8888
Dry Run (nessun comando reale eseguito)
NC_DRY_RUN=1 python3 main.py
Questo usa un server Kali mock così puoi testare il loop dell'agente senza eseguire comandi di rete reali.
Avvio Manuale (se non usi il launcher tmux)
kali-server-mcp --port 5000 &
python3 scope_proxy.py --config config.yaml --port 8800 --upstream http://127.0.0.1:5000 &
bash scripts/webui-daemon.sh start
python3 main.py &