
هاتف يعمل كأداة اختبار اختراق للفريق الأحمر مدعومة بالذكاء الاصطناعي المحلي
وكيل اختبار اختراق ذاتي يعمل بالكامل على الهاتف الذكي. ضع الهاتف على الشبكة، وابتعد، وسيكتشف المضيفين، ويرسم خريطة الخدمات، ويجد الثغرات، وينشئ تقرير اختبار اختراق — كل ذلك دون اتصال سحابي.
░█▄░█ █ █▀▀ █░█ ▀█▀ █▀▀ █▀█ ▄▀█ █░█░█ █░░ █▀▀ █▀█
░█░▀█ █ █▄█ █▀█ ░█░ █▄▄ █▀▄ █▀█ ▀▄▀▄▀ █▄▄ ██▄ █▀▄ v0.1.0
AUTONOMOUS MOBILE PENTEST AGENT
OnePlus 8 · NetHunter · LFM2.5-1.2B · OpenCL GPU
اختبار الاختراق هو ممارسة اختبار أمان شبكة الكمبيوتر من خلال محاكاة هجوم — بإذن صريح من مالك الشبكة. يتم توظيف مختبرين اختراق محترفين للعثور على الثغرات قبل أن يفعل المهاجمون الحقيقيون ذلك.
يقوم Nightcrawler بأتمتة هذه العملية على الهاتف. يستخدم نموذج ذكاء اصطناعي صغير (LFM2.5-1.2B-Instruct-Heretic، 1.2 مليار معامل) يعمل محليًا على وحدة معالجة الرسومات في الهاتف ليقرر ما يجب فعله بعد ذلك — أي مضيف يفحص، وأي أداة يستخدم، وما الذي يبحث عنه. لا حاجة لاتصال بالإنترنت أو واجهة برمجة تطبيقات سحابية.
▶️ شاهد Nightcrawler أثناء العمل على 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 للمرجع الكامل للميزات.
جميع الاستدلالات عبر OpenCL على وحدة معالجة الرسومات Adreno 650:
ملاحظة: يخنق Android وحدة معالجة الرسومات عند العمل بالبطارية (تباطؤ 6x). يتضمن Nightcrawler برنامجًا خفيًا لمنظم وحدة معالجة الرسومات يفرض الأداء الأقصى ويخنق تلقائيًا عند ≤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 للإرشادات.
# Clone the repo
git clone https://github.com/garagehq/nightcrawler.git
cd nightcrawler
# Dry-run mode (no real commands, no hardware needed)
NC_DRY_RUN=1 python3 main.py
# Run tests
python3 -m pytest tests/
هذه الأداة مخصصة لاختبار الاختراق المصرح به فقط. يجب أن يكون لديك إذن كتابي (قواعد الاشتباك) من مالك الشبكة قبل نشر Nightcrawler. الاستخدام غير المصرح به ضد شبكات لا تملكها أو ليس لديك إذن باختبارها غير قانوني.
MIT — راجع LICENSE للتفاصيل.
إذا أعجبك هذا المشروع، يمكنك شراء قهوة لي ☕:
| المصطلح | ما يعنيه |
|---|
| صندوق الإسقاط | جهاز يُترك على شبكة مستهدفة لإجراء الاختبار بشكل ذاتي |
| النطاق | مجموعة الشبكات/المضيفين المصرح لك باختبارها |
| قواعد الاشتباك (ROE) | مستند قانوني يحدد ما يُسمح لك بفعله |
| الخفاء | تقنيات لتجنب الاكتشاف بواسطة مراقبة الشبكة (IDS/IPS) |
| MCP | بروتوكول سياق النموذج — واجهة قياسية لاستخدام أدوات الذكاء الاصطناعي |
| C2 | القيادة والتحكم — لوحة الويب لمراقبة الوكيل وتوجيهه |
| النموذج | التكميم | سرعة المطالبة | سرعة التوليد |
|---|
| 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 |