العودة إلى التحديثات
UpdatedAug 31, 2026

nightcrawler — Updated!

هاتف يعمل كأداة اختبار اختراق للفريق الأحمر مدعومة بالذكاء الاصطناعي المحلي

مشاركة

Nightcrawler

وكيل اختبار اختراق ذاتي يعمل بالكامل على الهاتف الذكي. ضع الهاتف على الشبكة، وابتعد، وسيكتشف المضيفين، ويرسم خريطة الخدمات، ويجد الثغرات، وينشئ تقرير اختبار اختراق — كل ذلك دون اتصال سحابي.

 ░█▄░█ █ █▀▀ █░█ ▀█▀ █▀▀ █▀█ ▄▀█ █░█░█ █░░ █▀▀ █▀█
 ░█░▀█ █ █▄█ █▀█ ░█░ █▄▄ █▀▄ █▀█ ▀▄▀▄▀ █▄▄ ██▄ █▀▄  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

كيف يعمل

  1. اختراق WiFi (اختياري) — إذا تم وضعه دون WiFi، يمكنه اختراق شبكات WPA2 بشكل ذاتي باستخدام محول WiFi USB خارجي
  2. الاستطلاع — يكتشف الأجهزة على الشبكة باستخدام عمليات فحص خفية
  3. التعداد — يفحص الخدمات المكتشفة (خوادم الويب، مشاركات الملفات، SSH، DNS، إلخ.)
  4. الاستغلال — يختبر الثغرات المعروفة وبيانات الاعتماد الافتراضية
  5. إعداد التقارير — ينشئ تقرير اختبار اختراق منظمًا مع النتائج ونصائح المعالجة

يعمل الوكيل مثل مختبر اختراق بشري صبور — يتنقل بين المضيفين، وينفذ إجراءً صغيرًا واحدًا لكل دورة، ويبني المعرفة تدريجيًا على مدى ساعات. هذا يجعله أصعب بكثير في الاكتشاف من ماسحات الثغرات التقليدية التي تقصف كل مضيف دفعة واحدة.

المفاهيم الأساسية

المصطلحما يعنيه
صندوق الإسقاطجهاز يُترك على شبكة مستهدفة لإجراء الاختبار بشكل ذاتي
النطاقمجموعة الشبكات/المضيفين المصرح لك باختبارها
قواعد الاشتباك (ROE)مستند قانوني يحدد ما يُسمح لك بفعله
الخفاءتقنيات لتجنب الاكتشاف بواسطة مراقبة الشبكة (IDS/IPS)
MCPبروتوكول سياق النموذج — واجهة قياسية لاستخدام أدوات الذكاء الاصطناعي
C2القيادة والتحكم — لوحة الويب لمراقبة الوكيل وتوجيهه

البنية

┌──────────────────────────────────────────────────────────┐
│                   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.

الميزات

  • ذاتي بالكامل — لا يوجد إنسان في الحلقة أثناء التشغيل
  • استدلال محلي 100% — يعمل الذكاء الاصطناعي على وحدة معالجة الرسومات في الهاتف، لا حاجة للسحابة
  • فرض النطاق — دفاع من طبقتين يمنع الإجراءات خارج النطاق
  • الخفاء أولاً — معدلات فحص بطيئة، وتناوب المضيفين، وحركة مرور تغطية، وnmap -T2 فقط
  • 27 سيناريو استغلال — سلاسل هجوم متعددة الخطوات تُنفذ تلقائيًا
  • قاعدة بيانات CVE بـ 24,956 إدخالاً — مطابقة ثغرات واعية بالإصدار
  • لوحة ويب — مراقبة في الوقت الفعلي، وإدارة المضيفين، وعناصر تحكم C2
  • وضع اختراق WiFi — اختراق WPA2 ذاتي باستخدام محول USB (مستوحى من Pwnagotchi)
  • الاكتشاف السلبي — التقاط خلفي لبثوث mDNS/NBNS/DHCP/ARP
  • شبكات متعددة — بيانات معزولة لكل شبكة، وتتحمل تغييرات DHCP عبر مضيفات مفاتيح MAC
  • الشفاء الذاتي — اكتشاف القمامة، وإعادة تعيين السياق، وحراس المراقبة، واكتشاف التعليق
  • التقاط التدريب — يسجل التفاعلات الناجحة لضبط النموذج مستقبلاً
  • توليد التقارير — تقرير اختبار اختراق قابل للتنزيل مع الثغرات وسلاسل الاستغلال والمعالجة

راجع docs/FEATURES.md للمرجع الكامل للميزات.

الأجهزة

المطلوبة

  • هاتف Android مع Kali NetHunter (تم اختباره على OnePlus 8، Snapdragon 865)
  • وصول الجذر عبر Magisk
  • ذاكرة وصول عشوائي 12GB+ (يستخدم النموذج ~1.3GB، ويستخدم Android ~4GB، والباقي للأدوات)

