Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

الخلاصاتاتصالالخصوصية© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
prescryb — خادم MCP لتنسيق معالجة CVE/الإعدادات: جرد SSH، واستعلامات OSV/NVD، واقتراحات Ansible playbook المرتبطة بمعايير CIS/DISA STIG. | Kitploit
أدوات/GitHubGitHub/konstruktoid/prescryb
أدوات دفاعيةتحليل الثغرات الأمنيةتدقيق التكوينجمع المعلوماتDevSecOpsاستخبارات التهديداتأمن الذكاء الاصطناعي
GitHubkonstruktoid/prescryb

prescryb

خادم MCP لتنسيق معالجة CVE/الإعدادات: جرد SSH، واستعلامات OSV/NVD، واقتراحات Ansible playbook المرتبطة بمعايير CIS/DISA STIG.

عرض المستودع
127منذ يوم واحدلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

prescryb - منسّق معالجة

راجع OVERVIEW.md للحصول على وصف عام لغرض المستودع ومكوّناته ونطاقه قبل إجراء تغييرات سلوكية.

منسّق معالجة، يُعرض كخادم MCP. اتصل بعميل MCP (Claude Desktop أو Claude Code أو ما شابه) وقدّم طلبًا باللغة الطبيعية، على سبيل المثال:

سجّل الدخول إلى المضيف a.b.c، وافحص الحزم المثبّتة، وابحث عن CVEs، واقترح إصلاحًا - Ansible إن أمكن، وأخبرني بضوابط الامتثال التي يرتبط بها.

يوفّر prescryb العناصر الأساسية (جرد SSH، ومطابقة CVE، والبحث المباشر في الاستشارات، وربط موضوعات الامتثال، وتوليد ملفات Ansible playbook). النموذج المتصل هو من يقوم بالاستدلال: أي النتائج مهمة، وأي CVEs يجب التعمق فيها، وأي playbook يجب توليده. لا يطبّق prescryb أي شيء على المضيف الهدف أبدًا - فكل أداة إما للقراءة فقط تجاهه، أو لتوليد نص/بيانات خالص.

كيف يعمل

الأداةما تفعله
inventory_host(host, user="", port=22, hostname="", identity_file="", trust_unknown_host=False)الاتصال عبر SSH، واكتشاف التوزيعة، وسرد الحزم المثبّتة مع إصداراتها.
check_cves(system, packages)مطابقة دفعات من إصدارات الحزم مقابل OSV.dev باستخدام مقارنة الإصدارات الواعية بالنظام البيئي (وليس المطابقة بالاسم فقط). تُثرى كل مطابقة بدرجة احتمالية الاستغلال EPSS.
fetch_advisory(cve_id)جلب سجل NVD الحالي لـ CVE واحد - الوصف، وCVSS، وCWE، والمراجع - مباشرةً، وليس من بيانات التدريب.
fetch_epss(cve_ids)جلب دفعات من درجات احتمالية الاستغلال EPSS لمعرّفات CVE غير المشمولة بالفعل بواسطة check_cves (مثلًا من fetch_advisory أو بحث ويب).
map_compliance(area)ربط موضوع نصي حر ("ssh"، "sudo"، "kernel modules"، ...) بمجالات موضوعات CIS/DISA STIG، وإن وُجد في مستودع GitHub konstruktoid.hardening، الدور المطابق - إضافةً إلى تقنيات MITRE ATT&CK والتخفيفات التي يعالجها ذلك المجال.
lookup_cce(target, keyword, cce_id)البحث عن مدخلات NIST CCE (Common Configuration Enumeration) لمنصة ما (مثل "rhel8")، مصدرها تحويل JSON المجتمعي في konstruktoid/cce-web.
list_cce_targets()سرد كل منصة يمكن لـ lookup_cce الاستعلام عنها.
list_local_docs()سرد المستندات (Markdown/نص/PDF) الموجودة تحت LOCAL_DOCS_DIR المحلي المستبعد من git.
search_local_docs(query, top_k=5)بحث دلالي بنمط RAG عبر تلك المستندات المحلية، مضمّن بالكامل على الجهاز.
generate_playbook(system, cve_matches, compliance_areas, hosts_alias)توليد Ansible playbook للالاقتراح فقط: تتحول إصلاحات CVE إلى مهام ترقية حزم، وتتحول مجالات الامتثال إلى مراجع roles:.

التدفق النموذجي: inventory_host، ثم check_cves على الحزم المُعادة، ثم اختياريًا fetch_advisory على CVEs المثيرة للاهتمام، ثم map_compliance (وlookup_cce) لأي مجالات إعدادات غير آمنة تُلاحظ، ثم اختياريًا search_local_docs للحصول على سياق داخلي ذي صلة من دليل التشغيل/السياسات، ثم generate_playbook لإنتاج شيء يمكن مراجعته.

flowchart TD
    U["Operator: natural-language request"] --> M["Connected model\n(Claude Desktop / Claude Code)"]
    M --> A["inventory_host\nSSH in, list packages"]
    A --> B["check_cves\nOSV.dev match + EPSS score"]
    B --> C{"Interesting\nCVE?"}
    C -->|yes| D["fetch_advisory\nNVD detail for one CVE"]
    C -->|no| E
    D --> E["map_compliance / lookup_cce\nCIS/DISA STIG + ATT&CK mapping"]
    E --> F["search_local_docs\ninternal runbooks (optional)"]
    F --> G["generate_playbook\nsuggest-only Ansible playbook"]
    G --> H["Model reasons over the results\nand presents findings + playbook"]
    H --> R["Operator reviews\n(ansible-playbook --check --diff)\nand applies manually"]

    style R fill:#f9f,stroke:#333,stroke-width:1px

