
फोन पर स्थानीय AI-संचालित रेड टीमर
एक स्वायत्त पैठ परीक्षण एजेंट जो पूरी तरह से स्मार्टफोन पर चलता है। फोन को नेटवर्क पर छोड़ दें, चले जाएं, और यह होस्ट खोजता है, सेवाओं का मानचित्रण करता है, कमजोरियां ढूंढता है, और एक पेंटेस्ट रिपोर्ट तैयार करता है — बिना किसी क्लाउड कनेक्टिविटी के।
░█▄░█ █ █▀▀ █░█ ▀█▀ █▀▀ █▀█ ▄▀█ █░█░█ █░░ █▀▀ █▀█
░█░▀█ █ █▄█ █▀█ ░█░ █▄▄ █▀▄ █▀█ ▀▄▀▄▀ █▄▄ ██▄ █▀▄ v0.1.0
AUTONOMOUS MOBILE PENTEST AGENT
OnePlus 8 · NetHunter · LFM2.5-1.2B · OpenCL GPU
पैठ परीक्षण (पेंटेस्टिंग) किसी कंप्यूटर नेटवर्क की सुरक्षा का परीक्षण करने की प्रथा है, जिसमें एक हमले का अनुकरण किया जाता है — नेटवर्क मालिक की स्पष्ट अनुमति के साथ। पेशेवर पेंटेस्टर्स को वास्तविक हमलावरों से पहले कमजोरियां खोजने के लिए काम पर रखा जाता है।
नाइटक्रॉलर इस प्रक्रिया को फोन पर स्वचालित करता है। यह फोन के GPU पर स्थानीय रूप से चलने वाले एक छोटे AI मॉडल (LFM2.5-1.2B-Instruct-Heretic, 1.2 बिलियन पैरामीटर) का उपयोग करके निर्णय लेता है कि आगे क्या करना है — किस होस्ट की जांच करनी है, कौन सा टूल उपयोग करना है, क्या खोजना है। कोई इंटरनेट कनेक्शन या क्लाउड API आवश्यक नहीं है।
▶️ Instagram पर नाइटक्रॉलर को क्रियाशील देखें
एजेंट एक धैर्यवान मानव पेंटेस्टर की तरह काम करता है — यह होस्ट के बीच घूमता है, प्रति टर्न एक छोटी क्रिया करता है, और घंटों में धीरे-धीरे ज्ञान का निर्माण करता है। यह पारंपरिक कमजोरी स्कैनरों की तुलना में इसे पहचानना बहुत कठिन बनाता है जो एक साथ हर होस्ट पर हमला करते हैं।
┌──────────────────────────────────────────────────────────┐
│ 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 │ │
│ └──────────────────┘ └──────────────────┘ │
└──────────────────────────────────────────────────────────┘
पूर्ण सिस्टम डिज़ाइन के लिए, docs/ARCHITECTURE.md देखें।
पूर्ण फीचर संदर्भ के लिए docs/FEATURES.md देखें।
Adreno 650 GPU पर OpenCL के माध्यम से सभी इन्फ्रेंस:
नोट: Android बैटरी पावर पर GPU को थ्रॉटल करता है (6x धीमा)। नाइटक्रॉलर में एक GPU गवर्नर डेमॉन शामिल है जो अधिकतम प्रदर्शन को बल देता है और ≤15% बैटरी पर स्वचालित रूप से थ्रॉटल करता है।
# 1. इंस्टॉल करें (Kali NetHunter chroot के अंदर)
bash INSTALL.sh
# 2. llama-server शुरू होने की प्रतीक्षा करें (बूट के बाद ~5 मिनट)
curl -s http://127.0.0.1:8080/health # Should return {"status":"ok"}
# 3. सभी सेवाएं शुरू करें
bash scripts/run-36h.sh
# 4. वेब डैशबोर्ड खोलें (आपके Tailscale नेटवर्क पर किसी भी डिवाइस से)
# https://<your-tailscale-hostname>:8888
NC_DRY_RUN=1 python3 main.py
यह एक मॉक Kali सर्वर का उपयोग करता है ताकि आप वास्तविक नेटवर्क कमांड निष्पादित किए बिना एजेंट लूप का परीक्षण कर सकें।
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 &
तैनाती से पहले config.yaml संपादित करें:
mission:
id: "CLIENT-YYYY-XXX" # Your engagement ID
scope:
networks: ["auto"] # "auto" = detect from wlan0 at startup
excluded_hosts: ["auto"] # "auto" = gateway + self IP
excluded_ports: [502, 503] # SCADA/ICS ports to never touch
authorization: "ROE-YYYY-XXX.pdf"
max_runtime_hours: 0 # 0 = no limit
model:
local:
ctx_size: 8192
port: 8080
डायनामिक स्कोप पहचान का अर्थ है नेटवर्क के बीच जाने पर शून्य कॉन्फ़िगरेशन परिवर्तन — एजेंट स्टार्टअप पर wlan0 से वर्तमान सबनेट पढ़ता है।
nightcrawler/
├── main.py # Entry point
├── config.yaml # Mission scope + model config
├── scope_proxy.py # Scope enforcement proxy
├── INSTALL.sh # Installer
│
├── agent/ # Core agent logic
│ ├── loop.py # Decision loop + error recovery
│ ├── planner.py # Phase state machine (recon → exploit)
│ ├── llm_client.py # LLM API client (llama.cpp / remote)
│ ├── db.py # SQLite backend (hosts, vulns, creds)
│ ├── host_memory.py # Per-host observations + auto-tagging
│ ├── cve_db.py # 24,956-entry CVE database
│ ├── attack_planner.py # Strategic directives for exploit phase
│ ├── output_parser.py # Extract structured data from tool output
│ ├── offline_manager.py # WiFi breach pipeline state machine
│ ├── net_detect.py # Auto-detect network from wlan0
│ ├── cover_traffic.py # Stealth blending with realistic web traffic
│ ├── passive_capture.py # Background tcpdump for broadcast traffic
│ └── ...
│
├── proxy/ # Scope enforcement components
│ ├── scope.py # IP/port/host validation
│ ├── rate_limiter.py # Command rate limiting + jitter
│ └── command_filter.py # Destructive command blocklist
│
├── webui/ # Web dashboard (Flask)
│ ├── server.py # API + stealth middleware
│ └── templates/index.html # Dashboard UI
│
├── data/ # Static data files
│ ├── cve_exploits.json # CVE→exploit command mappings
│ └── playbooks.json # 27 multi-step attack playbooks
│
├── prompts/ # LLM prompt templates (hot-reloadable)
├── scripts/ # Operational scripts (start, stop, watchdogs)
├── tests/ # Test suites (API, UI, offline mode)
├── kernels/ # WiFi driver modules + kernel docs
├── simulation/ # Dry-run mock server
├── docs/ # Architecture, GPU setup, features
├── logs/ # Runtime data (gitignored)
└── models/ # Model files (gitignored)
एजेंट एक सरल लेकिन प्रभावी लूप का उपयोग करता है:
REASONING: ... COMMAND: ... उत्पन्न करता है1.2B मॉडल की ~50% कमांड सफलता दर है (इसके आकार में निहित)। एजेंट इसकी भरपाई करता है:
:8888 पर डैशबोर्ड वास्तविक समय निगरानी और नियंत्रण प्रदान करता है:
डैशबोर्ड स्टील्थ-फ़िल्टर्ड है: यह nginx हेडर स्पूफ करता है और लक्ष्य नेटवर्क से कनेक्शनों को खाली 404 लौटाता है।
कई नेटवर्कों पर 72+ घंटे के स्वायत्त संचालन से:
योगदान का स्वागत है! दिशानिर्देशों के लिए CONTRIBUTING.md देखें।
# रेपो क्लोन करें
git clone https://github.com/garagehq/nightcrawler.git
cd nightcrawler
# ड्राई-रन मोड (कोई वास्तविक कमांड नहीं, कोई हार्डवेयर आवश्यक नहीं)
NC_DRY_RUN=1 python3 main.py
# परीक्षण चलाएं
python3 -m pytest tests/
यह टूल केवल अधिकृत पैठ परीक्षण के लिए है। नाइटक्रॉलर को तैनात करने से पहले आपके पास नेटवर्क मालिक से लिखित अनुमति (Rules of Engagement) होनी चाहिए। उन नेटवर्कों के खिलाफ अनधिकृत उपयोग जिनके आप मालिक नहीं हैं या परीक्षण करने की अनुमति नहीं है, अवैध है।
MIT — विवरण के लिए LICENSE देखें।
यदि आपको यह प्रोजेक्ट पसंद है, तो आप मुझे एक कॉफी खरीद सकते हैं ☕:
| शब्द | इसका अर्थ |
|---|
| ड्रॉप बॉक्स | लक्ष्य नेटवर्क पर स्वायत्त परीक्षण करने के लिए छोड़ा गया एक डिवाइस |
| स्कोप | नेटवर्क/होस्ट का सेट जिसे आप परीक्षण करने के लिए अधिकृत हैं |
| Rules of Engagement (ROE) | एक कानूनी दस्तावेज़ जो निर्दिष्ट करता है कि आपको क्या करने की अनुमति है |
| स्टील्थ | नेटवर्क मॉनिटरिंग (IDS/IPS) द्वारा पहचान से बचने की तकनीकें |
| MCP | Model Context Protocol — AI टूल उपयोग के लिए एक मानक इंटरफ़ेस |
| C2 | Command and Control — एजेंट की निगरानी और मार्गदर्शन के लिए वेब डैशबोर्ड |
| मॉडल | क्वांटाइज़ेशन | प्रॉम्प्ट गति | जनरेशन गति |
|---|
| LFM2.5-1.2B-Instruct-Heretic (प्रोडक्शन) | 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 |