الاختيارية

  • محول WiFi USB لوضع اختراق WiFi دون اتصال (يوصى بـ Ralink RT3572)
  • نواة مخصصة مع MAC80211 لوضع المراقبة (دليل البناء)
  • NVIDIA AGX لتفريغ نموذج أكبر عبر Tailscale

أداء وحدة معالجة الرسومات

جميع الاستدلالات عبر OpenCL على وحدة معالجة الرسومات Adreno 650:

النموذجالتكميمسرعة المطالبةسرعة التوليد
LFM2.5-1.2B-Instruct-Heretic (الإنتاج)Q8_0115 tok/s13 tok/s
Qwen3.5-0.8BQ8_030.5 tok/s6.3 tok/s
Qwen3.5-4BQ4_010.1 tok/s2.0 tok/s

ملاحظة: يخنق 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 وهميًا حتى تتمكن من اختبار حلقة الوكيل دون تنفيذ أوامر شبكة حقيقية.

البدء اليدوي (إذا لم تستخدم مشغل 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 &

التكوين

عدّل 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)

كيف يفكر الوكيل

يستخدم الوكيل حلقة بسيطة لكنها فعالة:

  1. اختر هدفًا — اختيار عشوائي مرجح (70% مضيفات بمنافذ معروفة، 30% اكتشاف جديد)
  2. بناء السياق — حقن ذاكرة المضيف، وملاحظات الشبكة، وإرشادات المرحلة في المطالبة
  3. اسأل LLM — ينتج النموذج REASONING: ... COMMAND: ...
  4. التحقق — يتحقق وكيل النطاق من أن الأمر داخل النطاق وغير مدمر
  5. التنفيذ — يتم تشغيل الأمر عبر خادم Kali MCP
  6. التعلم — يستخرج محلل المخرجات النتائج ويحدّث ذاكرة المضيف
  7. إعادة تعيين السياق — مسح المحادثة، والاحتفاظ بالذاكرة الدائمة، والتكرار

يتمتع نموذج 1.2B بمعدل نجاح أوامر ~50% (متأصل في حجمه). يعوض الوكيل عن ذلك بـ:

  • اكتشاف القمامة — إعادة تعيين 5 محاولات متتالية مع أمثلة قليلة متنوعة
  • اكتشاف التكرار — يفرض تنويع الأدوات/الأهداف
  • اكتشاف التعليق الزمني — حاجز أمان 5 دقائق يفرض إعادة تعيين السياق
  • تنفيذ السيناريو المباشر — الهجمات متعددة الخطوات تتجاوز LLM تمامًا

لوحة الويب

توفر لوحة التحكم على :8888 مراقبة وتحكمًا في الوقت الفعلي:

  • البث المباشر — كل أمر ونتيجة وقرار للوكيل
  • بطاقات المضيفين — بطاقات قابلة للنقر تعرض المنافذ والخدمات والثغرات
  • خريطة الشبكة — رسم بياني تفاعلي بالقوة الموجهة (سحب، تكبير، تحريك)
  • تفاصيل الثغرات — علامات CVE وسلاسل الاستغلال وخطوات المعالجة
  • عناصر تحكم C2 — تمييز/حظر المضيفين، وفرض المرحلة، وإيقاف مؤقت/استئناف، وحقن الأوامر
  • وضع عدم الاتصال — واجهة هجوم WiFi مستوحاة من Pwnagotchi بوجه متحرك

لوحة التحكم مفلترة للخفاء: تزيف رؤوس nginx وتعيد 404 فارغة للاتصالات من الشبكة المستهدفة.

النتائج المختبرة

من أكثر من 72 ساعة من التشغيل الذاتي عبر شبكات متعددة:

  • أكثر من 30 مضيفًا مكتشفًا لكل شبكة
  • أكثر من 2,000 أمر منفذ بشكل ذاتي
  • أكثر من 10 ثغرات تم العثور عليها عبر خدمات متعددة
  • أكثر من 6 سيناريوهات منفذة عبر التنفيذ المباشر
  • ذاكرة الوكيل مستقرة عند 35-50MB طوال الوقت (بدون تسريبات)

المساهمة

المساهمات مرحب بها! راجع CONTRIBUTING.md للإرشادات.

المجالات التي تحتاج مساعدة

  • ضبط النموذج — تحسين الامتثال لتنسيق الأوامر من ~50% إلى 85%+
  • سيناريوهات جديدة — إضافة سلاسل استغلال لمزيد من الخدمات
  • قاعدة بيانات CVE — توسيع التغطية إلى ما بعد الإدخالات الـ 24,956 الحالية
  • دعم المحولات — الاختبار مع المزيد من شرائح WiFi USB
  • التوثيق — دروس تعليمية وأدلة إعداد لهواتف مختلفة
  • الاختبار — تغطية اختبار أكثر، خاصة لحالات الحافة

إعداد التطوير

# 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 للتفاصيل.

الدعم

إذا أعجبك هذا المشروع، يمكنك شراء قهوة لي ☕:

Buy Me A Coffee

buymeacoffee.com/cyrilengmann

الفئات