فقط صناديق الأدوات هي prescryb: inventory_host، وcheck_cves، وfetch_advisory، وmap_compliance/lookup_cce، وsearch_local_docs، و generate_playbook - كل منها استدعاء بحث للقراءة فقط أو توليد نص/بيانات خالص. المشغّل والنموذج المتصل ليسا جزءًا من prescryb، ولا شيء في هذه السلسلة يمس المضيف الهدف بما يتجاوز جلسة SSH للقراءة فقط الخاصة بـ inventory_host - فتطبيق دليل التشغيل المولّد خطوة متعمّدة ومنفصلة يتخذها المشغّل خارج prescryb.

التثبيت

uv sync

التسجيل باستخدام عميل MCP

Claude Code:

claude mcp add prescryb -- uv --directory /path/to/prescryb run prescryb

Claude Desktop (claude_desktop_config.json):

{
  "mcpServers": {
    "prescryb": {
      "command": "uv",
      "args": ["--directory", "/path/to/prescryb", "run", "prescryb"]
    }
  }
}

نموذج مصادقة SSH

لا يقبل inventory_host أبدًا وسيط كلمة مرور. يمكن للعملاء تسجيل وسائط استدعاء أدوات MCP وهي مرئية للنموذج المتصل، لذا يجب ألا تمر بيانات الاعتماد عبرها إطلاقًا. تعمل المصادقة تمامًا كما لو كنت تشغّل ssh host بنفسك:

  • يتم استخراج المضيف/المستخدم/المنفذ/ملفات الهوية من ~/.ssh/config.
  • تأتي المفاتيح من وكيل SSH أو من ملفات الهوية الافتراضية.
  • تتجاوز وسائط hostname/identity_file الخاصة بـ inventory_host العنوان/مسار المفتاح المستخرجين مباشرةً، وذلك للمضيفات التي لا ترغب في إضافتها إلى ~/.ssh/config (يُمرَّر المسار فقط، وليس محتويات المفتاح أبدًا).
  • تُرفض مفاتيح المضيفين غير المعروفة rejected ما لم تمرّر trust_unknown_host=True
    • يُفضَّل تشغيل ssh host يدويًا مرة واحدة لتثبيت المفتاح بدلًا من ذلك.

مثال: تشغيل claude مقابل أجهزة QEMU الافتراضية الخاصة بالمستودع

يشغّل qemu/vm.sh صورة سحابية (almalinux10، trixie، resolute) تحت QEMU مع بذرة cloud-init وإعادة توجيه منفذ SSH على 127.0.0.1 (2201، 2202، 2203). يحتاج إلى qemu-system-x86_64 وqemu-img وcloud-localds (cloud-image-utils) وcurl وssh؛ ويُستخدم KVM عندما يكون /dev/kvm قابلًا للكتابة. يتم التحقق من الصور عبر checksum وتخزينها مؤقتًا في qemu/.state/.

qemu/vm.sh up trixie
qemu/vm.sh ssh trixie true   # retry until the guest answers
claude 'inventory 127.0.0.1 port 2202 user prescryb with identity file
qemu/.state/id_ed25519 (trust_unknown_host is fine, it is a throwaway VM),
check any vulnerabilities and suggest a fix, include compliance mapping if
possible, write the playbook suggestion to /tmp/ and print the file location'
qemu/vm.sh destroy trixie

مثال: فحص مضيف عادي

بالنسبة لمضيف يمكن الوصول إليه بالفعل عبر ssh (يُحلّ من خلال ~/.ssh/config، أو مفتاح وكيل، أو ملف الهوية الافتراضي)، حدّد اسم المضيف مباشرةً؛ لا حاجة إلى إعداد المنفذ أو ملف الهوية:

Inventory prod-web-01، افحص الحزم المثبّتة، وابحث عن CVEs، واقترح إصلاحًا - Ansible إن أمكن، وأخبرني بضوابط الامتثال التي يُطابقها.

إذا لم يكن المضيف موجودًا في ~/.ssh/config بعد، فأضف كتلة Host أو مرّر user/port/hostname/identity_file مباشرةً إلى inventory_host لاتصال لمرة واحدة - كما في مثال molecule أدناه.

مثال: فحص نسخة اختبار molecule

molecule converge -s default

ابحث عن ssh_port/ssh_user من إدخال المنصة molecule.yml الخاص بذلك السيناريو (مثل ssh_port: 22201، وssh_user: almalinux لمنصة almalinux10) والمفتاح الخاص الذي يستخدمه molecule login للاتصال - إما بإضافة كتلة Host إلى ~/.ssh/config، أو بتخطي الملف كليًا وتمريرهما مباشرةً إلى inventory_host لاتصال مؤقت لمرة واحدة:

Inventory 127.0.0.1، المنفذ 22201، المستخدم almalinux، identity_file /path/to/molecule's/generated/key، تحقق من الحزم المثبّتة، وابحث عن CVEs، واقترح إصلاحًا - Ansible إن أمكن، وأخبرني بضوابط الامتثال التي يُعيّنها إليها.

شغّل molecule destroy -s default عند الانتهاء؛ فلن يقوم prescryb بذلك نيابةً عنك، ولن يمسّ المثيل بأي شيء يتجاوز قراءته.

تعيين الامتثال

يُسمّي map_compliance مجالات الموضوعات (مثل "SSH Server Configuration")، وإن وُجد في مستودع GitHub ‏konstruktoid/ansible-collection-hardening، فرابطًا إلى دور Ansible الذي ينفّذها.

افتراضيًا يستعلم من GitHub API مقابل konstruktoid/ansible-collection-hardening. يمكن تجاوز ذلك عبر:

export HARDENING_COLLECTION_REPO=owner/repo
تنزيل الأداة