Skip to content
KitploitKITPLOIT
उपकरणएक्सप्लॉइटब्लॉग
Log in
जमा करें
उपकरणएक्सप्लॉइटब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

फ़ीडसंपर्कगोपनीयता© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
prescryb — CVE/कॉन्फ़िग रेमेडिएशन ऑर्केस्ट्रेशन के लिए MCP सर्वर: SSH इन्वेंटरी, OSV/NVD लुकअप, CIS/DISA STIG-मैप्ड Ansible प्लेबुक सुझाव। | Kitploit
उपकरण/GitHubGitHub/konstruktoid/prescryb
रक्षात्मक उपकरणभेद्यता विश्लेषणकॉन्फ़िगरेशन ऑडिटिंगजानकारी एकत्र करनाDevSecOpsखतरा खुफियाAI सुरक्षा
GitHubkonstruktoid/prescryb

prescryb

CVE/कॉन्फ़िग रेमेडिएशन ऑर्केस्ट्रेशन के लिए MCP सर्वर: SSH इन्वेंटरी, OSV/NVD लुकअप, CIS/DISA STIG-मैप्ड Ansible प्लेबुक सुझाव।

रिपॉजिटरी देखें
1331 दिन पहलेअभी तक समीक्षित नहीं

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

prescryb - एक उपचार ऑर्केस्ट्रेटर

व्यवहार संबंधी परिवर्तन करने से पहले रिपॉज़िटरी के उद्देश्य, घटकों और दायरे के उच्च-स्तरीय विवरण के लिए OVERVIEW.md देखें।

एक उपचार ऑर्केस्ट्रेटर, जो MCP सर्वर के रूप में उपलब्ध है। एक MCP क्लाइंट (Claude Desktop, Claude Code, या समान) कनेक्ट करें और प्राकृतिक भाषा में अनुरोध सबमिट करें, उदाहरण के लिए:

होस्ट a.b.c में लॉग इन करें, इंस्टॉल किए गए पैकेज जांचें, CVE खोजें, और एक समाधान सुझाएं - यदि संभव हो तो Ansible, और बताएं कि यह किन अनुपालन नियंत्रणों से मैप होता है।

prescryb प्राथमिक इकाइयाँ (primitives) प्रदान करता है (SSH इन्वेंटरी, CVE मिलान, लाइव एडवाइज़री लुकअप, अनुपालन-विषय मैपिंग, Ansible प्लेबुक रेंडरिंग)। कनेक्टेड मॉडल तर्क करता है: कौन-से निष्कर्ष मायने रखते हैं, किन CVE में गहराई से जाना है, कौन-सी प्लेबुक जनरेट करनी है। prescryb लक्ष्य होस्ट पर कभी कुछ लागू नहीं करता - प्रत्येक टूल उसके विरुद्ध केवल-पठन (read-only) है, या शुद्ध टेक्स्ट/डेटा जनरेशन है।

यह कैसे काम करता है

टूलयह क्या करता है
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)एक CVE के लिए वर्तमान NVD रिकॉर्ड प्राप्त करें - विवरण, CVSS, CWE, संदर्भ - लाइव, प्रशिक्षण डेटा से नहीं।
fetch_epss(cve_ids)उन CVE IDs के लिए EPSS शोषण-संभाव्यता स्कोर बैच-प्राप्त करें जो पहले से check_cves द्वारा कवर नहीं किए गए हैं (जैसे fetch_advisory या वेब खोज से)।
map_compliance(area)एक मुक्त-पाठ विषय ("ssh", "sudo", "kernel modules", ...) को CIS/DISA STIG विषय क्षेत्रों से मैप करें और, यदि konstruktoid.hardening GitHub रिपॉज़िटरी में मौजूद हो, तो मिलान करने वाली भूमिका से - साथ ही उस क्षेत्र द्वारा संबोधित MITRE ATT&CK तकनीकों और शमन उपायों से।
lookup_cce(target, keyword, cce_id)एक प्लेटफ़ॉर्म (जैसे "rhel8") के लिए NIST CCE (Common Configuration Enumeration) प्रविष्टियाँ खोजें, जो konstruktoid/cce-web पर सामुदायिक JSON रूपांतरण से प्राप्त हैं।
list_cce_targets()प्रत्येक प्लेटफ़ॉर्म की सूची बनाएं जिसे lookup_cce क्वेरी कर सकता है।
list_local_docs()स्थानीय, gitignored LOCAL_DOCS_DIR के अंतर्गत पाए गए दस्तावेज़ों (Markdown/text/PDF) की सूची बनाएं।
search_local_docs(query, top_k=5)उन स्थानीय दस्तावेज़ों पर RAG-शैली की सिमेंटिक खोज, पूरी तरह से मशीन पर एम्बेडेड।
generate_playbook(system, cve_matches, compliance_areas, hosts_alias)एक केवल-सुझाव Ansible प्लेबुक रेंडर करें: CVE समाधान पैकेज-अपग्रेड कार्य बन जाते हैं, अनुपालन क्षेत्र roles: संदर्भ बन जाते हैं।

