
إطار عمل وكيل ذكاء اصطناعي لاختبار الأمان في الصندوق الأسود، مع تنسيق متعدد الوكلاء ذاتي التشغيل، وأدوات اختبار اختراق مدمجة، وتكامل MCP لسير عمل مكافآت الثغرات، والفريق الأحمر، واختبار الاختراق.
https://github.com/user-attachments/assets/a67db2b5-672a-43df-b709-149c8eaee975
# Clone
git clone https://github.com/GH05TCREW/pentestagent.git
cd pentestagent
# Setup (creates venv, installs deps)
.\scripts\setup.ps1 # Windows
./scripts/setup.sh # Linux/macOS
# Or manual
python -m venv venv
.\venv\Scripts\Activate.ps1 # Windows
source venv/bin/activate # Linux/macOS
pip install -e ".[all]"
playwright install chromium # Required for browser tool
أنشئ ملف .env في جذر المشروع:
ANTHROPIC_API_KEY=sk-ant-...
PENTESTAGENT_MODEL=claude-sonnet-4-20250514
أو لـ OpenAI:
OPENAI_API_KEY=sk-...
PENTESTAGENT_MODEL=gpt-5
أي نموذج مدعوم من LiteLLM يعمل.
وجّه PentestAgent إلى أي نقطة نهاية متوافقة مع OpenAI عبر OPENAI_API_BASE:
OPENAI_API_KEY=your-relay-token
OPENAI_API_BASE=https://relay.example/v1
PENTESTAGENT_MODEL=openai/<model-name-on-your-relay>
بالنسبة لنقاط النهاية المتوافقة مع Anthropic استخدم ANTHROPIC_API_BASE بدلاً من ذلك.
راجع .env.example للحصول على ملاحظات المزوّدين الكاملة وخيارات التضمين.
pentestagent # Launch TUI
pentestagent -t 192.168.1.1 # Launch with target
pentestagent tui --docker # Run tools in Docker container
شغّل الأدوات داخل حاوية Docker للعزل وللحصول على أدوات اختبار اختراق مثبّتة مسبقًا.
# Base image with nmap, netcat, curl
docker run -it --rm \
-e ANTHROPIC_API_KEY=your-key \
-e PENTESTAGENT_MODEL=claude-sonnet-4-20250514 \
ghcr.io/gh05tcrew/pentestagent:latest
# Kali image with metasploit, sqlmap, hydra, etc.
docker run -it --rm \
-e ANTHROPIC_API_KEY=your-key \
ghcr.io/gh05tcrew/pentestagent:kali
# Build
docker compose build
# Run
docker compose run --rm pentestagent
# Or with Kali
docker compose --profile kali build
docker compose --profile kali run --rm pentestagent-kali
تعمل الحاوية على تشغيل PentestAgent مع إمكانية الوصول إلى أدوات اختبار الاختراق لنظام Linux. يمكن للوكيل استخدام nmap وmsfconsole وsqlmap وغيرها مباشرةً عبر أداة الطرفية.
يتطلب تثبيت Docker وتشغيله.
يمتلك PentestAgent ثلاثة أوضاع، يمكن الوصول إليها عبر الأوامر في واجهة TUI:
| الوضع | الأمر | الوصف |
|---|---|---|
| Assist | /assist <task> | تعليمة واحدة لمرة واحدة، مع تنفيذ الأدوات |
| Agent | /agent <task> | تنفيذ مستقل لمهمة واحدة |
| Crew | /crew <task> | وضع متعدد الوكلاء. يقوم المنسّق (Orchestrator) بتوليد عمال متخصصين |
| Interact | /interact <task> | وضع تفاعلي. تحدث مع الوكيل، وسيساعدك ويوجّهك أثناء عملية اختبار الاختراق |
/assist <task> One single-shot instruction.
/agent <task> Run autonomous agent on task
/crew <task> Run multi-agent crew on task
/interact <task> Chat with the agent in guided mode
/target <host> Set target
/tools List available tools
/notes Show saved notes
/report Generate report from session
/memory Show token/memory usage
/prompt Show system prompt
/conversations Browse and restore saved conversations
/mcp <list/add> Visualizes or adds a new MCP server.
/spawn [target] [--scope CIDR] [--model M] [--no-rag] [--no-mcp]
Manually spawn a child MCP agent from the TUI.
/despawn <server_name>
Terminate and remove a previously spawned child agent.
/clear Clear chat and history
/quit Exit (also /exit, /q)
/help Show help (also /h, /?)
اضغط Esc لإيقاف وكيل قيد التشغيل. وCtrl+Q للخروج.
يتضمن PentestAgent قوائم لعب هجومية جاهزة لاختبار الأمان من نوع الصندوق الأسود. تحدد قوائم اللعب نهجًا منظمًا لتقييمات أمنية محددة.
تشغيل قائمة لعب:
pentestagent run -t example.com --playbook thp3_web

