
خادم MCP لـ Agentic Pentesting الذي يكتشف ويستغل ويبلغ عن ثغرات تطبيقات الويب.
خادم MCP عامل لاختبار الاختراق يؤتمت اختبار اختراق تطبيقات الويب باستخدام دليل OWASP الكامل لاختبار أمان الويب ومراجع تقنيات PortSwigger Web Security Academy.
وجّهه نحو هدف — يزحف على تطبيقك، يرسم كل نقطة نهاية، ثم يستدعي وكلاء متخصصين حسب الدور (Scout وAnalyzer وExploiter وReporter) لاختبار XSS وSQLi وSSRF وSSTI وIDOR والمزيد. لا نتائج إيجابية خاطئة — كل اكتشاف مدعوم بأدلة حقيقية قابلة للتكرار مع بوابات جودة تفرض الإثبات في كل مرحلة. يتضمن 31 دليل تقنية PortSwigger، وتفادي WAF تكيفي لـ 12 بائعًا، وسلسلة ثغرات عبر المراحل، وتحديد أولويات نقاط النهاية على أساس المخاطر. شغّله مع Claude Code أو API أو اذهب دون اتصال بالكامل باستخدام نماذج Ollama.
فكّر فيه على أنه: منهجية مختبِر اختراق أولي مشفّرة في خادم MCP — 109 اختبارات OWASP، 31 دليل تقنية هجوم PortSwigger، 68+ أداة MCP، 27 أداة أمان، 4 أدوار وكيل متخصصة، 7 مراحل منظمة، ضمان جودة آلي، ومراجعة نهائية خالية من السياق.
اختبار الاختراق اليدوي شامل لكنه بطيء. الماسحات الآلية سريعة لكنها ضحلة. AutoPentest يسد الفجوة:
┌─────────────────────────────────────────────────────────────┐ │ LLM Orchestrator (Claude) │ │ │ │ Reads CLAUDE.md workflow, manages phases, │ │ spawns role-specialized subagents │ └──────────┬──────────┬──────────┬──────────┬─────────────────┘ │ │ │ │ ┌─────▼────┐ ┌───▼─────┐ ┌──▼───────┐ ┌▼─────────┐ │ Scout │ │Analyzer │ │Exploiter │ │ Reporter │ │ (recon) │ │ (vuln │ │ (proof) │ │ (QA / │ │ │ │ disc.) │ │ │ │ judge) │ └──────────┘ └─────────┘ └──────────┘ └──────────┘ │ │ │ │ │ MCP │ │ MCP │ ▼ ▼ ▼ ▼ ┌──────────────────────────┐ ┌──────────────────────┐ │ WSTG MCP Server │ │ Playwright MCP │ │ (68+ tools) │ │ (Browser Testing) │ │ │ │ │ │ ◦ 109 WSTG tests │ │ ◦ DOM XSS proof │ │ ◦ 31 technique guides │ │ ◦ Clickjacking │ │ ◦ Task tree │ │ ◦ JS-rendered auth │ │ ◦ Knowledge graph │ └──────────────────────┘ │ ◦ WAF evasion │ │ ◦ Tool output parser │ │ ◦ Results verification │ docker exec │ ◦ Context compression │ │ │ ◦ Endpoint priority │ ▼ │ ◦ Quality gates │ ┌──────────────────────┐ │ ◦ Report generation │ │ autopentest-tools │ └──────────────────────────┘ │ (Docker Container) │ │ │ │ 27 security tools: │ │ nuclei, sqlmap, │ │ dalfox, katana, │ │ ffuf, nmap ... │ │ │ │ Burp proxy │ │ passthrough │ └──────────────────────┘
**كيف يعمل:**
1. **Claude Code** يقرأ `CLAUDE.md` للحصول على منهجية اختبار الاختراق الكاملة ويُنسق سير العمل المكون من 7 مراحل
2. **الوكلاء الفرعيون المتخصصون في الأدوار** (Scout, Analyzer, Exploiter, Reporter) ينفذون مهام مركزة مع قوالب تعليمات مخصصة، وإرشادات للأدوات، وأنماط مضادة
3. **خادم WSTG MCP** (أكثر من 68 أداة) يوفر إجراءات اختبار OWASP، و31 دليل تقنية من PortSwigger، وشجرة مهام هرمية، ورسم بياني معرفي، وتجاوز WAF، وتحديد أولويات نقاط النهاية، والتحقق من النتائج، وضغط السياق، وبوابات الجودة، وإنشاء التقارير
4. **حاوية Docker** تشغل جميع أدوات الأمان الـ27 — حيث يتم توجيه المرور اختياريًا عبر Burp Suite للمراقبة السلبية
5. **Playwright MCP** يتعامل مع الاختبارات القائمة على المتصفح (DOM XSS, clickjacking, صفحات تسجيل الدخول المعروضة بواسطة JavaScript)
---
## الميزات
### تغطية شاملة لـ OWASP
- **109 حالة اختبار WSTG** عبر 12 فئة — من جمع المعلومات إلى اختبار API
- يتضمن كل اختبار إجراءات CLI خطوة بخطوة، وحمولات خاصة بالسياق، ومعايير كشف، وتصنيفات شدة
- يتم تحديد أولويات الاختبارات (MUST/SHOULD) مع مشغلات شرطية بحيث لا يتم تخطي أي شيء ذي صلة
### 31 دليل تقنية هجوم من PortSwigger
- مستمدة من [أكاديمية أمان الويب من PortSwigger](https://portswigger.net/web-security) — طرق الكشف، تقنيات الاستغلال، الحمولات، أوراق الغش، وأنماط تجاوز WAF
- منظمة حسب فئة الثغرة (SQLi, XSS, SSRF, JWT, OAuth, إلخ) للاستخدام المباشر أثناء الاختبار
- مدمجة في كل مرحلة اختبار — يقوم الوكلاء بتحميل دليل التقنية المناسب تلقائيًا قبل اختبار كل فئة ثغرة
- جداول حمولات خاصة بقاعدة البيانات/المنصة (Oracle مقابل MySQL مقابل PostgreSQL مقابل MSSQL لـ SQLi، Jinja2 مقابل Twig مقابل Freemarker لـ SSTI، إلخ)
- أنماط تجاوز WAF منظمة حسب مستوى التجاوز (أساسي → متوسط → متقدم)
### 27 أداة أمان مهيأة مسبقًا
- جميع الأدوات مثبتة مسبقًا في صورة Docker واحدة — قم بتشغيل `make setup` وستكون جاهزًا
- أدوات منظمة حسب المرحلة: الاكتشاف، اختبار الحقن، المصادقة، التشفير، اختبار API
- تكامل تلقائي لوكيل Burp Suite للمراقبة السلبية للمرور
### سير عمل منظم من 7 مراحل
- **المرحلة 0:** اكتشاف التطبيق ورسم الخرائط
- **المرحلة 1:** جمع المعلومات والاستطلاع
- **المرحلة 2:** اختبار التكوين والنشر
- **المرحلة 3:** إدارة الهوية والمصادقة والتفويض والجلسات
- **المرحلة 4:** اختبار التحقق من صحة الإدخال (خطوط أنابيب XSS/SQLi/SSRF)
- **المرحلة 5:** معالجة الأخطاء، التشفير، منطق الأعمال، اختبار جانب العميل و API
- **المرحلة 6:** التحقق من التغطية وإعداد التقارير
- **المرحلة 7:** مراجعة القاضي النهائي والمعالجة
### نظام ضمان الجودة
- **بوابات مرحلة تلقائية** — يجب أن تجتاز كل مرحلة فحوصات الجودة قبل المتابعة
- **مراجع الجودة** الوكيل الفرعي عند كل انتقال بين المراحل يحدد الفجوات ويقترح تحسينات
- **القاضي النهائي** — وكيل بدون سياق يراجع التفاعل بأكمله من الصفر، مثل مراجع ضمان جودة خارجي
- **بوابات الاستنفاد** — يتطلب "غير معرض للخطر" دليلًا على جهد اختبار كافٍ (الحد الأدنى من التقنيات ومحاولات التجاوز)
### نتائج قائمة على الأدلة
- كل نتيجة تتطلب أوامر curl قابلة للتكرار وأدلة كاملة للطلب/الاستجابة
- **تصنيف ثلاثي المستويات:** EXPLOITED (تأثير مثبت)، POTENTIAL (محظور بواسطة تحكم)، FALSE_POSITIVE (التحكم صامد)
- **إطار مكافحة الهلوسة** — "لا استغلال = لا نتيجة" يتم تطبيقه على كل المستويات
- قوائم أدلة لكل فئة ثغرة يتم التحقق منها قبل تسجيل أي نتيجة
### وكلاء فرعيون متخصصون في الأدوار
- **4 أدوار مخصصة** مع قوالب تعليمات مركزة، وإرشادات للأدوات، وأنماط مضادة:
- **Scout** — استطلاع فقط، يرسم سطح الهجوم دون إرسال حمولات (المرحلة 0-1)
- **Analyzer** — يحدد نقاط الدخول المحتملة بحمولات كاناري/شاهد، يبني طوابير استغلال (تحليل المرحلة 2-5)
- **Exploiter** — يستهلك مخرجات Analyzer، يثبت الاستغلال بالأدلة، يسجل النتائج المؤكدة (استغلال المرحلة 4)
- **Reporter** — مراجعة الجودة والقاضي النهائي، يراجع البيانات دون إرسال طلبات (ضمان الجودة + ما بعد التقرير)
- نقطة تحقق تحقق بين التحليل والاستغلال تمنع إهدار الجهد
- كل دور لديه قوائم أدوات مسموحة/مقيدة وعقود إدخال/إخراج صريحة
### الاستغلال عبر خطوط الأنابيب (المرحلة 4)
- 3 **خطوط أنابيب مستقلة ذات مرحلتين** تعمل بالتوازي: XSS، الحقن (SQLi/CMDi)، SSRF/SSTI
- كل خط أنابيب: Analyzer (اكتشاف → تحليل → طابور) → نقطة تحقق تحقق → Exploiter (استغلال → تسجيل)
- كل خط أنابيب يقوم بتحميل دليل تقنية PortSwigger الخاص به لطرق الكشف، وأوراق الغش، وأنماط تجاوز WAF
- معلومات استخباراتية عن WAF مشتركة عبر جميع خطوط الأنابيب
- حمولات شاهد واعية بالسياق لـ 13 نوع نقطة دخول
### تجاوز WAF التكيفي
- **بصمة WAF تلقائية** من رؤوس الاستجابة، الجسم، ورموز الحالة — تحدد 12 بائع WAF (Cloudflare, AWS WAF, Akamai, Imperva, ModSecurity, F5, FortiWeb, Sucuri, Barracuda, Wordfence, NAXSI, Citrix)
- **حمولات تجاوز خاصة بالبائعين** منظمة حسب مستوى التعقيد (أساسي → متوسط → متقدم)
- معلومات استخباراتية عن WAF مشتركة عبر جميع الوكلاء عبر نظام التسليمات
- يقوم الوكلاء تلقائيًا بتحديد WAF عند أول استجابة حظر والتبديل إلى حمولات تجاوز مخصصة
### رسم بياني معرفي عبر المراحل
- **رسم بياني للعلاقات بين الكيانات** يتتبع نقاط النهاية، المعاملات، التقنيات، النتائج، ملفات تعريف الارتباط، النطاقات، وأدوار المستخدم
- **تسلسل الثغرات الآلي** عبر إيجاد المسار باستخدام BFS مع 7 أنماط تسلسل محددة مسبقًا:
- XSS + CSP مفقود، XSS + كلمة ضعيفة (بدون HttpOnly)، إعادة توجيه مفتوحة + رد OAuth
- IDOR + دور المسؤول، SSRF + بيانات وصفية سحابية، لا قفل + لا MFA، CORS + نقطة نهاية حساسة
- ترقية الشدة عندما يزيد التسلسل من التأثير بشكل جوهري
- يتم ملؤه طوال الاختبار، والاستعلام عنه بعد المرحلة 4 لاكتشاف التسلسلات
### شجرة المهام الهرمية
- هيكل شجري دائم (المراحل كفروع، الاختبارات كأوراق) يمنع تحيز LLM ذو الأولوية للعمق وفقدان السياق
- الوكيل الرئيسي يحتفظ بنظرة ماكرو استراتيجية؛ الوكلاء الفرعيون يحدثون فقط العقد الورقية المخصصة لهم
- الانتشار التلقائي: عند اكتمال جميع الأطفال، يكتمل الأصل تلقائيًا
- نسب إنجاز على مستوى المرحلة لاتخاذ قرارات مستنيرة
### تحديد أولويات مخاطر نقاط النهاية
- تسجيل نقاط النهاية وفرزها حسب المخاطر للاختبار ذي الأولوية — يتم اختبار الأعلى مخاطرة أولاً
- عوامل التسجيل: عدد المعاملات، مؤشرات مخاطر التقنية، ثقة سلسلة التلوث، تقارب الأدوات، متطلبات المصادقة، أسماء المعاملات القابلة للحقن
- مدمج في توليد خريطة نقطة النهاية للمرحلة 0
### تحليل مخرجات الأدوات
- **13 محللًا مدمجًا** لأدوات CLI الشائعة (nmap, nuclei, sqlmap, ffuf, httpx, whatweb, testssl, nikto, dalfox, katana, gau, wapiti, commix)
- يضغط مخرجات الأدوات الخام بمقدار 3-5 مرات مع الحفاظ على النتائج الرئيسية، نقاط النهاية، والأخطاء
- تفصيل قابل للتكوين: ملخص (حوالي 15 سطرًا)، مفصّل (حوالي 50 سطرًا)، كامل (مخرجات محللة كاملة)
### التحقق من نتائج أدوات CLI
- تحقق تلقائي من جودة مخرجات أداة CLI — يكتشف المخرجات الفارغة، أخطاء الوكيل، مشاكل الأذونات، والنتائج المشبوهة
- **10 مدققات لكل أداة** (nmap, nuclei, sqlmap, ffuf, feroxbuster, testssl, dalfox, wapiti, katana, httpx) مع اقتراحات أوامر مصححة
- عندما تنتج أداة مخرجات فارغة أو مشبوهة، يقترح المدقق إصلاحات (مثل إضافة `-Pn` لـ nmap، إزالة متغيرات بيئة الوكيل، تجربة أعلام مختلفة)
- مدمج في سير عمل تنفيذ الأداة — يقوم الوكلاء باستدعاء `verify_tool_result()` بعد كل تشغيل لأداة CLI
### ضغط السياق التدريجي
- **ملخصات المرحلة** (حوالي 500-800 كلمة) تُنشأ تلقائيًا عند اجتياز بوابات المرحلة — تلتقط النتائج، التغطية، نتائج الأدوات، وسطح الهجوم في شكل مضغوط
- يمنع تدهور السياق في التفاعلات طويلة المدى عن طريق استبدال البيانات التاريخية الخام بملخصات منظمة
- `get_engagement_summary()` يجمع جميع ملخصات المراحل في نظرة عامة واحدة لحقنها في تعليمات الوكلاء الفرعيين الجدد
- الملخصات تخزّن كتسليمات — يمكن لأي وكيل في المراحل اللاحقة الوصول إليها دون الحاجة إلى تاريخ التفاعل الكامل
### التحليل المخالف للواقع (اكتشاف المسار الثاني)
- بعد أن يكمل Analyzer مع وجود ثغرات مكتشفة، يتم استدعاء **Analyzer ثانٍ** مع تعليمات "افترض أن تلك الثغرات قد تم إصلاحها"
- يبحث Analyzer المخالف للواقع عن ثغرات **إضافية**: نقاط نهاية مختلفة، معاملات مختلفة، سياقات حقن مختلفة، عيوب منطقية
- يتم إلحاق النتائج بطابور الاستغلال الحالي (دمج تلقائي مع إزالة التكرار حسب نقطة النهاية+المعامل ومعرفات ذاتية التزايد)
- بناءً على أبحاث الإزالة PenHeal التي تظهر زيادة في تغطية الثغرات بنسبة +71% مع التوجيه المخالف للواقع
### دعم متعدد النطاقات
- كشف ومعالجة تلقائية لـ SSO/OAuth/OIDC/SAML
- تسجيل النطاق لكل نطاق، الزحف، والاختبار
- إدارة وعاء ملفات تعريف الارتباط لاستمرارية الجلسة عبر النطاقات
- تصعيد فشل المصادقة من 6 مستويات (المنح البديلة → PKCE → متصفح بدون واجهة → استخراج الرمز المميز → توفير المستخدم → غير مصادق)
### إدارة التفاعل الآمنة من الأعطال
- ملفا `findings.md` و `progress.log` للإلحاق فقط يتحملان الأعطال
- نقاط تفتيش مساحة عمل Git مع إمكانية التراجع
- **استئناف تلقائي عند الانقطاع** — يتم إنشاء `resume-prompt.md` تلقائيًا عند كل نقطة تفتيش مع السياق الكامل (الهدف، بيانات الاعتماد، المرحلة الحالية، الاختبارات المتبقية، النطاق). الصق في جلسة جديدة للمتابعة من حيث توقفت بالضبط
- دقة نقطة التفتيش في منتصف المرحلة — يتتبع أي الاختبارات داخل المرحلة قد اكتملت، وليس فقط حالة المرحلة
- مسار تدقيق كامل لكل استدعاء أداة MCP مع الطوابع الزمنية
### التقارير الاحترافية
- تقارير Markdown مع ملخص تنفيذي، نتائج حسب الشدة، مصفوفة تغطية الاختبار، وتغطية الأدوات
- نسب تغطية لكل فئة وتحليل الفجوات
- تحليل تسلسل الثغرات موثق
- ملاحظات القاضي النهائي وملاحظات الجودة مشمولة
---
## نظام أدوار الوكلاء
يستخدم AutoPentest 4 أدوار وكيل متخصصة بدلاً من الوكلاء الفرعيين العامين. كل دور لديه قالب تعليمات مخصص مع إرشادات أدوات مركزة، وعقود إدخال/إخراج، وأنماط مضادة.
| الدور | القالب | الغرض | المراحل |
|------|----------|---------|--------|
| **Scout** | `templates/agent-roles/scout.md` | الاستطلاع ورسم سطح الهجوم | المرحلة 0-1، اكتشاف الكود المصدري |
| **Analyzer** | `templates/agent-roles/analyzer.md` | اكتشاف الثغرات بحمولات كاناري/شاهد | تحليل المرحلة 2-5 |
| **Exploiter** | `templates/agent-roles/exploiter.md` | إثبات الاستغلال بالأدلة | استغلال المرحلة 4 |
| **Reporter** | `templates/agent-roles/reporter.md` | مراجعة الجودة والقاضي النهائي | انتقالات المرحلة، ما بعد التقرير |
### كيف يعمل خط الأنابيب
تستخدم المرحلة 4 (الاختبار ذو التأثير الأعلى) خط أنابيب من مرحلتين لكل فئة ثغرة:```
┌──────────────────────────────────────────────────────────────┐
│ Pipeline 1: XSS │
│ │
│ Analyzer (75 turns) Exploiter (75 turns) │
│ ┌─────────────────────┐ ┌─────────────────────┐ │
│ │ Discover endpoints │ │ Load Analyzer queue │ │
│ │ Send canary payloads│─────▶│ Attempt exploitation│ │
│ │ Build exploit queue │ gate │ Prove impact │ │
│ │ Save deliverable │ │ Log findings │ │
│ └─────────────────────┘ └─────────────────────┘ │
│ ▲ │
│ validate_exploitation_queue() │
└──────────────────────────────────────────────────────────────┘
ثلاثة خطوط أنابيب (XSS، Injection، SSRF/SSTI) تعمل بالتوازي. نقطة التحقق بين المحلل والمستغل تضمن أن قوائم الاستغلال المشكلة بشكل صحيح فقط هي التي تستمر.
لكل دور قيود أدوات صريحة يتم فرضها من خلال التعليمات النصية:
log_finding() أو إرسال حمولات الهجومبالنسبة لتحديات CTF والتطبيقات الصغيرة (أقل من 3 نقاط نهاية إدخال)، يتوفر خط أنابيب متجانس قديم كبديل احتياطي.
git clone https://github.com/bhavsec/autopentest-ai.git cd autopentest-ai
cd server && uv sync && cd ..
make setup
هذا كل شيء. جميع أدوات الأمان الـ 27 مثبتة الآن وجاهزة داخل حاوية Docker.
### التحقق من التثبيت```bash
# Check all tools are installed
make verify-tools
# Expected output:
# [+] nuclei: installed
# [+] httpx: installed
# [+] katana: installed
# ... (27 tools total)
claude
ثم أخبر Claude بما يجب اختباره:```
Run a full WSTG assessment against https://target.example.com
قم بتشغيل Claude Code وقدم الهدف:``` Run a full pentest against https://app.example.com
Credentials: admin / P@ssw0rd123
Claude سيطلب أي معلومات مفقودة (مثل بيانات الاعتماد) ويبدأ سير العمل ذو الـ7 مراحل.
### الخيار ب: الوضع القائم على ملف التكوين (موصى به)
أنشئ ملف تكوين YAML لتقييمات متكررة ومتسقة:```yaml
# configs/my-target.yaml
target:
url: https://app.example.com
scope:
- app.example.com
- api.example.com
exclude:
- cdn.example.com
authentication:
login_type: form
login_url: https://app.example.com/login
credentials:
username: [email protected]
password: secret123
login_flow:
- "Type $username into the email field"
- "Type $password into the password field"
- "Click the 'Sign In' button"
success_condition:
type: url_contains
value: "/dashboard"
rules:
avoid:
- description: "Do not test logout"
type: path
url_path: "/logout"
focus:
- description: "Prioritize API endpoints"
type: path
url_path: "/api"
reporting:
tester_name: "Security Team"
ثم في Claude Code:``` Load the config from configs/my-target.yaml and run the pentest
### الخيار ج: الاختبار المستهدف
تنفيذ اختبارات WSTG محددة على نقاط نهاية محددة:```
Run WSTG-INPV-05 (SQL Injection) against https://app.example.com/search?q=
إذا كنت قد أتقنت الأساسيات (استغلال بعض CVEs، كتابة فائض مخزن مؤقت بسيط، ربما use-after-free)، فقد حان الوقت لرفع مستواك. هذه هي منطقة أساطير تطوير الاستغلال.
__stack_chk_fail.* على سبيل المثال:
* `com.example.someintent.thingyosay`
* `not.real.intent.action.phreaking`
* المُعاملات الاختيارية:
* `es.string`
* `es.string...`
* من الممكن أيضًا توفير تدفقات البيانات كمُعاملات:
```
echo "iamstring" | am broadcast -a com.example.someintent.thingyosay --es es.string
echo "iamstring" "iamstring2" | am broadcast -a com.example.someintent.thingyosay --es es.string es.string...
``````
Run all authentication tests (WSTG-ATHN) against https://app.example.com
Resume engagement pentest-2026-02-11-myapp
---
## مراحل الاختبار
### المرحلة 0: اكتشاف التطبيق ورسم الخرائط
مرحلة الأساس الحاسمة. يقوم Claude بشكل مستقل بـ:
1. **فحوصات ما قبل الإطلاق** — يتحقق من إمكانية الوصول للهدف، ويكشف عن عمليات إعادة التوجيه والمصادقة عبر النطاقات
2. **إطلاق 10+ أدوات خلفية** بالتوازي (katana, ffuf, nuclei, whatweb, gau, nmap, feroxbuster, wapiti, httpx)
3. **الزحف المتكرر** — يتبع الروابط إلى عمق 2-3، ويحلل HTML/JS لنقاط النهاية
4. **القوة الغاشمة للدليل** — المسارات الشائعة + قوائم كلمات خاصة بالتقنيات
5. **استيعاب نتائج الأدوات** — يقرأ جميع مخرجات الأدوات الخلفية ويدمجها في خريطة نقاط نهاية موحدة
6. **بناء مخزون نقاط نهاية منظم** مع المعاملات ومتطلبات المصادقة وترتيب الأولويات
**المخرجات:** خريطة نقاط نهاية كاملة منظمة حسب النطاق، جاهزة للاختبار المنهجي.
### المرحلة 1-2: الاستطلاع والتكوين
- بصمات الخادم، اكتشاف التقنيات، مراجعة البيانات الوصفية
- تحليل رؤوس الأمان (HSTS, CSP, CORS, X-Frame-Options)
- اختبار تكوين TLS، اكتشاف الواجهات الإدارية
- اختبار طرق HTTP، معالجة امتدادات الملفات
### المرحلة 3: المصادقة، التفويض، وإدارة الجلسات
- **بناء شبكة الصلاحيات/الامتيازات** قبل الاختبار (يرسم الحراس، البرمجيات الوسيطة، واختبارات الالتفاف)
- اختبار IDOR مع عدة معرفات بديلة لكل نقطة نهاية
- اختبار CSRF على كل نقطة نهاية تغير الحالة
- تثبيت الجلسة، اختطافها، وتحليل الرموز
- اختبار ثغرات JWT (إن أمكن)
- اختبار نقاط ضعف OAuth/OIDC (إن أمكن)
### المرحلة 4: التحقق من صحة المدخلات (أعلى تأثير)
ثلاثة خطوط أنابيب مستقلة من مرحلتين تعمل بالتوازي، كل منها يستخدم تقسيم دور المحلل → المستغل:
| خط الأنابيب | فئات الثغرات | الأدوات | أدلة التقنيات |
|----------|----------------------|-------|-----------------|
| خط أنابيب XSS | XSS المنعكس، XSS المخزن، XSS DOM | dalfox, Playwright | XSS, DOM |
| خط أنابيب الحقن | حقن SQL، حقن الأوامر، حقن NoSQL | sqlmap, commix, nosqli | SQLI, CMDI, NOSQLI |
| خط أنابيب SSRF/SSTI | SSRF, SSTI, Path Traversal | sstimap, ssrfmap | SSRF, SSTI, PTRAV |
كل خط أنابيب: **محلل** (اكتشاف ← تحليل ← بناء قائمة استغلال) ← نقطة تفتيش تحقق ← **مستغل** (محاولة استغلال ← إثبات التأثير ← تسجيل النتائج). يتم مشاركة استخبارات تجاوز WAF عبر جميع خطوط الأنابيب.
### المرحلة 5: معالجة الأخطاء، التشفير، منطق الأعمال، جانب العميل، وواجهات API
- كشف تتبع التكدس ورسائل الأخطاء
- اختبار TLS/SSL عبر testssl.sh
- تجاوز منطق الأعمال (الالتفاف على سير العمل، تزوير الطلبات)
- اختبار جانب العميل (clickjacking، إعادة التوجيه المفتوحة، معالجة DOM)
- اختبار GraphQL وواجهات REST API
- تحليل تسلسل الثغرات عبر جميع النتائج
### المرحلة 6: إعداد التقارير
- التحقق من التغطية (تغطية الاختبار + تغطية الأداة)
- إزالة تكرار النتائج ومعايرة الشدة
- إنشاء تقرير Markdown مع ملخص تنفيذي، النتائج، مصفوفات التغطية
### المرحلة 7: مراجعة القاضي النهائي
يقوم وكيل بدون سياق بمراجعة كامل المشاركة على البارد — لا معرفة بقرارات الاختبار أو الصعوبات. يفحص:
- **سلامة التغطية** — اختبارات مختومة بالمطاط، نقاط نهاية مفقودة
- **كشف سلسلة N/A** — فئات تحتوي على علامات "غير قابل للتطبيق" مفرطة
- **جودة النتائج** — اكتمال الأدلة، اتساق الشدة، فرص التسلسل
- **استخدام الأدوات** — أدوات تم تشغيلها لكن لم تتم مراجعة مخرجاتها، أسباب تخطي كسولة
- **سطح الهجوم المفقود** — نقاط نهاية غير مختبرة، معاملات غير مختبرة، نطاقات غير مختبرة
الحكم (PASS/CONDITIONAL_PASS/FAIL) يؤدي إلى إجراءات تصحيحية محددة قبل تسليم التقرير.
---
## أدوات الأمان
### الاكتشاف والاستطلاع (المرحلة 0)
| الأداة | الغرض | العلامات الرئيسية |
|------|---------|-----------|
| **katana** | زاحف ويب مع عرض JS | `-jc` للزحف عبر JavaScript |
| **httpx** | فحص HTTP، كشف التقنيات | `-tech-detect -status-code -title` |
| **ffuf** | تخمين الدليل/المعامل | `-w wordlist -mc all -fc 404` |
| **feroxbuster** | تعداد الدليل المتكرر | `--smart --auto-tune` |
| **nuclei** | ماسح ثغرات يعتمد على القوالب | `-t cves/ -t misconfigurations/` |
| **nikto** | سوء تكوين خادم الويب | `-Tuning 1234567890` |
| **whatweb** | بصمات التقنيات | `--aggression 3` |
| **nmap** | مسح المنافذ والخدمات | `-sV -sC --top-ports 1000` |
| **gau** | اكتشاف عناوين URL التاريخية | `--blacklist png,jpg,gif` |
| **subfinder** | تعداد النطاقات الفرعية | `-silent -all` |
### اختبار الحقن (المرحلة 4)
| الأداة | الغرض | العلامات الرئيسية |
|------|---------|-----------|
| **sqlmap** | حقن SQL (جميع التقنيات) | `--batch --risk 3 --level 5` |
| **dalfox** | فحص XSS واستغلاله | `--skip-bav --deep-domxss` |
| **commix** | حقن الأوامر | `--batch --all` |
| **sstimap** | حقن القوالب من جانب الخادم | `-u <url>` |
| **ssrfmap** | استغلال SSRF | `-r request.txt` |
| **nosqli** | حقن NoSQL | `-u <url>` |
| **crlfuzz** | حقن CRLF / تقسيم HTTP | `-u <url>` |
| **smuggler** | تهريب طلبات HTTP | `-u <url>` |
### المصادقة والجلسات (المرحلة 3)
| الأداة | الغرض | العلامات الرئيسية |
|------|---------|-----------|
| **hydra** | القوة الغاشمة للبيانات الاعتمادية | `-L users.txt -P pass.txt` |
| **jwt_tool** | تحليل رموز JWT واستغلالها | `-t <token> -M at` |
### التشفير وواجهات API (المرحلة 5)
| الأداة | الغرض | العلامات الرئيسية |
|------|---------|-----------|
| **testssl.sh** | اختبار تكوين TLS/SSL | `--severity HIGH --sneaky` |
| **graphql-cop** | اختبار أمان GraphQL | `-t <url>` |
| **websocat** | اختبار WebSocket | `ws://<url>` |
### البنية التحتية (المرحلة 2)
| الأداة | الغرض |
|------|---------|
| **corscanner** | فحص سوء تكوين CORS |
| **dnsreaper** | كشف الاستيلاء على النطاق الفرعي |
### أتمتة المتصفح
| الأداة | الغرض |
|------|---------|
| **Playwright** | إثبات DOM XSS، clickjacking، تسجيل الدخول المعروض بواسطة JS، فحص تخزين جانب العميل |
---
## قاعدة المعرفة WSTG
109 حالة اختبار عبر 12 فئة من OWASP، كل منها يحتوي على إجراءات محددة لسطر الأوامر:
| الرمز | الفئة | الاختبارات | أمثلة |
|------|----------|:-----:|---------|
| **INFO** | جمع المعلومات | 10 | اكتشاف محركات البحث، بصمات الخادم، مراجعة البيانات الوصفية |
| **CONF** | التكوين والنشر | 14 | رؤوس الأمان، CORS، CSP، HSTS، واجهات الإدارة |
| **IDNT** | إدارة الهوية | 5 | تعريفات الأدوار، التسجيل، تعداد الحسابات |
| **ATHN** | المصادقة | 11 | بيانات اعتماد افتراضية، قفل الحساب، تجاوز المصادقة، MFA، سياسة كلمة المرور |
| **ATHZ** | التفويض | 5 | تجاوز المسار، تجاوز المصادقة، تصعيد الصلاحيات، IDOR |
| **SESS** | إدارة الجلسات | 11 | سمات الكوكيز، CSRF، تثبيت/اختطاف الجلسة، JWT |
| **INPV** | التحقق من صحة المدخلات | 20 | XSS، SQLi، CMDi، SSTI، SSRF، تجاوز المسار، XXE، LDAP |
| **ERRH** | معالجة الأخطاء | 2 | رسائل الأخطاء، تتبع التكدس |
| **CRYP** | التشفير | 4 | تكوين TLS، padding oracle، تشفير ضعيف |
| **BUSL** | منطق الأعمال | 10 | تجاوز سير العمل، تزوير الطلبات، رفع الملفات، حدود المعدل |
| **CLNT** | جانب العميل | 14 | DOM XSS، clickjacking، إعادة التوجيه المفتوحة، WebSockets، التخزين |
| **APIT** | اختبار API | 3 | GraphQL، REST، SOAP |
يتضمن كل ملف اختبار:
- إجراءات خطوة بخطوة لسطر الأوامر (أوامر curl، استدعاءات الأدوات)
- الحمولات منظمة حسب مستوى الالتفاف (أساسي، متوسط، متقدم)
- معايير الكشف مع مقاييس تقييم الشدة
- إرشادات المعالجة مع المراجع
---
## أدلة تقنيات PortSwigger
31 دليلًا مرجعيًا لتقنيات الهجوم مستمدة من [أكاديمية أمان الويب PortSwigger](https://portswigger.net/web-security)، منظمة حسب فئة الثغرات للاستخدام المباشر أثناء مهام اختبار الاختراق الفعلية.
### ما هو مدرج
| الرمز | الفئة | تعيين WSTG | المحتوى الرئيسي |
|------|----------|-------------|-------------|
| **SQLI** | حقن SQL | INPV-05 | تقنيات UNION/blind/error/time-based/OOB، أوراق غش خاصة بقواعد البيانات (Oracle, MySQL, PostgreSQL, MSSQL)، تجاوز WAF |
| **XSS** | البرمجة النصية عبر المواقع | INPV-01, INPV-02, CLNT-01 | سياقات منعكسة/مخزنة/DOM، حمولات العلامات ومعالجات الأحداث، تجاوز CSP، التهرب من الفلاتر |
| **CMDI** | حقن الأوامر في نظام التشغيل | INPV-12 | أحرف الفصل، التقنيات العمياء (تأخير الوقت، OOB)، حمولات خاصة بنظام التشغيل |
| **SSTI** | حقن القوالب من جانب الخادم | INPV-18 | كشف واستغلال Jinja2/Twig/Freemarker/Velocity/ERB، الهروب من بيئة الحماية |
| **SSRF** | تزوير الطلبات من جانب الخادم | INPV-19 | حيل مخطط URL، إخفاء IP، إعادة ربط DNS، بيانات وصفية سحابية، تجاوز الفلاتر |
| **PTRAV** | تجاوز المسار | INPV-04 | اختلافات الترميز، حقن البايت الفارغ، تجاوز الغلاف |
| **XXE** | الكيانات الخارجية XML | INPV-07 | استرجاع الملفات، SSRF عبر XXE، XXE أعمى مع OOB، كيانات المعاملات |
| **AUTHN** | المصادقة | ATHN-01 إلى ATHN-07 | القوة الغاشمة، تجاوز 2FA، تسمم إعادة تعيين كلمة المرور، حشو البيانات الاعتمادية |
| **AUTHZ** | التحكم في الوصول | ATHZ-01 إلى ATHZ-04 | IDOR، تصعيد الصلاحيات، تجاوز أفقي/رأسي، ضوابط تعتمد على المرجع |
| **JWT** | رموز JSON Web | SESS-10 | ارتباك الخوارزمية (none/HS256→RS256)، حقن kid، استغلال JWK/JKU |
| **OAUTH** | OAuth 2.0 | ATHZ-05 | سرقة رمز التفويض، إعادة توجيه مفتوحة، ترقية النطاق، CSRF على تدفقات OAuth |
| **CSRF** | تزوير الطلبات عبر المواقع | SESS-05 | تجاوز الرمز، تجاوز SameSite، تجاوز التحقق من المرجع |
| **SMUGGLE** | تهريب طلبات HTTP | INPV-15 | CL.TE، TE.CL، TE.TE، تخفيض إصدار HTTP/2، نفق الطلبات |
| **DOM** | الثغرات المستندة إلى DOM | CLNT-01 | المصادر/الأحواض، تلويث DOM، أدوات تلويث النموذج الأولي |
| **CORS** | مشاركة الموارد عبر الأصل | CONF-13, CLNT-07 | انعكاس الأصل، أصل فارغ، استغلال ثقة النطاق الفرعي |
| **NOSQLI** | حقن NoSQL | INPV-05 | حقن عامل MongoDB، حقن JavaScript، استخراج أعمى |
| **GRAPHQL** | GraphQL | APIT-01 | الاستبطان، اقتراح الحقول، هجمات التجميع، تجاوز التفويض |
| **RACE** | حالات السباق | BUSL-04 | تجاوز الحد، TOCTOU، سباقات نقطة نهاية واحدة، مزامنة الإطار الأخير |
| **UPLOAD** | رفع الملفات | BUSL-08, BUSL-09 | تجاوز الامتداد، التلاعب بنوع المحتوى، شيل الويب، ملفات متعددة اللغات |
| **HOST** | حقن رأس المضيف | INPV-17 | تسمم إعادة تعيين كلمة المرور، تسمم ذاكرة التخزين المؤقت، SSRF قائم على التوجيه |
بالإضافة إلى 11 دليلًا إضافيًا: CLICK, WS, CACHEPOIS, CACHEDEC, DESER, INFO, BUSL, PROTO, API, LLM, SKILLS.
### كيفية استخدامها
يتم دمج أدلة التقنيات في كل مرحلة من مراحل الاختبار عبر أداة MCP `get_technique_guide()`:```
Phase 2 → CORS guide for CONF-13 testing
Phase 3 → AUTHN, AUTHZ, CSRF, JWT, OAUTH guides for auth/session testing
Phase 4 → SQLI, XSS, CMDI, SSTI, SSRF, PTRAV, XXE guides for input validation
Phase 5 → DOM, CLICK, GRAPHQL, RACE, UPLOAD guides for client-side & business logic
يقوم كل وكيل اختبار متوازي بتحميل دليل التقنيات الخاص به تلقائيًا قبل الاختبار، مما يوفر:
انظر docs/adding-knowledge-base-resources.md للحصول على تعليمات حول إضافة أدلة تقنيات جديدة إلى قاعدة المعرفة.
يحتوي AutoPentest على نظام ضمان جودة متعدد الطبقات يمنع الاختبار السطحي:
بعد كل مرحلة، يتحقق phase_gate_check() من:
لا يمكن للمراحل المحظورة المتابعة حتى يتم حل جميع المشكلات.
وكيل فرعي يتم إنشاؤه عند كل انتقال بين المراحل يقوم بـ:
وكيل بدون سياق يراجع المهمة المكتملة بعيون جديدة:
يتطلب وضع علامة على ثغرة أمنية على أنها "غير قابلة للاستغلال" إثباتًا للجهد:
قبل تسجيل أي نتيجة، يتم التحقق من متطلبات الأدلة:
يتم تسجيل كل استدعاء أداة MCP تلقائيًا في engagements/<eid>/logs.txt مع الوسائط والنتائج ومدة التنفيذ الكاملة. قم بتشغيل tail -f logs.txt في محطة طرفية منفصلة لمشاهدة جميع نشاطات الوكيل في الوقت الفعلي. تغطية 100% عبر مغلف أداة تلقائي — لا حاجة لأدوات يدوية.
تفرض بوابات المراحل فترات زمنية لا تقل عن 60 ثانية بين الاستدعاءات (15 ثانية في وضع CTF)، مما يمنع إكمال المرحلة مبكرًا. يحذر التحقق من العمل بين البوابات إذا حدث أقل من 3 أحداث عمل بين البوابات المتتالية.
يتضمن AutoPentest تكاملًا مع معايير التحقق من XBOW — 104 تحديات Docker على غرار CTF تُستخدم كمعيار صناعي لقياس أداء وكلاء اختبار الاختراق بالذكاء الاصطناعي.
| الوكيل | النتيجة | المصدر |
|---|---|---|
| Shannon | 96.2% | KeygraphHQ (2024) |
| PentestGPT | 86.5% | USENIX Sec 2024 |
cd benchmarks/xbow && make setup
make solve ID=XBEN-001-24
make solve ID=XBEN-001-24 RAW=1
make solve-tag TAG=sqli
make solve-all
make solve-all RAW=1
make score
make compare
المحلل (solver) له وضعان:
- **autopentest** (افتراضي): يشغل Claude Code من جذر المشروع، محمّلاً `.mcp.json` (خادم MCP مع 68+ أداة) و`CLAUDE.md` (منهجية اختبار الاختراق). يقيس القدرة الكاملة لـ AutoPentest.
- **raw** (`RAW=1`): يشغل Claude Code بمفرده بدون خادم MCP أو منهجية. خط أساس لقياس القيمة المضافة لـ AutoPentest على قدرة LLM الخام.
كل تحدٍ هو تطبيق Docker Compose مع flag مُدرج في وقت البناء. استخراج flag من مخرجات Claude يحدد النجاح/الفشل. تُسجّل النتائج لكل تحدٍ، لكل tag، ولكل مستوى صعوبة.
### وضع CTF
لتحديات CTF والتطبيقات الصغيرة، فعّل وضع CTF لبوابات جودة مرنة:```yaml
mode: ctf
target:
url: https://target.com
وضع CTF يقلل توقيت مراحل المراجعة (15s مقابل 60s)، ويتجاوز متطلبات مراجع ضمان الجودة، ويخفض عتبات الإنجاز إلى النصف — مع الحفاظ على جودة النتائج ومعايير الأدلة.
يتضمن المستودع تقرير مثال كامل من اختبار اختراق ضد متجر PortSwigger's Gin & Juice (تطبيق ضعيف عن قصد):
يظهر التقرير مخرجات AutoPentest ضد هدف حقيقي مع 23 نتيجة عبر جميع مستويات الخطورة:
### مثال لاكتشاف (SQL Injection)
من التقرير — اكتشاف SQL Injection حرج مع أدلة استغلال كاملة:```
FINDING-017: SQL Injection in /catalog category parameter — Full Data Extraction
Severity: Critical
WSTG Reference: WSTG-INPV-05
The category parameter is vulnerable to UNION-based SQL injection.
The attacker can:
1. Inject a single quote to cause a 500 error (confirming injection)
2. Use UNION SELECT with 8 columns to extract arbitrary data
3. Enumerate tables: PRODUCTS, TRACKING, USERS
4. Extract credentials from the USERS table
Evidence (reproducible curl command):
curl -sk "https://ginandjuice.shop/catalog?category='+UNION+SELECT+1,USERNAME,PASSWORD,
1,1,USERNAME,1,USERNAME+FROM+USERS+LIMIT+10--"
كل نتيجة تتضمن أوامر curl قابلة للتكرار، والأدلة الكاملة للطلب/الاستجابة، وتوجيهات علاجية قابلة للتنفيذ.
اختبارات الاختراق القائمة على التهيئة تتجاوز الأسئلة التفاعلية وتضمن الاتساق:```yaml target: url: https://app.example.com scope: [app.example.com, api.example.com]
authentication: login_type: sso # form | sso | api | manual | none login_url: https://app.example.com/login credentials: username: testuser password: secret123 sso: provider: keycloak # keycloak | auth0 | okta | azure_ad auth_domain: auth.example.com realm: myrealm client_id: my-app
rules: avoid: - { type: path, url_path: "/logout", description: "Skip logout" } - { type: endpoint, method: DELETE, url_path: "/api/admin/*", description: "No destructive admin ops" } focus: - { type: path, url_path: "/api", description: "Prioritize API" }
reporting: tester_name: "Security Team"
### تكوين خادم MCP
يقوم ملف `.mcp.json` بتسجيل خادمي MCP:```json
{
"mcpServers": {
"wstg-pentest": {
"command": "uv",
"args": ["--directory", "./server", "run", "server.py"]
},
"playwright": {
"command": "npx",
"args": ["-y", "@playwright/mcp"]
}
}
}
للمراقبة السلبية لحركة المرور عبر Burp Suite Professional:
0.0.0.0:8080)host.docker.internal:8080يتمتع AutoPentest بدعم من الدرجة الأولى للتطبيقات ذات النطاقات المتعددة (مثل واجهة أمامية لتطبيق SPA + خلفية API + مزود SSO):
خلال المرحلة 0، يكتشف AutoPentest المصادقة عبر النطاقات من خلال متابعة إعادة توجيه تسجيل الدخول:``` app.example.com → redirects to → auth.example.com/login → after login → app.example.com/callback
يتم تسجيل جميع النطاقات تلقائيًا في النطاق مع نوعها (تطبيق، موفر مصادقة، واجهة برمجة تطبيقات، شبكة توصيل محتوى).
### الاختبار لكل نطاق
يتم تقييم كل اختبار من اختبارات WSTG لكل نطاق — وليس فقط النطاق الأساسي:
- أدوات الاكتشاف (katana, ffuf, nuclei) تعمل ضد **جميع** النطاقات
- أدوات التحقق من صحة الإدخال (sqlmap, dalfox) تستهدف نقاط النهاية على **كل** نطاق يحتوي على معالجة من جانب الخادم
- يكون الاختبار "غير قابل للتطبيق" فقط عندما **لا** يحتوي أي نطاق على الميزة المختبرة
### المصادقة عبر النطاقات
بروتوكولات الدخول الموحد (SSO) المدعومة:
- **OAuth 2.0 / OIDC** (رمز التفويض، PKCE، منح كلمة المرور، بيانات اعتماد العميل)
- **SAML** (تدفق بدأه مقدم الخدمة)
- **Keycloak**، **Auth0**، **Okta**، **Azure AD**
- **دخول موحد مخصص** (متابعة سلسلة إعادة التوجيه مع حاوية الكوكيز)
إجراء تصعيد المصادقة (6 مستويات) يضمن إمكانية المتابعة في الاختبار حتى مع تدفقات المصادقة المعقدة.
---
## استعادة التعطل
صُمم AutoPentest لتحمل الانقطاعات:
### نقاط التفتيش التلقائية
- تقوم بوابات المرحلة تلقائيًا بحفظ نقاط التفتيش عند النجاح
- تنشئ `git_checkpoint()` لقطات git لمساحة عمل الاشتباك
- السجلات المُلحقة فقط (`findings.md`, `progress.log`) تنجو من الأعطال
### الاستئناف التلقائي عبر resume-prompt.md (موصى به)
تقوم كل نقطة تفتيش وبوابة مرحلة تلقائيًا بإنشاء `engagements/<eid>/resume-prompt.md` — وهو موجه كامل ومكتفي بذاته يحتوي على كل ما تحتاجه جلسة جديدة:
- عنوان الهدف، وبيانات اعتماد المصادقة، ونطاقات النطاق
- المرحلة الحالية وأي اختبارات محددة متبقية (دقة في منتصف المرحلة)
- حالة حاوية الكوكيز وتعليمات إعادة المصادقة
- قواعد التجنب/التركيز ومراجع خريطة نقطة النهاية
**للاستئناف بعد انقطاع:**
1. افتح جلسة Claude Code جديدة
2. الصق محتويات `engagements/<eid>/resume-prompt.md`
3. يستأنف Claude من حيث توقف تمامًا — لا حاجة لسياق يدوي
### الاستئناف من نقطة التفتيش (بديل)```
Resume engagement pentest-2026-02-11-myapp
يستعيد هذا:
احفظ في أي وقت:``` Save a checkpoint before starting Phase 4 exploitation
### التراجع عند الفشل
إذا أنتجت مرحلة نتائج سيئة، تراجع إلى نقطة التحقق السابقة:```
Roll back the engagement to the last checkpoint
autopentest-ai/ ├── CLAUDE.md # Master pentest workflow (drives Claude Code) ├── .mcp.json # MCP server configuration ├── Dockerfile # Multi-stage Docker build (27 tools) ├── docker-compose.yml # Docker Compose alternative ├── Makefile # setup, start, stop, verify-tools, shell │ ├── server/ │ ├── server.py # FastMCP server (68+ MCP tools) │ ├── task_tree.py # Hierarchical task tree (6 MCP tools) │ ├── tool_parsers.py # Tool output parsing (2 MCP tools, 13 parsers) │ ├── endpoint_priority.py # Endpoint risk prioritization (2 MCP tools) │ ├── waf_evasion.py # Adaptive WAF evasion (3 MCP tools, 12 vendors) │ ├── knowledge_graph.py # Cross-phase knowledge graph (5 MCP tools) │ ├── tool_verification.py # CLI tool results verification (1 MCP tool, 10 validators) │ ├── context_compression.py # Progressive context compression (2 MCP tools) │ └── pyproject.toml # Python dependencies │ ├── knowledge-base/ │ ├── web-security-testing-guide/ # OWASP WSTG knowledge base (109 test procedures) │ │ ├── 01-information-gathering/ # 10 tests (WSTG-INFO-01 → 10) │ │ ├── 02-configuration/ # 14 tests (WSTG-CONF-01 → 14) │ │ ├── 03-identity-management/ # 5 tests (WSTG-IDNT-01 → 05) │ │ ├── 04-authentication/ # 11 tests (WSTG-ATHN-01 → 11) │ │ ├── 05-authorization/ # 5 tests (WSTG-ATHZ-01 → 05) │ │ ├── 06-session-management/ # 11 tests (WSTG-SESS-01 → 11) │ │ ├── 07-input-validation/ # 20 tests (WSTG-INPV-01 → 20) │ │ ├── 08-error-handling/ # 2 tests (WSTG-ERRH-01 → 02) │ │ ├── 09-cryptography/ # 4 tests (WSTG-CRYP-01 → 04) │ │ ├── 10-business-logic/ # 10 tests (WSTG-BUSL-01 → 10) │ │ ├── 11-client-side/ # 14 tests (WSTG-CLNT-01 → 14) │ │ └── 12-api-testing/ # 3 tests (WSTG-APIT-01 → 03) │ └── portswigger-academy/ # 31 PortSwigger attack technique guides │ ├── sql-injection.md # UNION, blind, error-based, OOB, WAF bypass │ ├── cross-site-scripting.md # Reflected, stored, DOM, CSP bypass, filter evasion │ ├── ssrf.md # URL schemes, cloud metadata, DNS rebinding │ ├── ssti.md # Jinja2, Twig, Freemarker sandbox escapes │ ├── jwt.md # Algorithm confusion, kid injection, JWK exploitation │ ├── oauth.md # Auth code theft, redirect exploitation, scope upgrade │ └── ... (31 total) # One per vulnerability class │ ├── templates/ # Testing guides and procedures │ ├── input-validation-guide.md # Phase 4 step-by-step procedures │ ├── testing-strategies.md # Test matrices, chaining, parallel strategy │ ├── cli-tools-guide.md # Tool setup and Docker management │ ├── tools.md # Per-tool command reference │ ├── quality-gates.md # Phase quality checklists and anti-patterns │ ├── cross-domain-auth-guide.md # SSO/OIDC/SAML procedures │ ├── source-code-analysis.md # Security-focused code review template │ ├── pipelined-testing.md # Phase 4 pipelined exploitation strategy │ ├── agent-roles/ # Role-specialized subagent templates │ │ ├── README.md # Role index and selection guide │ │ ├── scout.md # Reconnaissance role (Phase 0-1) │ │ ├── analyzer.md # Vulnerability discovery role (Phase 2-5) │ │ ├── exploiter.md # Exploitation proof role (Phase 4) │ │ └── reporter.md # QA review + Final Judge role │ ├── shared/ │ │ ├── honesty-framework.md # Anti-hallucination guardrails │ │ ├── exploit-classification.md # Three-tier finding classification │ │ ├── reproducibility.md # Evidence format requirements │ │ └── scope-rules.md # Avoid/focus rule templates │ └── wordlists/ # Tech-specific fuzzing wordlists │ ├── benchmarks/ │ └── xbow/ # XBOW benchmark suite (104 CTF challenges) │ ├── runner.py # Challenge orchestration │ ├── solver.py # Automated solver (Claude Code CLI) │ ├── Makefile # solve, solve-all, score, compare │ └── results/ # Run reports │ ├── docs/ │ ├── ROADMAP.md # Competitive analysis + improvement roadmap │ └── adding-knowledge-base-resources.md # Guide for adding new technique guides │ ├── configs/ │ ├── example-config.yaml # Example engagement configuration │ └── config-schema.md # YAML schema documentation │ ├── scripts/ │ ├── install-tools.sh # Docker build + container start │ ├── browser-auth.py # Headless Chromium auth (JS-rendered logins) │ ├── pkce-auth.py # OAuth 2.0 PKCE flow automation │ └── status.sh # Engagement status dashboard │ └── engagements/ # Runtime output (git-ignored) └── / ├── logs.txt # Live engagement log (tail -f to watch) ├── findings.md # Append-only findings log ├── progress.log # Timestamped event log ├── resume-prompt.md # Auto-resume prompt (paste into new session) ├── report.md # Final pentest report ├── cookies.txt # Cross-domain cookie jar └── tool-output/ # Raw CLI tool outputs
---
## المتطلبات
| المتطلب | الإصدار | ملاحظات |
|---------|---------|---------|
| Docker | 20.10+ | Docker Desktop على macOS/Windows |
| Claude Code | الأحدث | `npm install -g @anthropic-ai/claude-code` |
| uv | 0.1+ | `curl -LsSf https://astral.sh/uv/install.sh \| sh` |
| Node.js | 18+ | لخادم Playwright MCP |
| Python | 3.10+ | تُدار بواسطة uv (لا حاجة للتثبيت اليدوي) |
| Burp Suite Pro | الأحدث | **اختياري** — لمراقبة حركة المرور السلبية |
**الأنظمة المدعومة:** macOS (Apple Silicon و Intel)، Linux (x86_64 و ARM64)
---
## الأسئلة الشائعة
**س: هل يحل هذا محل المُختبِر الاختراقي البشري؟**
لا. يقوم AutoPentest بأتمتة الأجزاء المنهجية والقائمة على الإجراءات من اختبار الاختراق. يتميز بالتغطية (ضمان عدم إغفال أي شيء) والاتساق (كل اختبار يتبع نفس الإجراء). ومع ذلك، لا يزال المنطق التجاري المعقد وسلاسل الاستغلال الإبداعية وتقييم المخاطر المعتمد على السياق بحاجة إلى خبرة بشرية. اعتبره مضاعفًا للقوة.
**س: كم تستغرق التقييمات الكاملة؟**
يعتمد ذلك على حجم التطبيق وتعقيده. يستغرق تطبيق ويب نموذجي متوسط الحجم (50-100 نقطة نهاية) بضع ساعات. التطبيقات متعددة النطاقات مع SSO تستغرق وقتًا أطول. تعمل بنية المرحلة 4 المتدفقة على موازاة الاختبارات الأكثر استهلاكًا للوقت.
**س: هل يمكنني تشغيل هذا بدون Burp Suite؟**
نعم. Burp Suite اختياري ويُستخدم فقط لمراقبة حركة المرور السلبية. جميع طلبات HTTP تمر عبر `docker exec curl` وجميع أدوات الأمان تعمل داخل حاوية Docker. بدون Burp، ستفقد القدرة على مراجعة حركة المرور في سجل الوكيل الخاص به، لكن جميع وظائف الاختبار تعمل.
**س: ما هي أدلة تقنيات PortSwigger؟**
31 دليلًا مرجعيًا للهجوم تغطي الاكتشاف، وتقنيات الاستغلال، والحمولات، وأوراق الغش، وأنماط تجاوز جدار الحماية — مأخوذة من أكاديمية أمان الويب PortSwigger. أثناء الاختبار، تقوم العوامل تلقائيًا بتحميل الدليل ذي الصلة (مثل دليل SQLi عند اختبار حقن SQL) للرجوع إلى التقنيات والحمولات الشاملة. راجع [`docs/adding-knowledge-base-resources.md`](https://github.com/bhavsec/autopentest-ai/blob/HEAD/docs/adding-knowledge-base-resources.md) لإضافة أدلتك الخاصة.
**س: كيف يمكنني إضافة قوائم كلمات أو حمولات مخصصة؟**
ضع قوائم الكلمات في `templates/wordlists/` وستكون متاحة داخل حاوية Docker من خلال التثبيت الحجمي. يمكن أيضًا تخصيص ملفات اختبار WSTG في `knowledge-base/` بحمولات إضافية. لإضافة أدلة تقنيات هجوم جديدة، اتبع التعليمات في [`docs/adding-knowledge-base-resources.md`](https://github.com/bhavsec/autopentest-ai/blob/HEAD/docs/adding-knowledge-base-resources.md).
**س: هل يمكنني اختبار التطبيقات خلف VPN؟**
نعم. ترث حاوية Docker شبكة المضيف (على Linux باستخدام `--network host`) أو تصل إلى المضيف عبر `host.docker.internal` (على macOS/Windows). إذا كان VPN قيد التشغيل على المضيف، يمكن للحاوية الوصول إلى الأهداف المحمية بـ VPN.
**س: ماذا يحدث إذا توقف اختبار الاختراق (تعطل، حد استخدام، مهلة زمنية)؟**
يقوم AutoPentest تلقائيًا بإنشاء ملف `resume-prompt.md` عند كل نقطة تفتيش يحتوي على كل ما يلزم للمتابعة. افتح جلسة جديدة من Claude Code، والصق محتوى `engagements/<eid>/resume-prompt.md`، وسيستأنف الاختبار من حيث توقف تمامًا — بما في ذلك التقدم في منتصف المرحلة، وبيانات الاعتماد، والنطاق، والاختبارات المتبقية.
**س: ماذا عن تحديد المعدل؟**
يشمل AutoPentest تصنيف أخطاء من ثلاث طبقات (عابر/تحديد معدل/دائم) مع تراجع تلقائي. إذا حدد الهدف المعدل للطلبات، فستتباطأ الأدوات تلقائيًا. يمكنك أيضًا تعيين قواعد التجنب في التكوين لتخطي نقاط نهاية محددة.
**س: ما هي أدوار العامل؟**
يستخدم AutoPentest 4 أدوار متخصصة (كشاف، محلل، مستغل، مبلغ) بدلاً من العوامل الفرعية العامة. كل دور له قالب مطالبة مخصص مع إرشادات أدوات مركزة، وقوائم أدوات مقيدة، وأنماط مضادة. يمنع ذلك العوامل من الخلط بين الاستطلاع والتحليل والاستغلال وإعداد التقارير — مما يحسن التركيز وعزل الفشل. راجع [`templates/agent-roles/README.md`](https://github.com/bhavsec/autopentest-ai/blob/HEAD/templates/agent-roles/README.md) لفهرس الأدوار الكامل.
**س: كيف يعمل التهرب من جدار الحماية؟**
عندما يتم حظر حمولة (403، صفحة حظر)، يقوم AutoPentest تلقائيًا ببصمة بائع جدار الحماية بناءً على خصائص الاستجابة، ثم يقوم بتحميل حمولات تجاوز خاصة بالبائع منظمة حسب مستوى التعقيد. 12 بائعًا مدعومون (Cloudflare, AWS WAF, Akamai, Imperva, ModSecurity, F5، والمزيد). تتم مشاركة معلومات جدار الحماية عبر جميع العوامل عبر نظام التسليم.
**س: ما هو التحليل المعاكس للوقائع؟**
بعد تمرير التحليل الأول الذي يكتشف الثغرات، يمكن لـ AutoPentest إنتاج محلل ثانٍ يفترض أن جميع الثغرات المعروفة قد تم إصلاحها. يجبر ذلك العامل على البحث عن نواقل هجوم مختلفة — نقاط نهاية مختلفة، وسائط، وسياقات حقن، وعيوب منطقية. يتم دمج النتائج في قائمة الاستغلال الحالية مع إزالة التكرار التلقائي. تستند هذه التقنية إلى بحث أكاديمي (دراسة استئصال PenHeal) تظهر تحسنًا في تغطية الثغرات بنسبة +71%.
**س: كيف يعمل التحقق من النتائج؟**
عندما تنتج أدوات CLI (nmap, nuclei, sqlmap، إلخ) مخرجات فارغة أو مشبوهة، تكتشف أداة `verify_tool_result()` المشكلات الشائعة (أخطاء الوكيل، رفض الإذن، علامات خاطئة) وتقترح أوامر مصححة. يمنع ذلك العوامل من عد تشغيلات الأدوات المعطلة بصمت على أنها "مكتملة" — وهو نمط فشل شائع في اختبار الاختراق الآلي.
**س: كيف يعمل ربط الثغرات؟**
يتتبع الرسم البياني المعرفي الكيانات (نقاط النهاية، الوسائط، النتائج، ملفات تعريف الارتباط، النطاقات) والعلاقات المكتشفة أثناء الاختبار. بعد المرحلة 4، تستخدم `find_chains()` البحث الأول بالعرض لاكتشاف مسارات الهجوم متعددة القفزات وتتحقق من 7 أنماط سلسلة محددة مسبقًا (مثل XSS + عدم وجود CSP، SSRF + بيانات تعريف السحابة، IDOR + دور المسؤول). السلاسل التي تزيد من التأثير تؤدي إلى ترقيات تلقائية لدرجة الخطورة.
---
## إخلاء مسؤولية
**هذه الأداة مخصصة لاختبار الأمان المصرح به فقط.** استخدم AutoPentest فقط ضد التطبيقات التي لديك إذن صريح باختبارها. الوصول غير المصرح به إلى أنظمة الكمبيوتر غير قانوني. المؤلفون ليسوا مسؤولين عن أي إساءة استخدام لهذه الأداة.
تأكد دائمًا من حصولك على:
- تفويض كتابي من مالك التطبيق
- نطاق محدد بوضوح لما يمكن وما لا يمكن اختباره
- فهم لبيئة الاختبار (إنتاجية مقابل اختبارية)
- قواعد تجنب مناسبة لنقاط النهاية التدميرية أو الحساسة
---
<p align="center">
مبني باستخدام <a href="https://modelcontextprotocol.io">Model Context Protocol</a>
</p>
| القدرة | اختبار الاختراق اليدوي | الماسح الآلي | AutoPentest |
|---|
| تغطية كاملة لـ OWASP WSTG | يعتمد على المختبر | جزئي | 109 اختبارًا |
| اختبار منطق الأعمال | نعم | لا | نعم |
| الاستغلال متعدد الخطوات | نعم | محدود | نعم |
| ربط الثغرات | نعم | لا | نعم |
| النتائج المبنية على الأدلة | نعم | مخرجات قوالب | أوامر curl قابلة للتكرار |
| جودة متسقة | متفاوتة | نعم | بوابات المراحل + القاضي النهائي |
| السرعة | أيام | دقائق | ساعات |
| المصادقة عبر النطاقات (SSO/OIDC) | إعداد يدوي | تفشل عادةً | معالجة آلية |
| فئة الثغرة | الحد الأدنى للتقنيات | الحد الأدنى لمحاولات التجاوز |
|---|
| XSS | 3 | 5 |
| حقن SQL | 3 | 5 |
| حقن الأوامر | 3 | 5 |
| SSTI | 2 | 3 |
| SSRF | 3 | 5 |
| اجتياز المسار | 3 | 5 |
| الخطورة | العدد | أمثلة |
|---|
| حرج | 2 | حقن SQL قائم على UNION مع استخراج كامل للبيانات، تجاوز التحكم بالوصول عبر رأس X-Original-URL |
| عالي | 5 | XSS منعكسة عبر تجاوز هروب السلسلة النصية في JS، IDOR على تفاصيل الطلب، XXE مع قراءة ملف محلي، DOM XSS عبر تلوث النموذج الأولي |
| متوسط | 6 | رؤوس أمان مفقودة، لا قفل للحساب، CSP مفقود، حقن CRLF، إعادة توجيه مفتوحة قائمة على DOM |
| منخفض | 5 | كشف معلومات البنية التحتية، AngularJS منتهية الدعم، ملفات تعريف الارتباط ALB غير آمنة، تكوين TLS ضعيف |
| معلوماتي | 5 | تكرارات مدمجة وأدلة ثانوية للنتائج الأساسية |