
إطار وكيل اختبار الاختراق الآلي مدعوم بنماذج اللغة الكبيرة
وكيل اختبار الاختراق الذاتي المدعوم بالذكاء الاصطناعي
نُشر في مؤتمر 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 |
# تشغيل ضد هدف (وضع 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
بعد تغيير معرفات النماذج. لقطة حالية:
السجل موجود في
pentestgpt_legacy/llm/registry.py(المصدر الوحيد للحقيقة). إضافة نموذج هو إدخالModelSpecواحد؛ المزودون المتوافقون مع OpenAI يعيدون استخدام موصل واحد.
يجمع PentestGPT بيانات استخدام مجهولة للمساعدة في تحسين الأداة. يتم إرسال هذه البيانات إلى مشروع Langfuse الخاص بنا وتتضمن:
لا يتم جمع أي بيانات حساسة - مخرجات الأوامر، بيانات الاعتماد، أو قيم الأعلام الفعلية لا تُنقل أبداً.
# عبر علامة سطر الأوامر
pentestgpt --target 10.10.11.234 --no-telemetry
# عبر متغير بيئة
export LANGFUSE_ENABLED=false
حقق PentestGPT معدل نجاح 86.5% (90/104 معياراً) في تجربة مجموعة التحقق XBOW
في ديسمبر 2025. هذا الرقم هو نتيجة بحث تاريخية، وليس ضماناً لعدم الانحدار
الحالي لـ pentestgpt-agent.
أدوات اختبار XBOW وأرشيف النتائج يتم صيانتها خارج مستودع المنتج هذا كقطع أثرية بحثية مرجعية فقط. واجهة سطر الأوامر المدعومة من PentestGPT، و Makefile، و CI، وبيئة تشغيل Docker لا تعرض مشغل XBOW. قد يعيد تقييم مستقبلي استخدام تلك المجموعة عبر محول مملوك بشكل منفصل دون جعله تبعية للمنتج.
إذا كنت تستخدم PentestGPT في بحثك، يرجى الاستشهاد بورقتنا:
@inproceedings{299699,
author = {Gelei Deng and Yi Liu and Víctor Mayoral-Vilches and Peng Liu and Yuekang Li and Yuan Xu and Tianwei Zhang and Yang Liu and Martin Pinzger and Stefan Rass},
title = {{PentestGPT}: Evaluating and Harnessing Large Language Models for Automated Penetration Testing},
booktitle = {33rd USENIX Security Symposium (USENIX Security 24)},
year = {2024},
isbn = {978-1-939133-44-1},
address = {Philadelphia, PA},
pages = {847--864},
url = {https://www.usenix.org/conference/usenixsecurity24/presentation/deng},
publisher = {USENIX Association},
month = aug
}
موزع تحت رخصة MIT. راجع LICENSE.md لمزيد من المعلومات.
إخلاء مسؤولية: هذه الأداة مخصصة للأغراض التعليمية واختبار الأمان المصرح به فقط. لا يدعم المؤلفون أي استخدام غير قانوني. استخدم على مسؤوليتك الخاصة.
| تشغيل التحليل + فحص الأنواع |
make build | بناء الحزمة القابلة للتوزيع |
| المزود | النماذج الحالية | التراث (المحتفظ به) | مفتاح البيئة |
|---|
| OpenAI | gpt-5.5, gpt-5.5-pro, gpt-5.4-mini, gpt-5.4-nano, gpt-5.2, gpt-5.3-codex | gpt-4o, gpt-4o-mini, o3, o4-mini | OPENAI_API_KEY |
| Anthropic | claude-opus-4-8, claude-sonnet-4-6, claude-haiku-4-5-20251001 | — | ANTHROPIC_API_KEY |
| Google Gemini | gemini-3.1-pro, gemini-3.5-flash, gemini-3-pro, gemini-3.1-flash-lite | gemini-2.5-pro, gemini-2.5-flash | GEMINI_API_KEY / GOOGLE_API_KEY |
| DeepSeek | deepseek-v4-flash, deepseek-v4-pro | deepseek-chat, deepseek-reasoner | DEEPSEEK_API_KEY |
| xAI Grok | grok-4.3 | — | GROK_API_KEY / XAI_API_KEY |
| Alibaba Qwen | qwen3.7-max, qwen3.5-flash | qwen3-max | QWEN_API_KEY / DASHSCOPE_API_KEY |
| Moonshot Kimi | kimi-k2.6 | — | KIMI_API_KEY (افتراضي .cn؛ قم بتعيين MOONSHOT_BASE_URL لـ .ai) |
| محلي (Ollama) | ollama:<model> (مثال: ollama:qwen3) | — | لا يوجد (OLLAMA_BASE_URL) |