सामान्य प्रवाह: inventory_host, फिर लौटाए गए पैकेजों पर check_cves, फिर वैकल्पिक रूप से रोचक CVE पर fetch_advisory, फिर किसी भी असुरक्षित-कॉन्फ़िग क्षेत्र के लिए 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 का हिस्सा नहीं हैं, और इस श्रृंखला में कुछ भी inventory_host के रीड-ओनली SSH सत्र से परे लक्ष्य होस्ट को स्पर्श नहीं करता - जनरेट किए गए प्लेबुक को लागू करना एक जानबूझकर, अलग कदम है जो ऑपरेटर 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 एजेंट या डिफ़ॉल्ट आइडेंटिटी फ़ाइलों से आती हैं।
  • inventory_host के hostname/identity_file आर्ग्युमेंट्स सीधे हल किए गए एड्रेस/कुंजी पथ को ओवरराइड करते हैं, उन होस्ट्स के लिए जिन्हें आप ~/.ssh/config में जोड़ना नहीं चाहते (केवल एक पथ पास किया जाता है, कभी भी कुंजी की सामग्री नहीं)।
  • अज्ञात होस्ट कुंजियाँ अस्वीकार की जाती हैं जब तक कि आप trust_unknown_host=True पास न करें
    • इसके बजाय कुंजी को पिन करने के लिए एक बार मैन्युअल रूप से ssh host चलाना बेहतर है।

उदाहरण: रिपॉज़िटरी QEMU VMs के विरुद्ध claude चलाना

qemu/vm.sh एक cloud-init seed और 127.0.0.1 पर SSH पोर्ट फ़ॉरवर्ड (2201, 2202, 2203) के साथ QEMU के अंतर्गत एक क्लाउड इमेज (almalinux10, trixie, resolute) बूट करता है। इसे qemu-system-x86_64, qemu-img, cloud-localds (cloud-image-utils), curl और ssh की आवश्यकता होती है; जब /dev/kvm लिखने योग्य हो तो KVM का उपयोग किया जाता है। इमेजेस चेकसम-सत्यापित होती हैं और 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, check installed packages, find CVEs, and suggest a fix - Ansible if possible, and tell me what compliance controls it maps to.

यदि होस्ट अभी तक ~/.ssh/config में नहीं है, तो या तो एक Host ब्लॉक जोड़ें या एक बार के कनेक्शन के लिए सीधे inventory_host को user/port/hostname/identity_file पास करें - ठीक नीचे दिए गए molecule उदाहरण की तरह।

उदाहरण: एक molecule परीक्षण इंस्टेंस का निरीक्षण करना

molecule converge -s default

उस परिदृश्य की molecule.yml प्लेटफ़ॉर्म प्रविष्टि से ssh_port/ssh_user खोजें (उदाहरण के लिए almalinux10 प्लेटफ़ॉर्म के लिए ssh_port: 22201, ssh_user: almalinux) और वह निजी कुंजी जिसका उपयोग molecule login कनेक्ट करने के लिए करता है - या तो ~/.ssh/config में एक Host ब्लॉक जोड़ें, या फ़ाइल को पूरी तरह छोड़ दें और उन्हें सीधे inventory_host को एक बार के, अस्थायी कनेक्शन के लिए पास करें:

टूल डाउनलोड करें