يتضمن PentestAgent أدوات مدمجة ويدعم MCP (بروتوكول سياق النموذج) لقابلية التوسع.
الأدوات المدمجة: terminal, browser, notes, web_search (يتطلب TAVILY_API_KEY), spawn_mcp_agent
spawn_mcp_agent)spawn_mcp_agent هي أداة مدمجة تسمح للوكيل قيد التشغيل بتوليد نسخة فرعية من نفسه كخادم MCP تابع متصل عبر stdio. تكون العملية الفرعية معزولة تمامًا — ببيئة تشغيل خاصة بها، وعميل LLM، وسجل محادثات، ومخزن ملاحظات — ويتم حقن مجموعة أدواتها الكاملة مرة أخرى في أدوات الوكيل الأصلي المتاحة بعد التوليد.
يتيح ذلك سير عمل هرميًا متعدد الوكلاء دون أي تنسيق خارجي: ينظّم الوكيل نفسه بنفسه عبر تفويض مهام فرعية محدودة النطاق إلى أطفال يولّدهم عند الحاجة.
| الوسيط | النوع | الافتراضي | الوصف |
|---|---|---|---|
target | string | — | هدف الاختراق الذي سيتم تمريره إلى الطفل |
scope | string[] | — | الأهداف/النطاقات CIDR المسموح بها للطفل |
model | string | متغير بيئي | معرّف النموذج، يتجاوز PENTESTAGENT_MODEL على الطفل |
no_rag | boolean | false | تخطي تهيئة محرك RAG على الطفل |
no_mcp | boolean | true | تخطي اتصالات خوادم MCP الخارجية على الطفل (موصى به) |
بعد أن يعيد spawn_mcp_agent النتيجة، تصبح أدوات الطفل (run_task, run_task_async, await_tasks, إلخ) متاحة في الاستدعاء التالي للأداة. يتم تعيين اسم خادم الطفل تلقائيًا (مثل child_agent_1) ويُعاد في النتيجة.
مثال — قيام المنسّق بتفويض استطلاع متوازٍ إلى طفلين:
# Turn 1: spawn two isolated child agents
spawn_mcp_agent target="10.0.1.0/24" scope=["10.0.1.0/24"]
spawn_mcp_agent target="10.0.2.0/24" scope=["10.0.2.0/24"]
# Turn 2: children's tools are now available — delegate work asynchronously
child_agent_1__run_task_async task="Full port scan and service enumeration"
child_agent_2__run_task_async task="Full port scan and service enumeration"
# Turn 3: wait and collect
child_agent_1__await_tasks task_ids=["<id1>"] timeout_seconds=600
child_agent_2__await_tasks task_ids=["<id2>"] timeout_seconds=600
child_agent_1__get_task_result task_id="<id1>"
child_agent_2__get_task_result task_id="<id2>"
/spawn و/despawn)إلى جانب أداة spawn_mcp_agent التلقائية، تكشف واجهة TUI عن أمرين يتيحان لك توليد الأطفال وإنهاءهم يدويًا، بشكل مستقل عن حلقة الوكيل قيد التشغيل.
/spawn/spawn [target] [--scope CIDR ...] [--model MODEL] [--no-rag] [--no-mcp]
يولّد وكيل MCP فرعيًا جديدًا عبر stdio ويربطه بالجلسة الحالية. يظهر الطفل كلوحة طرفية قابلة للطي في الشريط الجانبي لواجهة TUI، وتصبح أدواته متاحة للوكيل الأصلي في استدعاء الأداة التالي.
| الوسيط | الوصف |
|---|---|
target | هدف الاختراق الذي سيتم تمريره إلى الطفل (موضعي أو --target) |
--scope CIDR | نطاق CIDR واحد أو أكثر ضمن النطاق المسموح (قابل للتكرار) |
--model MODEL | تجاوز النموذج للوكيل الفرعي |
--no-rag | تخطي تهيئة محرك RAG على الطفل |
--no-mcp | تخطي اتصالات خوادم MCP الخارجية على الطفل |
أمثلة: