
إطار وكيل اختبار الاختراق الآلي مدعوم بنماذج اللغة الكبيرة
[![Contributors][contributors-shield]][contributors-url] [![Forks][forks-shield]][forks-url] [![Stargazers][stars-shield]][stars-url] [![Issues][issues-shield]][issues-url] [![MIT License][license-shield]][license-url] [![Discord][discord-shield]][discord-url]
وكيل اختبار الاختراق الذاتي المدعوم بالذكاء الاصطناعي
نُشر في مؤتمر USENIX Security 2024
الموقع الرسمي: pentestgpt.com »
ورقة بحثية
·
الإبلاغ عن خطأ
·
طلب ميزة
خط أنابيب CTF المستقل قابل للتوصيل الخلفي لـ Claude Code و Codex. الوضع التفاعلي التراثي المحدث (
pentestgpt-legacy) يدعم مجموعة أوسع من المزودين: OpenAI، Anthropic، Google Gemini، DeepSeek، xAI، Qwen، Moonshot، و Ollama المحلي. راجع وضع التفاعل متعدد نماذج اللغات الكبيرة.
claude) - مثبتة وموثقة لتشغيل Claude محلياً. راجع وثائق Claude Codecodex) - مثبتة وموثقة لتشغيل Codex محلياً. سير عمل Docker أدناه يضم كلا الواجهتين.git clone https://github.com/GreyDGL/PentestGPT.git
cd PentestGPT
make install # runs uv sync
| الأمر | الوصف |
|---|---|
make install | تثبيت التبعيات |
make test | تشغيل جميع الاختبارات |
make check | تشغيل التحليل + فحص الأنواع |
make build | بناء الحزمة القابلة للتوزيع |
# تشغيل ضد هدف (وضع CTF افتراضياً)
pentestgpt --target 10.10.11.234
# مع سياق التحدي
pentestgpt --target 10.10.11.50 --instruction "موقع WordPress، ركز على ثغرات الإضافات"
# وضع اختبار الاختراق (اكتشاف الأصول ← الثغرات ← التقرير)
pentestgpt --target 10.10.11.234 --mode pentest
# عرض الجلسات المحفوظة سابقاً
pentestgpt --list-sessions
يعمل الوكيل عبر خط أنابيب متعدد المراحل، مع تغذية نتائج كل مرحلة إلى المرحلة التالية — الاستطلاع ← الاستغلال ← دليل الحل لـ CTF، اكتشاف الأصول ← تحديد الثغرات ← التقرير لاختبار الاختراق.
صورة ذاتية الاحتواء تجمع الأداة + واجهتي سطر الأوامر Claude Code و Codex. تقوم بتسجيل الدخول مرة واحدة وتستمر الجلسات في وحدات تخزين مسماة — لا حاجة لإعادة تسجيل الدخول في عمليات التشغيل اللاحقة.
make docker-build # بناء صورة الأداة
make docker-login # لمرة واحدة، غير مؤثرة: يتحقق من عمليات تسجيل الدخول، يسجل الدخول فقط لما هو مفقود
make docker-auth-status # التحقق من تسجيل كليهما (ROUNDTRIP=1 لفحص حي برمز واحد)
# تشغيل خط الأنابيب ضد هدف (أي خلفية / نموذج / وضع):
make docker-run TARGET=http://127.0.0.1:8000 BACKEND=codex MODEL=gpt-5.5 MODE=ctf
make docker-run TARGET=10.10.11.234 BACKEND=claude MODEL=opus MODE=pentest
make docker-login يسجل دخول Claude (setup-token → يتم تخزين الرمز في وحدة التخزين) و Codex (دخوله
الخاص داخل الحاوية codex login، إعادة توجيه OAuth عبر socat — ليس مسبق التجهيز، لأن رموز تحديث ChatGPT
للاستخدام لمرة واحدة). وهو غير مؤثر: إعادة التشغيل تتخطى ما لا يزال صالحاً. تستمر عمليات تسجيل الدخول عبر
إعادة إنشاء الحاوية؛ make docker-down يحافظ عليها، make docker-nuke يزيل وحدات تخزين تسجيل الدخول (لفرض
تسجيل دخول جديد / تدوير رمز). التصميم + التفاصيل: docs/docker-dev-plan.md.
PentestGPT الكلاسيكي مع الإنسان في الحلقة من ورقة USENIX 2024 محفوظ ومُحدث
كـ pentestgpt-legacy. يشغل ثلاث جلسات نماذج لغات كبيرة متعاونة —
الاستدلال / التوليد / التحليل — تحافظ على شجرة مهام اختبار الاختراق (PTT) بينما
تقود الجلسة تفاعلياً (next، more، todo، discuss). خط الأنابيب المستقل ذو المراحل الثابتة
يدعم خلفيات Claude و Codex؛ هذا الوضع التراثي يتحدث بشكل أصلي مع العديد من المزودين
عبر حزم SDK الرسمية الخاصة بهم.
قم بتعيين مفتاح API لأي مزود تريد استخدامه (في البيئة الخاصة بك أو ملف .env — راجع
.env.example). فقط المزودون الذين قمت بتكوينهم سيتم تفعيلهم.
OPENAI_API_KEY=... ANTHROPIC_API_KEY=... GEMINI_API_KEY=... # أو GOOGLE_API_KEY
DEEPSEEK_API_KEY=... GROK_API_KEY=... QWEN_API_KEY=... KIMI_API_KEY=...
# اختيار أفضل النماذج المتاحة تلقائياً لكل جلسة
pentestgpt-legacy
# اختيار النماذج لكل جلسة
pentestgpt-legacy --reasoning-model claude-opus-4-8 --parsing-model gemini-3.5-flash
# نموذج محلي عبر Ollama (متوافق مع OpenAI)
pentestgpt-legacy --reasoning-model ollama:qwen3 --base-url http://localhost:11434/v1
# عرض كل نموذج مدعوم (يظهر أي المزودين تم تكوينهم)
pentestgpt-legacy --list-models
# إجراء اختبار دائري حي لكل نموذج مُكون وطباعة مصفوفة نجاح/فشل
pentestgpt-legacy --smoke-test
pentestgpt-legacy --list-models يعرض دائماً السجل الحي. أعد تشغيل --smoke-test
بعد تغيير معرفات النماذج. لقطة حالية: