
AIRecon هو وكيل مستقل للأمن السيبراني يجمع بين نموذج لغوي كبير مستضاف ذاتيًا (Ollama) مع بيئة Kali Linux معزولة عبر Docker وواجهة TUI مبنية على Textual. وهو مصمم لأتمتة تقييمات الأمان واختبار الاختراق واستطلاع مكافآت الثغرات — دون الحاجة إلى أي مفاتيح API أو اعتماد على السحابة.
AIRecon هو وكيل اختبار اختراق مستقل يجمع بين Ollama LLM مستضاف ذاتيًا وبيئة Kali Linux معزولة عبر Docker، وتكاملًا أصليًا مع وكيل Caido، ومسار عمل منظم RECON → ANALYSIS → EXPLOIT → REPORT، وواجهة Textual TUI في الوقت الفعلي — يعمل دون اتصال بالإنترنت تمامًا، ولا يتطلب أي مفاتيح API.

النماذج التجارية القائمة على API (OpenAI GPT-4 وClaude وGemini) تصبح مكلفة للغاية في سير عمل الاستطلاع الذاتي المتكرر، الذي قد يتطلب آلاف استدعاءات LLM في الجلسة الواحدة.
صُمم AIRecon ليعمل محليًا وبشكل خاص 100%.
§FUZZ§) وfindings وscope.dataset_search بشكل مستقل قبل محاولة تنفيذ تقنيات غير مألوفة — ليرسّخ قراراته في بيانات حقيقية مفهرسة.RECON → ANALYSIS → EXPLOIT → REPORT
لكل مرحلة أهداف محددة وأدوات موصى بها ومعايير انتقال تلقائية. فرض المراحل مرن — الوكيل يُوجَّه لكنه لا يُقيَّد أبدًا. تعمل نقاط التفتيش كل 5 تكرارات (تقييم المرحلة)، و10 (تقييم ذاتي)، و15 (ضغط السياق).
لا يقوم AIRecon بضبط دقيق (fine-tuning) على LLM. "التعلم" لديه هو بيانات تتبع محلية منظمة توجه اختيار الأدوات وتتجنب تكرار المسارات الفاشلة.
الحفظ المحلي (كل شيء على القرص، دون سحابة):
~/.airecon/memory/airecon.db تخزّن الجلسات والنتائج والأنماط ومعلومات الهدف واستخدام الأدوات وأداء النماذج واستخدام المهارات واكتشافات سلاسل الهجوم.~/.airecon/learning/global_learning.json (إحصاءات أداء الأدوات، أنماط الاستراتيجيات، سجل الملاحظات، الرؤى المستخلصة).~/.airecon/memory/by_target/ عند حفظها، وتحتوي على نقاط النهاية والثغرات وطرق تجاوز WAF والبارامترات الحساسة ونقاط نهاية المصادقة.workspace/<target>/payload_memory.json عند تشغيل حفظ الجلسة.كيف يؤثر ذلك على السلوك:
يتطلب AIRecon نموذجًا يتمتع بقدرات تفكير ممتد (كتل <think>) واستدعاء أدوات موثوق. تُكتشف القدرات تلقائيًا عبر البيانات الوصفية لأمر ollama show.
⚠️ دعم استدعاء الأدوات إلزامي. يجب أن يدعم النموذج استدعاء الوظائف/الأدوات الأصلي. النماذج التي لا تمتلك هذه القدرة لن تتمكن من تنفيذ أي أدوات (http_observe، execute، إجراءات المتصفح، إلخ)، مما يجعل AIRecon غير قابل للاستخدام تمامًا.
الحد الأدنى الموصى به: 8B-9B معاملات. النماذج الأقل من 8B قابلة للاستخدام تقنيًا لكن لا يُنصح بها بشدة — فهي غالبًا ما تهذيء في مخرجات الأدوات، وتختلق CVEs، وتتجاوز قواعد النطاق، وتنتج استدعاءات أدوات غير موثوقة.
إرشادات حجم النموذج:
مشكلات معروفة: ينتج DeepSeek R1 استدعاءات وظائف غير مكتملة. النماذج الأقل من 8B تفتقر إلى دعم موثوق لاستدعاء الأدوات.
إذا لم يكن لديك GPU أو كانت سعة VRAM المحلية أقل من الحد الأدنى، يمكنك تشغيل Ollama على GPU مجاني من Google Colab T4 وربط AIRecon به عبر نفق عام.
كيف يعمل:
Google Colab GPU Your Local Machine
┌─────────────────────────┐ ┌──────────────────────────┐
│ Ollama (qwen3.5:9b) │◄────────►│ AIRecon TUI │
│ cloudflared tunnel │ HTTPS │ ollama_url: tunnel URL │
└─────────────────────────┘ └──────────────────────────┘
الخطوات:
~/.airecon/config.yaml:ollama_url: "https://xxxx.trycloudflare.com" # printed by Cell 6
ollama_model: "qwen3.5:9b"
ollama_timeout: 300.0
ollama_chunk_timeout: 300.0
ollama_num_ctx: 32768
ollama_num_ctx_small: 16384
airecon startGPU في Colab → توفر النموذج:
القيود:
qwen3.5:9b هو الحد الأدنى القابل للاستخدام — توقع استجابات أبطأ وأخطاء أكثر في استدعاء الأدوات مقارنة بنموذج محلي بحجم 35B+scripts/airecon_colab.ipynb إذا أردت استضافته ذاتيًا أو تعديلهالمتطلبات الأساسية: Python 3.12+، Docker 20.10+، Ollama (قيد التشغيل)، git، curl
curl -fsSL https://raw.githubusercontent.com/pikpikcu/airecon/refs/heads/main/scripts/install.sh | bash
يكتشف السيناريو تلقائيًا ما إذا كان الوضع عن بُعد أم محليًا، ويثبّت Poetry إذا كان مفقودًا (عبر المثبّت الرسمي — دون تعارض مع حزم النظام)، ويبني حزمة wheel، ويثبّتها في ~/.local/bin.
git clone https://github.com/pikpikcu/airecon.git
cd airecon
./install.sh
# Add to ~/.bashrc or ~/.zshrc if needed
export PATH="$HOME/.local/bin:$PATH"
airecon --version
ملف الإعدادات: ~/.airecon/config.yaml (يُولَّد تلقائيًا عند أول تشغيل). سينشئ AIRecon مجلد ~/.airecon/ إذا لم يكن موجودًا، بما في ذلك عند استخدام مسار ~ مخصص.
# ======================================
# Ollama Connection
# ======================================
# Ollama API endpoint. REQUIRED — must be set. For local: http://127.0.0.1:11434. For remote: http://IP:11434
ollama_url: "http://127.0.0.1:11434"
# Model to use. 122B for best reasoning (requires 60GB+ VRAM). For 12GB VRAM: use qwen2.5:7b or smaller. For 8GB VRAM: use qwen2.5:1.8b.
ollama_model: "qwen3.5:122b"
# Total request timeout (seconds). 180s = 3 min. Stable for most models. Increase to 300s for slow remote servers or 122B models.
ollama_timeout: 180.0
# ======================================
# Ollama Model Settings
# ======================================
# Context window size. 65536 = 64K (stable for 12GB VRAM with 8B models). 131072 = 128K requires 30GB+ VRAM. Set -1 for server default.
ollama_num_ctx: 65536
# Context for CTF/summary mode. 32768 = 32K (stable for 12GB VRAM). Reduced from 64K for stability with 8B+ models.
ollama_num_ctx_small: 32768
# LLM output randomness. 0.0=deterministic, 0.15=recommended (strict), 0.3=creative. Does NOT affect thinking mode — controls output diversity only.
ollama_temperature: 0.15
# Max tokens to generate. 16384 = 16K (stable for 12GB VRAM). 32K requires more VRAM.
ollama_num_predict: 16384
# Enable extended thinking mode (for Qwen3.5+/Qwen2.5+). When enabled, model generates <think> reasoning blocks before answering.
ollama_enable_thinking: true
# Thinking intensity: low|medium|high|adaptive. For 12GB VRAM: use 'low' or 'medium'. 'high' may cause OOM with 8B models. Low=only deep tools, Medium=ANALYSIS+deep tools, High=most iterations (high VRAM only).
ollama_thinking_mode: low
# Protect first N tokens from KV eviction. 4096 = 4K (reduced for 12GB VRAM stability). 8K for larger VRAM.
ollama_num_keep: 4096
# ======================================
# Proxy Server
# ======================================
# Host to bind proxy server. 127.0.0.1 = localhost only.
proxy_host: 127.0.0.1
# Port for proxy server. Default 3000.
proxy_port: 3000
# ======================================
# Timeouts
# ======================================
# Docker command timeout (seconds). 900s = 15 min for long scans (nmap, nuclei).
command_timeout: 900.0
# ======================================
# Docker Sandbox
# ======================================
# Container memory limit. '16g' = 16GB (stable for 32GB+ RAM host, 18GB image + Chromium). Prevents OOM kills. Set to '12g' for 32GB RAM, '8g' for 16GB systems, '4g' for 8GB systems.
docker_memory_limit: 16g
# ======================================
# Deep Recon
# ======================================
# Auto-start deep recon on session start.
deep_recon_autostart: true
# Recon execution mode: standard|full. standard=respect user scope, full=auto-expand simple target prompts into comprehensive recon.
agent_recon_mode: standard
# ======================================
# Safety
# ======================================
# Allow destructive tests (e.g., DELETE requests). Default: False for safety.
allow_destructive_testing: false
Ollama عن بُعد (خادم LAN أو نفق Google Colab):
ollama_url: "http://192.168.1.100:11434" # LAN server
ollama_model: "qwen3.5:35b"
# or via Colab tunnel (see "Running Ollama on Google Colab" section above):
ollama_url: "https://xxxx.trycloudflare.com"
ollama_model: "qwen3.5:9b"
ollama_timeout: 300.0
ollama_chunk_timeout: 300.0
يمكن لـ AIRecon الاتصال بخوادم MCP الخارجية وعرض أدواتها ديناميكيًا كأدوات mcp_<server>.
ملف الإعدادات: ~/.airecon/mcp.json
مثال على الإعدادات:
{
"mcpServers": {
"hexstrike": {
"command": "python3",
"args": [
"/path/hexstrike-ai/hexstrike_mcp.py",
"--server",
"http://127.0.0.1:8888"
],
"env": {
"PYTHONUNBUFFERED": "1"
},
"enabled": true
},
"xssgen": {
"command": "python3",
"args": [
"/path/xssgen/xss_client.py",
"--server",
"http://127.0.0.1:8000"
],
"env": {
"PYTHONUNBUFFERED": "1"
},
"enabled": true
},
"recon": {
"transport": "sse",
"url": "https://example.com/mcp",
"enabled": true,
"headers": {
"Authorization": "Bearer xxxxx"
}
}
}
}
استخدام أدوات MCP في المحادثة:
mcp_<server>list_tools، search_tools، call_toolمثال:
{"name": "mcp_acme", "arguments": {"action": "list_tools"}}
airecon-dataset هو ملحق اختياري ينزّل مجموعات البيانات الأمنية من HuggingFace ويفهرسها محليًا في قواعد SQLite FTS5. بمجرد تثبيته، يستعلم منه LLM بشكل مستقل عبر أداة dataset_search.
كيف يعمل: dataset_search هي أداة وكيل قياسية في tools.json. يقرر LLM متى يستدعيها — لا يقوم AIRecon بتشغيلها تلقائيًا. يوجّه برومبت النظام الوكيل إلى الاستعلام من قاعدة المعرفة قبل محاولة تنفيذ تقنيات غير مألوفة.
git clone https://github.com/pikpikcu/airecon-dataset.git
cd airecon-dataset && python install.py
مجموعات البيانات المضمنة (~1.09M سجل إجمالًا، 100% دون اتصال):
أمثلة على استعلامات الوكيل (يستدعيها LLM بشكل مستقل):
dataset_search: {"query": "log4j RCE exploitation chain"}
dataset_search: {"query": "SSRF bypass cloud metadata", "category": "bug-bounty"}
dataset_search: {"query": "nuclei template XSS detection"}
dataset_search: {"query": "CVE 2021 44228", "category": "vulnerability"}
تُحد النتائج بـ 500 حرف لكل نتيجة. تُعقَّم الأحرف الخاصة في معرّفات CVE (الشرطات والأقواس) تلقائيًا.
airecon start # start TUI
airecon start --session <session_id> # resume session
أمثلة على البرومبتات:
# Full pipeline
full recon on example.com
pentest https://api.example.com
# Specific tasks
find subdomains of example.com
scan ports on 10.0.0.1
check for XSS on https://example.com/search
test SQL injection on https://example.com/api/login parameter: username
run schemathesis on https://example.com/openapi.json
# Authenticated testing
login to https://example.com/login with [email protected] / password123 then test for IDOR
test https://app.example.com with TOTP: JBSWY3DPEHPK3PXP
# Multi-agent
spawn an XSS specialist on https://example.com/search
run parallel recon on: example.com, sub.example.com, api.example.com
# Caido
replay request #1234 with a modified Authorization header
use Caido to fuzz the username parameter in request #45 with §FUZZ§ markers
workspace/<target>/
├── command/ # system-managed logs
├── output/ # Raw tool outputs (nmap, httpx, nuclei, subfinder, ...)
├── tools/ # AI-generated exploit scripts (.py, .sh)
└── vulnerabilities/ # Verified vulnerability reports (.md)
تُحفظ الجلسات في ~/.airecon/sessions/<session_id>.json — النطاقات الفرعية والمنافذ والتقنيات وعناوين URL والثغرات (مع إزالة التكرار Jaccard) ورموز المصادقة والمراحل المكتملة.
نفاد ذاكرة Ollama (OOM) / صفحة خطأ HTML — الأكثر شيوعًا في الجلسات الطويلة أو النماذج الكبيرة القريبة من حدود VRAM.
sudo systemctl restart ollama
{ "ollama_num_ctx": 32768, "ollama_num_ctx_small": 16384, "ollama_num_predict": 8192 }
تكرار/توقف الوكيل — عادةً ما يعود سببه إلى فشل في الاستدلال. جرّب نموذجًا أكبر، أو اخفض ollama_temperature إلى < 0.2.
بيئة Docker المعزولة لا تبدأ:
docker build -t airecon-sandbox airecon/containers/kali/
رفض اتصال Caido — يجب أن يكون Caido قيد التشغيل قبل تشغيل AIRecon. الافتراضي: 127.0.0.1:48080.
PATH غير موجود بعد التثبيت:
export PATH="$HOME/.local/bin:$PATH" && source ~/.zshrc
نرحب بالإبلاغ عن المشكلات (Issues) وطلبات السحب (PRs). إذا أبلغت عن خطأ، فشمل السجلات والإعدادات وأقل عدد من خطوات إعادة الإنتاج.
AIRecon مخصص لاختبارات الأمان المصرح بها فقط. احصل دائمًا على إذن صريح والتزم بالقوانين المعمول بها ونطاق البرنامج.
انظر LICENSE.
| الميزة | AIRecon | الوكلاء السحابيون |
|---|
| يتطلب مفاتيح API | لا | نعم |
| إرسال بيانات الهدف إلى السحابة | لا | نعم |
| يعمل دون اتصال | نعم | لا |
| تكامل Caido | أصلي | لا يوجد |
| استئناف الجلسة | نعم | يختلف |
| قاعدة المعرفة المحلية | ~1.09M سجل | لا يوجد |
| النموذج | أمر السحب | VRAM | ملاحظات |
|---|
| Qwen3.5 122B | ollama pull qwen3.5:122b | 48+ GB | أفضل جودة، الأكثر موثوقية |
| Qwen3.5 35B | ollama pull qwen3.5:35b | 20 GB | موصى به لمعظم المستخدمين |
| Qwen3.5 35b | ollama pull qwen3.5:35b-a3b | 16 GB | MoE — VRAM أقل |
| Qwen3.5 9B | ollama pull qwen3.5:9b | 6 GB | الحد الأدنى القابل للاستخدام — توقع أخطاء متكررة |
| GPU في Colab | VRAM | النموذج المتاح | الخطة |
|---|
| T4 | 15 GB | qwen3.5:9b | Free |
| L4 | 22 GB | qwen3.5:35b-a3b (MoE) | Pro |
| A100 | 40 GB | qwen3.5:35b | Pro+ |
| H100 | 80 GB | qwen3.5:122b | Pro+ |
| المفتاح | القيمة الافتراضية | ملاحظات |
|---|
ollama_temperature | 0.15 | أبقِها بين 0.1–0.2. القيم الأعلى تسبب الهذيان. |
ollama_num_ctx | 131072 | خفّضها إلى 32768 إذا كانت VRAM محدودة. |
ollama_keep_alive | "60m" | المدة المطلوب إبقاء النموذج فيها داخل VRAM. |
deep_recon_autostart | true | مدخلات النطاق المجردة تتوسع تلقائيًا إلى استطلاع كامل. |
allow_destructive_testing | false | يفتح الأوضاع العدوانية (تأكيد SQLi، سلاسل RCE). |
command_timeout | 900.0 | الحد الأقصى بالثواني لكل أمر shell داخل Docker. |
vuln_similarity_threshold | 0.7 | عتبة إزالة التكرار Jaccard للثغرات. |
| مجموعة البيانات | السجلات | المحتوى |
|---|
| Pentest Agent (ChatML) | 322,433 | سير عمل استغلال قائم على CVE (MITRE/NVD/ExploitDB) |
| CTF SaTML 2024 | 190,657 | بيانات تفاعلات CTF هجوم/دفاع حقيقية |
| CTF Instruct | 141,182 | Pwn وويب وتشفير وطب شرعي وهندسة عكسية |
| Cybersecurity CVE | 124,732 | تحليل CVE وCVSS وسياق الاستغلال |
| SQL Injection Q&A | 50,632 | SQLi محادثي — اكتشاف وتجاوز واستغلال |
| Cybersecurity Fenrir | 83,918 | أزواج تعليمات هجوم/دفاع |
| Red Team Offensive | 78,430 | حركة جانبية وتصعيد صلاحيات وتهرب |
| Cybersecurity Q&A | 53,199 | معرفة أمنية واسعة |
| StackExchange RE | 20,641 | تحليل ثنائي وفك تجميع وتنقيح وبرمجيات خبيثة |
| Nuclei Templates | 23,180 | توليد قوالب YAML الخاصة بـ Nuclei |
| NVD Security Instructions | 2,063 | تحليل CVE منظم مع الخطورة والمعالجة |
| APT Privilege Escalation | 1,000 | تقنيات تصعيد صلاحيات Linux مع تكتيكات APT |
| Bug Bounty & Pentest | 146 | حمولات وطرق تجاوز وقوالب تقارير |