
Model Context Protocol server स्वायत्त भेद्यता खोज के लिए
सुरक्षा अनुसंधान ऑटोमेशन के लिए मॉडल कॉन्टेक्स्ट प्रोटोकॉल सर्वर
इनके साथ संगत:
MCPwner एक मॉडल कॉन्टेक्स्ट प्रोटोकॉल (MCP) सर्वर है जो LLM-संचालित वर्कफ़्लो में सुरक्षा परीक्षण उपकरणों को एकीकृत करता है। यह सीक्रेट स्कैनिंग, स्टैटिक एनालिसिस (SAST), सॉफ्टवेयर कम्पोज़िशन एनालिसिस (SCA), इंफ्रास्ट्रक्चर-एज़-कोड (IaC) सुरक्षा, सोर्स फ़ज़िंग, रिकॉनिसंस, डायनामिक एप्लिकेशन सिक्योरिटी टेस्टिंग (DAST), और 0-डे खोज सहित भेद्यता अनुसंधान के लिए एक एकीकृत इंटरफ़ेस प्रदान करता है।
मैन्युअल रूप से टूल्स को श्रृंखलाबद्ध करने और आउटपुट को अपने LLM में पेस्ट करने के बजाय, MCPwner परिणामों को सीधे मॉडल के कार्य संदर्भ में मानकीकृत और स्ट्रीम करता है। यह सुरक्षा अनुसंधान जीवनचक्र में निरंतर तर्क, सहसंबंध, और हमले के पथ खोज को सक्षम बनाता है - आक्रमण सतहों के मानचित्रण और ज्ञात कमजोरियों की पहचान से लेकर नए हमले के वेक्टरों की खोज तक।
नोट: यह परियोजना सक्रिय विकास के अधीन है। MCPs के बारे में अधिक जानें यहाँ।
निम्नलिखित उपकरण भविष्य के रिलीज़ के लिए योजनाबद्ध हैं।
SAST के दौरान पहचाने गए डिसेरियलाइज़ेशन सिंक को हथियार बनाने के लिए गैजेट-चेन और पेलोड जनरेटर। Java, .NET और PHP के लिए परिपक्व गैजेट-चेन इकोसिस्टम मौजूद हैं; Python को मैलिशस-पिकल जनरेशन द्वारा कवर किया गया है (Ruby/Node डिसेरियलाइज़ेशन पेलोड-आधारित है और नीचे दिए गए पेलोड कॉर्पस में शामिल है):
ऊपर दिए गए उपकरणों के लिए क्यूरेटेड पेलोड और वर्डलिस्ट कॉर्पोरा:
"Enumerate and scan example.com" → MCPwner chains: Subfinder + Amass → Masscan + Nmap → httpx → Katana + gau → ffuf + Arjun
### गिटहब रिपॉजिटरी में गुप्त सूचनाओं की स्कैन करें```
"Scan https://github.com/example/repo for secrets"
→ MCPwner runs Gitleaks, TruffleHog, detect-secrets and correlates findings
"Run a security audit on my Python project" → MCPwner runs Bandit (SAST), OSV-Scanner (SCA), and secrets scanning
### हमला पथ विश्लेषण```
"Find vulnerabilities in the authentication module"
→ MCPwner runs CodeQL queries, cross-references with secrets and SCA results
"Test for SQLi and XSS on http://localhost:8080" → MCPwner chains: sqlmap + Dalfox and verifies findings
## स्थापना
### पूर्वापेक्षाएँ
**सिस्टम आवश्यकताएँ:**
- Docker Engine 20.10+ और Docker Compose 2.0+
- न्यूनतम 8GB RAM (एकाधिक उपकरण चलाने के लिए 16GB अनुशंसित)
- 20GB मुक्त डिस्क स्थान (सुरक्षा उपकरण छवियाँ बड़ी होती हैं)
- समर्थित प्लेटफ़ॉर्म: Linux, macOS, Windows (WSL2 के साथ)
**MCP Client:**
- Claude Desktop, Cursor, Kiro, या कोई भी MCP-संगत क्लाइंट
### सेटअप
1. **रिपॉजिटरी क्लोन करें**: ```bash
git clone https://github.com/nedlir/mcpwner.git
cd mcpwner
एक बार Docker कंटेनर चल रहे हों, तो MCPwner को अपने MCP क्लाइंट में जोड़ें:
महत्वपूर्ण: गतिशील टूल पंजीकरण
MCPwner एक मॉड्यूलर, ऑप्ट-इन आर्किटेक्चर का उपयोग करता है। सुरक्षा उपकरण Docker Compose profiles द्वारा नियंत्रित होते हैं।
.env फ़ाइल (COMPOSE_PROFILES=sast,secrets,reconnaissance,dast,etc) यह निर्धारित करती है कि कौन से कंटेनर ऑनलाइन लाए जाएँ। वैकल्पिक रूप से, आप इसे ओवरराइड कर सकते हैं और CLI के माध्यम से विशिष्ट प्रोफ़ाइल लॉन्च कर सकते हैं: docker compose --profile sast --profile dast up -d।semgrep) को छोड़ना चाहते हैं, तो .env से इसकी श्रेणी (sast) हटाएँ और मैन्युअल रूप से अन्य वांछित उपकरणों को सूचीबद्ध करें (bandit,gosec,codeql)।utilities श्रेणी के उपकरण (जैसे, Linguist, WireMock, Chromium) को स्थायी मुख्य निर्भरताओं के रूप में माना जाता है। वे docker compose up -d पर बिना शर्त चलते हैं ताकि महत्वपूर्ण क्रॉस-टूल निर्भरताएँ (जैसे भाषा का पता लगाना) हमेशा कार्य करें।कॉन्फ़िगरेशन फ़ाइल स्थान:
~/Library/Application Support/Claude/claude_desktop_config.json (macOS)mcp.jsonएक-क्लिक इंस्टॉल (Docker चल रहा होना आवश्यक):
मैन्युअल कॉन्फ़िगरेशन:
अपनी MCP कॉन्फ़िगरेशन फ़ाइल में निम्नलिखित जोड़ें:```json { "mcpServers": { "mcpwner": { "command": "docker", "args": ["exec", "-i", "mcpwner-server", "python", "src/server.py"], "env": {} } } }
अपने MCP क्लाइंट को पुनरारंभ करें ताकि नया सर्वर कॉन्फ़िगरेशन लोड हो।
### स्थानीय प्रोजेक्ट्स को स्कैन करना
अपने होस्ट मशीन से प्रोजेक्ट्स को स्कैन करने के लिए, उन्हें `docker-compose.yaml` में एक वॉल्यूम जोड़कर कंटेनर में माउंट करें:```yaml
services:
mcpwner:
volumes:
- /path/to/your/projects:/mnt/projects:ro
फिर create_workspace टूल का उपयोग करें:
source_type="local"source="/mnt/projects/my-project"MCPwner स्वचालित रूप से कंटेनर पुनरारंभ के दौरान साझा Docker वॉल्यूम (/workspaces/.metadata/) में फ़ाइल-आधारित भंडारण का उपयोग करके वर्कस्पेस और CodeQL डेटाबेस मेटाडेटा को बनाए रखता है। किसी कॉन्फ़िगरेशन की आवश्यकता नहीं है - सिस्टम स्टार्टअप पर मौजूदा डेटा लोड करता है और प्रत्येक ऑपरेशन के बाद डेटा भ्रष्टाचार को रोकने के लिए परमाणु लेखन का उपयोग करके सहेजता है।
वर्कस्पेस सफाई नियंत्रण:
cleanup_workspace टूल सूक्ष्म नियंत्रण प्रदान करता है:
delete_files=True, delete_metadata=False - डिस्क स्थान खाली करें लेकिन वर्कस्पेस इतिहास संरक्षित रखें (अनुशंसित)delete_files=True, delete_metadata=True - वर्कस्पेस और मेटाडेटा की पूर्ण हटानाdelete_files=False, delete_metadata=True - सूची से हटाएं लेकिन फ़ाइलें डिस्क पर रखेंबैकअप:```bash
docker run --rm -v mcpwner_workspaces:/data -v $(pwd):/backup
alpine tar czf /backup/workspaces-backup.tar.gz /data
docker run --rm -v mcpwner_workspaces:/data -v $(pwd):/backup
alpine tar xzf /backup/workspaces-backup.tar.gz -C /
## Architecture
MCPwner कंटेनरों के बीच HTTP-आधारित संचार का उपयोग करता है ताकि भविष्य में दूरस्थ तैनाती का समर्थन किया जा सके। हालांकि वर्तमान में स्थानीय उपयोग के लिए अनुकूलित है, वास्तुकला को न्यूनतम संशोधनों के साथ दूरस्थ सर्वर तैनाती के लिए अनुकूलित किया जा सकता है।
**डिज़ाइन सिद्धांत:**
- सुरक्षा उपकरण निष्पादन के लिए कंटेनर पृथक्करण
- LLM उपयोग के लिए मानकीकृत आउटपुट प्रारूप (SARIF/JSON)
- नए उपकरणों के लिए विस्तार योग्य प्लगइन वास्तुकला
- स्टेटलेस API (मेमोरी उपयोगकर्ता द्वारा प्रबंधित की जाती हैं)
**वास्तुकला अवलोकन:**```mermaid
graph LR
subgraph IDE[" "]
LLM[🤖<br/>LLM]
Client[MCP Client]
LLM -.-> Client
end
Server[MCPwner Server]
SAST[SAST Tools]
Secrets[Secrets Scanning]
SCA[SCA Tools]
Recon[Reconnaissance]
CodeQL[CodeQL Service]
Linguist[Language Detection]
Utilities[Utilities]
IaC[IaC Security]
Fuzzing[Source Fuzzing]
DAST[DAST Tools]
Client -->|JSON-RPC 2.0| Server
Server -->|HTTP| SAST
Server -->|HTTP| Secrets
Server -->|HTTP| SCA
Server -->|HTTP| Recon
Server -->|HTTP| CodeQL
Server -->|HTTP| Linguist
Server -->|HTTP| Utilities
Server -->|HTTP| IaC
Server -->|HTTP| Fuzzing
Server -->|HTTP| DAST
style LLM fill:#7C3AED,stroke:#5B21B6,stroke-width:3px,color:#fff
style Client fill:#4A90E2,stroke:#2E5C8A,stroke-width:3px,color:#fff
style Server fill:#F5A623,stroke:#C17D11,stroke-width:3px,color:#fff
style SAST fill:#E74C3C,stroke:#C0392B,stroke-width:2px,color:#fff
style Secrets fill:#9B59B6,stroke:#7D3C98,stroke-width:2px,color:#fff
style SCA fill:#1ABC9C,stroke:#16A085,stroke-width:2px,color:#fff
style Recon fill:#00BCD4,stroke:#0097A7,stroke-width:2px,color:#fff
style CodeQL fill:#E67E22,stroke:#CA6F1E,stroke-width:2px,color:#fff
style Linguist fill:#3498DB,stroke:#2874A6,stroke-width:2px,color:#fff
style Utilities fill:#6D28D9,stroke:#4C1D95,stroke-width:2px,color:#fff
style IaC fill:#059669,stroke:#047857,stroke-width:2px,color:#fff
style Fuzzing fill:#B91C1C,stroke:#7F1D1D,stroke-width:2px,color:#fff
style DAST fill:#D35400,stroke:#A04000,stroke-width:2px,color:#fff
style IDE fill:none,stroke:#ddd,stroke-width:2px,stroke-dasharray: 5 5
MCPwner MCP इंटरफ़ेस के माध्यम से निम्नलिखित उपकरण प्रदान करता है:
कार्यक्षेत्र प्रबंधन (Workspace Management):
create_workspace - स्थानीय पथ, Git URL, या GitHub रिपॉजिटरी से स्कैनिंग कार्यक्षेत्र आरंभ करेंlist_workspaces - सभी उपलब्ध कार्यक्षेत्रों की सूची बनाएंcleanup_workspace - कार्यक्षेत्र और संबंधित डेटा हटाएंनिष्कर्ष बही (Findings Ledger):
कार्यक्षेत्र-स्कोप्ड, डिस्क पर स्थायी (<workspace>/findings/<id>.json), और हमेशा उपलब्ध — किसी कंटेनर या हेल्थ गेट की आवश्यकता नहीं। यह मल्टी-एजेंट गहन-अनुसंधान पाइपलाइन के लिए सत्य का स्रोत है: प्रत्येक परिकल्पना, PoC परिणाम, और समीक्षा निर्णय गद्य के बजाय एक निष्कर्ष प्रविष्टि है।
upsert_finding - एक निष्कर्ष बनाएं या अपडेट करें। डिफ़ॉल्ट रूप से मौजूदा प्रविष्टि में गहन विलय करता है, ताकि एक एजेंट अपना स्वयं का उप-ऑब्जेक्ट (जैसे poc) लिख सके बिना दूसरे एजेंट के फ़ील्ड (जैसे review) को ओवरराइट किए।list_findings - कार्यक्षेत्र में सभी निष्कर्षों की सूची बनाएं, वैकल्पिक रूप से status द्वारा फ़िल्टर किया गया (जैसे poc-confirmed, review-approved)get_finding - आईडी द्वारा एक एकल निष्कर्ष प्राप्त करेंSAST (स्थैतिक विश्लेषण):
run_sast_scan - स्थैतिक विश्लेषण उपकरण चलाएं (Semgrep, Bandit, Gosec, Brakeman, PMD, Psalm, NodeJsScan, Joern, YASA)get_sast_report - SAST स्कैन परिणाम प्राप्त करेंsast_list_tools - उपलब्ध SAST उपकरण सूचीबद्ध करेंरहस्य पहचान (Secrets Detection):
run_secrets_scan - रहस्य स्कैनिंग उपकरण चलाएं (Gitleaks, TruffleHog, Whispers, detect-secrets, Hawk-Eye)get_secrets_report - रहस्य स्कैन परिणाम प्राप्त करेंsecrets_list_tools - उपलब्ध रहस्य स्कैनिंग उपकरण सूचीबद्ध करेंSCA (सॉफ़्टवेयर संरचना विश्लेषण):
run_sca_scan - निर्भरताओं में कमज़ोरियों के लिए विश्लेषण करें (Grype, Syft, OSV-Scanner, Retire.js)get_sca_report - SCA स्कैन परिणाम प्राप्त करेंsca_list_tools - उपलब्ध SCA उपकरण सूचीबद्ध करेंटोही (Reconnaissance):
run_reconnaissance_scan - एक एकल टोही उपकरण चलाएं (Subfinder, Amass, Nmap, Masscan, httpx, Katana, ffuf, bbot, gau, Arjun, wafw00f, Kiterunner)run_reconnaissance_chain - कई टोही उपकरणों को क्रमिक रूप से श्रृंखलित करेंget_reconnaissance_report - टोही स्कैन परिणाम प्राप्त करेंreconnaissance_list_tools - उपलब्ध टोही उपकरण सूचीबद्ध करेंCodeQL:
detect_languages - Linguist के माध्यम से कोडबेस में भाषाएं पहचानेंcreate_codeql_database - विश्लेषण के लिए CodeQL डेटाबेस बनाएंlist_databases - उपलब्ध CodeQL डेटाबेस सूचीबद्ध करेंlist_query_packs - उपलब्ध क्वेरी पैक सूचीबद्ध करेंexecute_query - विशिष्ट CodeQL क्वेरी चलाएंइंफ्रास्ट्रक्चर और IaC सुरक्षा:
run_iac_scan - बुनियादी ढांचे-एक-कोड को गलत कॉन्फ़िगरेशन के लिए स्कैन करें (Checkov, KICS, Terrascan, TFSec, Hadolint)get_iac_report - IaC स्कैन परिणाम प्राप्त करेंiac_list_tools - उपलब्ध IaC स्कैनिंग उपकरण सूचीबद्ध करेंस्रोत फ़ज़िंग (Source Fuzzing):
run_fuzzing_scan - एक सफेद-बॉक्स, कवरेज-निर्देशित फ़ज़िंग अभियान चलाएं एक प्रति-लक्ष्य हार्नेस के विरुद्ध (Atheris, Jazzer, Jazzer.js, PHP-Fuzzer)get_fuzzing_report - फ़ज़िंग क्रैश परिणाम प्राप्त करें (क्रैशिंग इनपुट + स्टैक ट्रेस)fuzzing_list_tools - उपलब्ध फ़ज़िंग इंजन सूचीबद्ध करें, पहचानी गई भाषा द्वारा फ़िल्टर किया गयाDAST (डायनामिक एप्लिकेशन सुरक्षा परीक्षण):
run_dast_scan - डायनामिक एप्लिकेशन सुरक्षा परीक्षण उपकरण चलाएं (sqlmap, NoSQLMap, Commix, Dalfox, SSTImap, SSRFmap, jwt_tool, interactsh)get_dast_report - DAST स्कैन परिणाम प्राप्त करेंdast_list_tools - उपलब्ध DAST उपकरण सूचीबद्ध करेंउपयोगिताएँ (Utilities):
run_utilities_scan - एक लाइव लक्ष्य के विरुद्ध उपयोगिता उपकरण चलाएं (Linguist, WireMock, Mitmproxy, aiohttp, Headless Chromium)get_utilities_report - उपयोगिता स्कैन परिणाम प्राप्त करेंutilities_list_tools - उपलब्ध उपयोगिता उपकरण और उनके कॉन्फ़िग विकल्प सूचीबद्ध करेंस्वास्थ्य और निगरानी (Health & Monitoring):
health_check - सर्वर और उपकरण की उपलब्धता जांचेंlist_tools - सभी उपलब्ध उपकरण और उनकी स्थिति सूचीबद्ध करेंMCPwner ऐसे सुरक्षा उपकरण निष्पादित करता है जो आक्रामक संचालन कर सकते हैं। केवल उन सिस्टम और कोडबेस पर उपयोग करें जिनके आप स्वामी हैं या जिनके परीक्षण की स्पष्ट अनुमति है - अनधिकृत पहुंच अवैध है। MCP सर्वर तक पहुंच को अधिकृत उपयोगकर्ताओं तक सीमित रखें और उत्पादन परिनियोजन के लिए नेटवर्क अलगाव पर विचार करें। स्कैन चलाने से पहले उपकरण कॉन्फ़िगरेशन की समीक्षा करें क्योंकि कुछ उपकरण महत्वपूर्ण नेटवर्क ट्रैफ़िक या सिस्टम लोड उत्पन्न कर सकते हैं। उपकरण निष्पादन और परिणामों को लॉग करें, यह ध्यान में रखते हुए कि सुरक्षा स्कैन निगरानी सिस्टम में अलर्ट ट्रिगर कर सकते हैं। MCPwner का उपयोग करके खोजी गई कमज़ोरियों की रिपोर्ट करते समय जिम्मेदार प्रकटीकरण प्रथाओं का पालन करें। Docker छवियों को अद्यतित रखें और कंटेनरों को नियमित रूप से कमज़ोरियों के लिए स्कैन करें। API कुंजी, टोकन या क्रेडेंशियल को कॉन्फ़िगरेशन फ़ाइलों में कभी न डालें - इसके बजाय पर्यावरण चर या गुप्त प्रबंधन प्रणालियों का उपयोग करें।
साथ ही, इन उपकरणों को चलाने और तृतीय-पक्ष पुस्तकालयों तक पहुंचने पर आपको अपनी सुरक्षा के लिए जिम्मेदार होना चाहिए, यह सुझाव दिया जाता है कि सब कुछ सैंडबॉक्स्ड और बिना किसी विशेष प्रमाणीकरण के चलाएं (जहां संभव हो न्यूनतम और कठोर बनाया गया)।
![]() | ![]() | ![]() | ![]() | ![]() |
|---|
| Subfinder | Amass | Nmap | Masscan | ffuf |