Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
vuln-scanner — रिपोर्ट निर्माण के साथ भेद्यता आकलन स्कैनर | Kitploit
उपकरण/GitHubGitHub/zappaboy/vuln-scanner
भेद्यता स्कैनरकंटेनर सुरक्षास्थैतिक कोड विश्लेषण (SAST)एपीआई सुरक्षा परीक्षणकॉन्फ़िगरेशन ऑडिटिंगवेब सुरक्षानेटवर्क सुरक्षापेनिट्रेशन टेस्टिंगक्लाउड सुरक्षाDevSecOpsसीक्रेट डिटेक्शनDNS विश्लेषण
1126 दिन पहलेअभी तक समीक्षित नहीं

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

सभी देखें →

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

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

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

सभी उपकरण देखें →
साझा करें
GitHubzappaboy/vuln-scanner

vuln-scanner

रिपोर्ट निर्माण के साथ भेद्यता आकलन स्कैनर

रिपॉजिटरी देखें

vuln-scanner

एक स्वचालित भेद्यता मूल्यांकन प्लेटफ़ॉर्म जो 86 ओपन-सोर्स सुरक्षा उपकरणों को व्यवस्थित करता है, निष्कर्षों को एकत्र और डिडुप्लिकेट करता है, ट्राइएज, क्लस्टरिंग और उपचार के लिए एक वैकल्पिक OpenAI-संगत LLM विश्लेषण परत चलाता है, proof-of-concept स्क्रिप्ट उत्पन्न करता है, और पेशेवर Markdown, HTML, और JSON रिपोर्ट तैयार करता है — यह सब एक ही BlackArch Linux Docker इमेज से।


विषय-सूची

  1. आर्किटेक्चर
  2. उपकरण
  3. लक्ष्य प्रकार गेटिंग
  4. स्कैन मोड
  5. प्रमाणित स्कैनिंग
  6. LLM विश्लेषण
  7. PoC जनरेशन और निष्पादन
  8. प्लगइन सिस्टम
  9. रिपोर्ट प्रारूप
  10. त्वरित आरंभ
  11. scanner.sh — Docker रैपर
  12. कॉन्फ़िगरेशन
  13. पर्यावरण चर
  14. प्रोजेक्ट संरचना
  15. नया उपकरण जोड़ना
  16. विकास
  17. DefectDojo एकीकरण

आर्किटेक्चर```

config.toml / env vars / CLI args ↓ AppConfig (pydantic, 3-layer merge: TOML < env < CLI) ↓ Plugin loader — auto-discovers ./plugins/ + ~/.vuln-scanner/plugins/ ↓ ScanOrchestrator • classify_target() → TargetType • tool.applies_to(target) — skips mismatched pairs • asyncio + ThreadPoolExecutor — parallel (tool × target) tasks • AuthConfig forwarded to every applicable tool ↓ ScanResult[] → Assessment ↓ LLMAnalyzer (optional) • Pass 1: triage + PoC design (threaded, per result) • Pass 2: PoC generation (PocGenerator, host-safe) • Pass 3: mitigation (evidence-informed) • Pass 4: clustering + exec summary ↓ PocRunner (container-only, VS_IN_CONTAINER=1 guard) ↓ ┌────────┬────────┬────────┐ │ .md │ .html │ .json │ (all formats written in parallel) └────────┴────────┴────────┘ ↓ DefectDojo (optional)

root@kitploit:~
All scanning tools and PoC execution run inside a **BlackArch Linux** Docker container — nothing is installed on the host.

---

## उपकरण

श्रेणी के अनुसार व्यवस्थित 86 उपकरण। प्रत्येक उपकरण समर्थित लक्ष्य प्रकार घोषित करता है; ऑर्केस्ट्रेटर असंगत युग्मों को स्वचालित रूप से छोड़ देता है।

### नेटवर्क और पोर्ट स्कैनिंग
| उपकरण | नोट |
|------|-------|
| `nmap` | सेवा/संस्करण पहचान के साथ पूर्ण पोर्ट स्कैन |
| `rustscan` | तेज़ पोर्ट स्कैनर, nmap को फीड करता है |
| `masscan` | उच्च गति TCP/UDP स्कैनर |
| `naabu` | सेवा पहचान के साथ पोर्ट स्कैनर |
| `netdiscover` | ARP-आधारित होस्ट खोज |

### वेब एप्लिकेशन
| उपकरण | नोट |
|------|-------|
| `nuclei` | टेम्पलेट-आधारित भेद्यता स्कैनर |
| `nikto` | वेब सर्वर गलत कॉन्फ़िगरेशन स्कैनर |
| `wapiti` | ब्लैक-बॉक्स वेब भेद्यता स्कैनर |
| `ffuf` | तेज़ वेब फ़ज़र (निर्देशिकाएँ, पैरामीटर, हेडर) |
| `feroxbuster` | पुनरावृत्ति के साथ सामग्री खोज |
| `gobuster` | URI/DNS/vhost ब्रूट-फोर्सर |
| `wfuzz` | वेब एप्लिकेशन फ़ज़र |
| `dalfox` | पैरामीटर विश्लेषण के साथ XSS स्कैनर |
| `xsstrike` | उन्नत XSS पहचान इंजन |
| `commix` | कमांड इंजेक्शन शोषक |
| `sqlmap` | स्वचालित SQL इंजेक्शन और अधिग्रहण |
| `nosqlmap` | NoSQL इंजेक्शन स्कैनर |
| `httpx` | HTTP प्रोबिंग और फ़िंगरप्रिंटिंग |
| `whatweb` | वेब प्रौद्योगिकी फ़िंगरप्रिंटर |
| `wafw00f` | WAF पहचान और फ़िंगरप्रिंटिंग |
| `wpscan` | WordPress भेद्यता स्कैनर |
| `acunetix` | वेब भेद्यता स्कैनर (API-आधारित) |
| `arachni` | वेब एप्लिकेशन सुरक्षा स्कैनर |
| `zap` | OWASP ZAP DAST स्कैनर |
| `wapiti` | ब्लैक-बॉक्स भेद्यता स्कैनर |
| `drheader` | HTTP सुरक्षा हेडर विश्लेषक |
| `humble` | HTTP हेडर सुरक्षा जाँचक |
| `hakrawler` | URL और एंडपॉइंट के लिए तेज़ वेब क्रॉलर |
| `katana` | अगली पीढ़ी का वेब क्रॉलिंग फ्रेमवर्क |
| `gau` | ज्ञात URL संग्राहक (AlienVault, WaybackMachine) |
| `jsluice` | JavaScript रहस्य और URL निकालने वाला |
| `corscanner` | CORS गलत कॉन्फ़िगरेशन स्कैनर |
| `crlfuzz` | CRLF इंजेक्शन स्कैनर |
| `smuggler` | HTTP अनुरोध तस्करी डिटेक्टर |
| `linkfinder` | JavaScript/HTML स्रोत में एंडपॉइंट खोज |
| `cariddi` | रहस्य और एंडपॉइंट पहचान के साथ वेब क्रॉलर |

### API और GraphQL
| उपकरण | नोट |
|------|-------|
| `kiterunner` | kite फ़ाइलों के साथ API रूट खोज |
| `graphql_cop` | GraphQL सुरक्षा ऑडिटर |
| `restler` | स्टेटफुल REST API फ़ज़र |
| `apifuzzer` | OpenAPI/Swagger-आधारित फ़ज़र |
| `cherrybomb` | OpenAPI स्पेक सुरक्षा लिंटर |
| `arjun` | HTTP पैरामीटर खोज |
| `paramspider` | wayback/स्रोतों से पैरामीटर खनन |

### DNS और टोही
| उपकरण | नोट |
|------|-------|
| `amass` | सबडोमेन गणना (निष्क्रिय + सक्रिय) |
| `subfinder` | तेज़ निष्क्रिय सबडोमेन गणना |
| `dnsx` | DNS रिज़ॉल्वर और प्रोब टूलकिट |
| `dnsrecon` | DNS गणना और ज़ोन ट्रांसफर |
| `fierce` | DNS टोही और होस्ट खोज |
| `theharvester` | OSINT: ईमेल, नाम, होस्ट, सबडोमेन |
| `puredns` | वाइल्डकार्ड फ़िल्टरिंग के साथ तेज़ सबडोमेन ब्रूट-फोर्सर |
| `alterx` | सबडोमेन क्रमपरिवर्तन इंजन |
| `waybackurls` | Wayback Machine से ऐतिहासिक URL संग्रह |
| `httprobe` | लाइव HTTP/HTTPS होस्ट प्रोबर |

### TLS / SSL
| उपकरण | नोट |
|------|-------|
| `testssl` | TLS कॉन्फ़िगरेशन और साइफर सूट ऑडिट |
| `sslyze` | TLS स्कैनर (साइफर सूट, Heartbleed, ROBOT) |
| `sslscan` | SSL/TLS सेवा स्कैनर |
| `tlsx` | तेज़ TLS प्रोबिंग |
| `tls_attacker` | TLS प्रोटोकॉल आक्रमण उपकरण |
| `ssh_audit` | SSH कॉन्फ़िगरेशन और एल्गोरिदम ऑडिटर |

### SMB और नेटवर्क सेवाएँ
| उपकरण | नोट |
|------|-------|
| `smbmap` | SMB शेयर गणना और अनुमतियाँ |
| `enum4linux` | SMB/NetBIOS गणना |
| `crackmapexec` | Active Directory और SMB मूल्यांकन |
| `openvas` | OpenVAS भेद्यता स्कैनर |

### SAST और कोड विश्लेषण
| उपकरण | नोट |
|------|-------|
| `bandit` | Python SAST — सामान्य सुरक्षा एंटी-पैटर्न |
| `semgrep` | सामुदायिक नियमों के साथ बहु-भाषा SAST |
| `gosec` | Go सुरक्षा जाँचक |
| `bearer` | गोपनीयता और सुरक्षा नियमों के साथ डेटा-फ्लो SAST |
| `horusec` | बहु-भाषा SAST इंजन |
| `brakeman` | Ruby on Rails SAST स्कैनर |
| `flawfinder` | सामान्य त्रुटियों के लिए C/C++ स्थैतिक विश्लेषण |
| `dependency_check` | OWASP निर्भरता भेद्यता स्कैनर |
| `pip_audit` | Python पैकेज भेद्यता जाँचक |

### सॉफ़्टवेयर संरचना विश्लेषण (SCA)
| उपकरण | नोट |
|------|-------|
| `osv-scanner` | ओपन सोर्स भेद्यता डेटाबेस स्कैनर |
| `npm-audit` | Node.js पैकेज भेद्यता ऑडिट |
| `govulncheck` | Go मॉड्यूल भेद्यता जाँचक |

### रहस्य पहचान
| उपकरण | नोट |
|------|-------|
| `gitleaks` | Git इतिहास रहस्य स्कैनर |
| `trufflehog` | गहन एंट्रॉपी-आधारित रहस्य खोजक |
| `secretfinder` | JS फ़ाइलों और एंडपॉइंट में रहस्य |
| `detect-secrets` | बेसलाइन-आधारित रहस्य स्कैनर |
| `noseyparker` | पैटर्न नियमों के साथ उच्च गति रहस्य स्कैनर |

### IaC और कॉन्फ़िगरेशन
| उपकरण | नोट |
|------|-------|
| `checkov` | Terraform/K8s/Dockerfile IaC स्कैनर |
| `tfsec` | Terraform स्थैतिक विश्लेषण |
| `terrascan` | मल्टी-क्लाउड IaC सुरक्षा स्कैनर |
| `hadolint` | Dockerfile सर्वोत्तम-अभ्यास लिंटर |

### क्लाउड इन्फ्रास्ट्रक्चर
| उपकरण | नोट |
|------|-------|
| `prowler` | AWS/GCP/Azure सुरक्षा स्थिति मूल्यांकन |
| `kube-bench` | CIS Kubernetes बेंचमार्क जाँचक |

### कंटेनर और सप्लाई चेन
| उपकरण | नोट |
|------|-------|
| `trivy` | कंटेनर इमेज + फाइलसिस्टम भेद्यता स्कैनर |
| `grype` | कंटेनर और पैकेज भेद्यता मैचर |

---

## लक्ष्य प्रकार गेटिंग

ऑर्केस्ट्रेटर प्रत्येक लक्ष्य को एक या अधिक प्रकारों में वर्गीकृत करता है और केवल उन्हीं उपकरणों को चलाता है जो उस प्रकार के लिए समर्थन घोषित करते हैं। यह शोर को समाप्त करता है, जैसे वेब URL के विरुद्ध चलने वाले SMB उपकरण।

| प्रकार | उदाहरण | मेल खाने वाले उपकरण |
|------|---------|-----------------|
| `HOST` | `example.com` | DNS, SSL, वेब, SMB उपकरण |
| `IP` | `10.0.0.1` | नेटवर्क, पोर्ट, SMB उपकरण |
| `CIDR` | `10.0.0.0/24` | नेटवर्क स्कैनर |
| `URL` | `https://app.example.com` | वेब, API, SSL उपकरण |
| `PATH` | `/src/myapp` | SAST, SCA, रहस्य, IaC उपकरण |
| `REPO` | `https://github.com/org/repo` | रहस्य, SAST, SCA उपकरण |
| `IMAGE` | `myapp:latest` | कंटेनर स्कैनर |
| `CLOUD` | `aws:profile=prod`, `arn:aws:…` | क्लाउड स्थिति उपकरण (prowler, kube-bench, terrascan) |

वर्गीकरण स्वचालित है — बस लक्ष्य स्ट्रिंग पास करें; स्कैनर प्रकार का पता लगा लेता है।

मान्यता प्राप्त क्लाउड लक्ष्य प्रारूप:
- AWS ARN: `arn:aws:iam::123456789012:root`
- नामित प्रोफ़ाइल शॉर्टहैंड: `aws:profile=production`
- GCP प्रोजेक्ट: `projects/my-project-id`
- Azure सब्सक्रिप्शन UUID: `00000000-0000-0000-0000-000000000000`

---

## स्कैन मोड

| मोड | विवरण |
|------|-------------|
| `paranoid` | अधिकतम गोपनीयता — निष्क्रिय प्रोबिंग, न्यूनतम फुटप्रिंट |
| `passive` | कोई सक्रिय आक्रमण नहीं — केवल गणना और बैनर ग्रैबिंग **(डिफ़ॉल्ट)** |
| `active` | मानक भेद्यता जाँच सक्षम |
| `aggressive` | पूर्ण स्कैन: सभी टेम्पलेट, ब्रूट-फोर्स, तेज़ टाइमिंग |

---

## प्रमाणित स्कैनिंग

क्रेडेंशियल सभी प्रासंगिक वेब उपकरणों (nuclei, ffuf, feroxbuster, gobuster, nikto, sqlmap, dalfox, wpscan, wapiti, katana, hakrawler, arjun, wfuzz, corscanner, kiterunner, httpx) को अग्रेषित किए जाते हैं।

### वैश्विक क्रेडेंशियल

हर लक्ष्य पर लागू, जब तक कि प्रति-लक्ष्य ओवरराइड मौजूद न हो।

**कॉन्फ़िग के माध्यम से:**```toml
[scan.auth]
bearer_token = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
username     = "admin"
password     = "secret"

[scan.auth.cookies]
session = "abc123"

[scan.auth.headers]
X-API-Key = "my-api-key"

पर्यावरण चर के माध्यम से (केवल वैश्विक):```bash VS_AUTH_BEARER_TOKEN=eyJ... VS_AUTH_USERNAME=admin VS_AUTH_PASSWORD=secret

root@kitploit:~
**CLI के माध्यम से** (केवल वैश्विक):```bash
vuln-scanner --targets https://app.example.com \
  --auth-bearer eyJ... \
  --auth-cookie session=abc123 \
  --auth-header X-API-Key=secret

प्रति-लक्ष्य क्रेडेंशियल्स

जब कई लक्ष्यों को स्कैन किया जा रहा हो जिन्हें अलग-अलग क्रेडेंशियल्स की आवश्यकता होती है, तो [scan.auth.targets."<target>"] के अंतर्गत प्रति-लक्ष्य ओवरराइड परिभाषित करें। एक मेल खाती प्रविष्टि उस लक्ष्य के लिए वैश्विक कॉन्फ़िग को पूरी तरह से प्रतिस्थापित कर देती है — कोई विलय नहीं होता। प्रति-लक्ष्य प्रमाणीकरण केवल कॉन्फ़िग-फ़ाइल में होता है (env vars और CLI फ़्लैग केवल वैश्विक डिफ़ॉल्ट सेट करते हैं)।```toml [scan.auth]

Global fallback — used for any target without a specific entry

bearer_token = "default-token"

JWT for the main app

[scan.auth.targets."https://app.example.com"] bearer_token = "app-specific-jwt"

Cookie session for the admin panel

[scan.auth.targets."https://admin.example.com"] [scan.auth.targets."https://admin.example.com".cookies] session = "s%3Aabc123" csrftoken = "xyz789"

HTTP Basic for an internal API

[scan.auth.targets."10.0.0.50"] username = "apiuser" password = "s3cret"

Form login for a legacy app

[scan.auth.targets."https://legacy.example.com"] login_url = "https://legacy.example.com/login" username = "admin" password = "password123" [scan.auth.targets."https://legacy.example.com".login_data] _token = "csrf-value-here"

root@kitploit:~
**Resolution:** `per-target config > global config`

---

## LLM विश्लेषण

जब कोई API कुंजी मौजूद होती है, LLM परत स्वचालित रूप से सक्रिय हो जाती है। यह स्कैन परिणामों पर चार पास करता है:

| पास | नाम | यह क्या करता है |
|------|------|-------------|
| 1 | **ट्रायेज** | प्रत्येक खोज के लिए CWE, विश्वास स्तर, फ़ॉल्स-पॉज़िटिव फ़्लैग, शोषण-क्षमता सारांश निर्दिष्ट करता है, और एक PoC डिज़ाइन करता है |
| 2 | **PoC निर्माण** | स्व-निहित Python/Bash स्क्रिप्ट लिखता है जो कंटेनर में पहले से मौजूद टूल्स का उपयोग करके खोज की पुष्टि करते हैं |
| 3 | **शमन** | ठोस अल्पकालिक शमन उपाय और स्थायी सुधार उत्पन्न करता है, वैकल्पिक रूप से PoC साक्ष्य के आधार पर |
| 4 | **क्लस्टरिंग** | खोजों को मूल कारण के आधार पर समूहित करता है, साझा सुधार लिखता है, और एक कार्यकारी सारांश तैयार करता है |

### प्रोवाइडर कॉन्फ़िगरेशन

LLM क्लाइंट OpenAI-API-संगत है — यह OpenAI, Azure OpenAI, Ollama, vLLM, LM Studio, OpenRouter, और किसी भी अन्य संगत एंडपॉइंट के साथ काम करता है।```toml
[llm]
enabled   = "auto"          # "auto" | true | false  (auto = on when api_key present)
api_key   = ""              # or set OPENAI_API_KEY env var
base_url  = ""              # leave empty for OpenAI; set for Ollama/vLLM/etc.
model     = "gpt-4o"        # REQUIRED when LLM is active — no default

# Sampling parameters (all OpenAI-compatible)
temperature = 0.2
top_p       = 0.95
max_tokens  = 4096
# top_k and other non-standard params go in extra_body:
# [llm.extra_body]
# top_k = 40

Ollama उदाहरण:```toml [llm] base_url = "http://localhost:11434/v1" api_key = "ollama" model = "llama3.2"

root@kitploit:~
**vLLM उदाहरण:**```toml
[llm]
base_url = "http://localhost:8000/v1"
api_key  = "token-abc123"
model    = "meta-llama/Meta-Llama-3-8B-Instruct"

Feature matrix

प्रत्येक LLM क्षमता एक नामित फीचर है, जिसे वैश्विक रूप से टॉगल किया जा सकता है और प्रति टूल या प्रति श्रेणी ओवरराइड किया जा सकता है।

वैश्विक फीचर कॉन्फ़िग:```toml [llm.features] generate_poc = true execute_poc = false # enable only inside Docker

Per-tool override — disable PoC for bandit (SAST, no runtime target)

[llm.features.tool.bandit] generate_poc = false

Per-category override — disable log analysis for noisy crawlers

[llm.features.category.web] logs_analysis = false

root@kitploit:~
**फीचर प्राथमिकता:** `tool override > category override > global`

### कस्टम प्रॉम्प्ट्स

सभी LLM प्रॉम्प्ट्स ओवरराइड करने योग्य हैं:```toml
[llm.prompts]
enrich_system    = "You are a senior penetration tester..."
mitigation_user  = "Write remediation steps for: {title}..."
# Available placeholders: {title} {severity} {description} {cwe}
#   {exploitability} {tool} {target} {cves} {raw_output}

स्कोप फ़िल्टर```toml

[llm] include_tools = [] # empty = all tools exclude_tools = ["hakrawler", "gau"] include_categories = [] exclude_categories = ["dns"]

root@kitploit:~
---

## PoC निर्माण और निष्पादन

### निर्माण (हमेशा होस्ट-सुरक्षित)

LLM प्रत्येक निष्कर्ष के लिए स्व-निहित Python और/या Bash स्क्रिप्ट लिखता है। स्क्रिप्ट BlackArch इमेज में पहले से मौजूद टूल्स (`curl`, `sqlmap`, `nuclei`, `dalfox`, आदि) का उपयोग करती हैं और `<report>_assets/poc/` में लिखी जाती हैं। निर्माण कभी भी कोड निष्पादित नहीं करता — यह केवल फ़ाइलें लिखता है।```toml
[llm.poc]
languages        = ["python", "bash"]
only_severities  = ["critical", "high", "medium"]
max_pocs         = 20
allow_git_clone  = false   # permit cloning official exploit PoCs from GitHub

निष्पादन (केवल-कंटेनर)

PoC निष्पादन दो स्वतंत्र गार्डों के पीछे सीमित है:

  1. [llm.features] में execute_poc = true
  2. VS_IN_CONTAINER=1 पर्यावरण चर (Docker इमेज में बेक किया गया)

यदि कोई भी गार्ड मौजूद नहीं है तो रनर चुपचाप मना कर देता है, इसलिए यह होस्ट पर निष्पादित नहीं हो सकता। एक स्थिर डिनीलिस्ट निष्पादन से पहले विनाशकारी पैटर्न (rm -rf /, mkfs., फोर्क बम, आदि) वाली स्क्रिप्ट को अस्वीकार कर देती है।```bash

Enable PoC execution inside the container

VS_LLM_FEATURE_EXECUTE_POC=true docker compose ... run --rm scanner ...

root@kitploit:~
---

## प्लगइन सिस्टम

एक `.py` फ़ाइल डालें जो एक या अधिक `AbstractTool` उपवर्गों को परिभाषित करती है, `./plugins/` (या `~/.vuln-scanner/plugins/`) में — और वे स्टार्टअप पर स्वतः खोज ली जाती हैं — कोई कोड परिवर्तन आवश्यक नहीं है।

**खोज क्रम** (नाम टकराव पर बाद की प्रविष्टियाँ ओवरराइड करती हैं):
1. `./plugins/` (CWD के सापेक्ष)
2. `~/.vuln-scanner/plugins/`
3. `[plugins] dirs` या `--plugin-dir` के माध्यम से कॉन्फ़िगर किए गए अतिरिक्त निर्देशिकाएँ

**उदाहरण प्लगइन** (`plugins/my_scanner.py`):```python
from vuln_scanner.tools.abstract import AbstractTool
from vuln_scanner.tools.enums import Severity, ScanStatus, TargetType
from vuln_scanner.tools.models import Finding, ScanInput, ScanResult

class MyScannerTool(AbstractTool):
    name: str = "my-scanner"
    category: str = "web"
    # Only runs against URL targets — skipped automatically for IPs, paths, etc.
    applicable_targets: frozenset[TargetType] = frozenset({TargetType.URL})

    def build_command(self, target: str, scan_input: ScanInput) -> list[str]:
        return ["my-scanner", "--target", target, "--json"]

    def parse_output(self, raw: str, target: str) -> list[Finding]:
        ...

Config:```toml [plugins] enabled = true dirs = ["/opt/company-scanners"]

root@kitploit:~
**CLI:**```bash
vuln-scanner --plugin-dir /opt/company-scanners --targets https://app.example.com

प्रति-लक्ष्य व्यवहार

प्लगइन उपकरण वैश्विक रूप से पंजीकृत होते हैं, लेकिन ऑर्केस्ट्रेटर का प्रकार-गेटिंग नियंत्रित करता है कि प्रत्येक प्लगइन वास्तव में किन लक्ष्यों के विरुद्ध चलता है। एक प्लगइन जो applicable_targets = frozenset({TargetType.URL}) घोषित करता है, वह किसी IP या फ़ाइलसिस्टम पथ के विरुद्ध कभी सक्रिय नहीं होगा।

किसी प्लगइन को प्रकार-गेटिंग से परे विशिष्ट लक्ष्य स्ट्रिंग्स तक सीमित करने के लिए (जैसे, केवल किसी ज्ञात स्टेजिंग होस्ट के विरुद्ध चलाना), run() के अंदर ScanStatus.SKIPPED लौटाएँ:```python def run(self, target: str, scan_input: ScanInput) -> ScanResult: if "staging" not in target: return ScanResult(tool=self.name, target=target, status=ScanStatus.SKIPPED) return super().run(target, scan_input)

root@kitploit:~
कॉन्फ़िग-स्तर पर कोई प्रति-लक्ष्य प्लगिन फ़िल्टर नहीं है — वह तर्क प्लगिन में ही होता है।

---

## रिपोर्ट प्रारूप

तीन प्रारूप समानांतर रूप से जनरेट होते हैं। कोई भी संयोजन चुनें:```toml
[report]
formats    = ["markdown", "html", "json"]
output_dir = "./reports"

या CLI के माध्यम से: --formats markdown html json

Markdown (.md)

पेशेवर संरचित रिपोर्ट, जो उद्योग की पेंटेस्ट परंपराओं का पालन करती है:

  1. Executive Summary — प्रबंधन के लिए गद्य
  2. Scope and Methodology — लक्ष्य सूची, उपयोग किए गए उपकरण, स्कैन कॉन्फ़िगरेशन
  3. Severity Rating Guide — CVSS रेंज
  4. Findings Overview — जोखिम वितरण मैट्रिक्स + प्रति-लक्ष्य विवरण
  5. Vulnerability Clusters — मूल-कारण समूह (LLM-जनरेटेड)
  6. Detailed Findings — प्रति निष्कर्ष: ID, गंभीरता, प्रभावित सिस्टम, विवरण, व्यावसायिक प्रभाव, विश्लेषक टिप्पणी, शमन, स्थायी निवारण, PoC संदर्भ
  7. Appendix A — स्कैन त्रुटियाँ
  8. Appendix B — PoC संपत्ति सूचकांक

एक ही लक्ष्य पर एक ही समस्या की रिपोर्ट करने वाले कई उपकरणों के निष्कर्षों को डीडुप्लिकेट करके एक ही प्रविष्टि में दिखाया जाता है, जिसमें सभी योगदान देने वाले उपकरण शामिल होते हैं।

HTML (.html)

स्व-निहित एकल-फ़ाइल रिपोर्ट (कोई बाहरी निर्भरता नहीं) जिसमें:

  • लाइट/डार्क थीम टॉगल
  • गंभीरता-रंग-कोडित निष्कर्ष कार्ड
  • संक्षिप्त (collapsible) क्लस्टर अनुभाग
  • स्टैट्स ग्रिड और कार्यकारी सारांश हीरो

JSON (.json)

Assessment मॉडल का पूर्ण संरचित डंप — निष्कर्ष, LLM एनरिचमेंट, क्लस्टर, स्टैट्स, PoC रिकॉर्ड। CI/CD पाइपलाइन इंजेशन और डाउनस्ट्रीम टूलिंग के लिए उपयुक्त।


Quick Start

poc.sh स्क्रिप्ट एक ही कमांड में DefectDojo, तीन भेद्य लक्ष्य और स्कैनर प्रारंभ करती है।

पूर्वापेक्षाएँ: docker, docker compose प्लगइन, curl, `python3````bash ./poc.sh

root@kitploit:~
| चरण | क्रिया |
|------|--------|
| 1 | पूर्वापेक्षाएँ जाँचता है |
| 2 | `.env` लोड करता है (यदि अनुपस्थित हो तो `.env.example` से कॉपी करता है) |
| 3 | DefectDojo स्टैक प्रारंभ करता है |
| 4 | DefectDojo API के तैयार होने की प्रतीक्षा करता है |
| 5 | व्यवस्थापक क्रेडेंशियल्स के माध्यम से API टोकन प्राप्त करता है |
| 6 | असुरक्षित लक्ष्य कंटेनर प्रारंभ करता है |
| 7 | प्रत्येक लक्ष्य के सुलभ होने की प्रतीक्षा करता है |
| 8 | स्कैनर Docker इमेज बनाता है |
| 9 | स्कैनर चलाता है, रिपोर्ट तैयार करता है, DefectDojo पर पुश करता है |
| 10 | URL और टियरडाउन निर्देशों के साथ सारांश प्रिंट करता है |

**LLM विश्लेषण के साथ:**```bash
# Copy the example env and add your key
cp .env.example .env
# Edit .env: set OPENAI_API_KEY and VS_LLM_MODEL
./poc.sh

स्कैन मोड ओवरराइड करें:```bash SCAN_MODE=active ./poc.sh

root@kitploit:~
**विघटन:**```bash
docker compose down -v
docker compose -f docker-compose.target.yaml down -v

असुरक्षित लक्ष्य

स्थानीय (Docker — poc.sh द्वारा प्रारंभ)

ऐपURLविवरण
OWASP Juice Shophttp://localhost:3000OWASP Top 10 को कवर करने वाला आधुनिक Node.js ऐप

रिमोट लैब — pentest-ground.com

सार्वजनिक रूप से उपलब्ध, pentest-ground.com द्वारा अनुरक्षित जानबूझकर असुरक्षित प्रणालियाँ। किसी सेटअप की आवश्यकता नहीं — उपकरणों और PoC जनरेशन को मान्य करने के लिए सीधे स्कैन करें।

root@kitploit:~
---

## scanner.sh — Docker Wrapper

`scanner.sh` स्कैनर चलाने के लिए अनुशंसित दैनिक इंटरफ़ेस है। यह `docker compose run` को रैप करता है, ताकि आपको compose कमांड को मैन्युअल रूप से टाइप करने की आवश्यकता न पड़े — बस टारगेट और फ़्लैग सीधे पास करें।```bash
./scanner.sh [OPTIONS] [-- SCANNER_ARGS...]

Options

-- के बाद सब कुछ स्कैनर एंट्रीपॉइंट पर शब्दशः अग्रेषित किया जाता है, सभी रैपर तर्क को दरकिनार करते हुए।

उदाहरण```bash

Scan using ./config.toml (targets and mode come from the config)

./scanner.sh

Quick scan with explicit targets and mode

./scanner.sh -t https://app.example.com 192.168.1.0/24 -m active

Use a custom config file

./scanner.sh -c /path/to/prod.toml

Enable LLM enrichment with a specific model

./scanner.sh -t https://app.example.com --llm-model gpt-4o

Run only specific tools

./scanner.sh -t https://app.example.com --include-tools nuclei,dalfox,ffuf

Rebuild the image first, then scan

./scanner.sh --build -t https://app.example.com -m active

Full manual passthrough to the scanner entrypoint

./scanner.sh -- --targets https://t.example.com --mode aggressive --formats markdown html json

Open an interactive shell (all tools, volumes, and env available)

./scanner.sh --shell ./scanner.sh --build --shell

root@kitploit:~
### यह स्वचालित रूप से क्या करता है

- `.env` लोड करता है (यदि अनुपस्थित हो तो `.env.example` से कॉपी करता है)
- यदि कोई कॉन्फ़िग मौजूद नहीं है तो `config.example.toml` → `config.toml` कॉपी करता है
- `vuln_scanner_network` Docker नेटवर्क बनाता है यदि मौजूद नहीं है
- एक कस्टम `--config` फ़ाइल को कंटेनर में `/app/config.toml` पर माउंट करता है
- जब `--build` पास किया जाता है तो इमेज को पुनर्निर्मित करता है

---

## कॉन्फ़िगरेशन

एनोटेटेड टेम्पलेट कॉपी करें:```bash
cp config.example.toml config.toml

पूर्ण संदर्भ:```toml [scan] targets = ["192.168.1.1", "https://app.example.com", "/src/myapp"] mode = "passive" # paranoid | passive | active | aggressive timeout = 300 # per-tool timeout in seconds rate_limit = null # requests/sec; null = no limit

Authenticated scanning — forwarded to all applicable web tools

[scan.auth] bearer_token = "" # Authorization: Bearer username = "" # HTTP Basic username password = "" # HTTP Basic password login_url = "" # Form-based login URL

[scan.auth.cookies]

session = "abc123"

[scan.auth.headers]

X-API-Key = "secret"

[tools] exclude = ["nikto"] # skip specific tools by name

[categories] include = ["web", "ssl"] # limit to these categories; empty = all

[plugins] enabled = true

dirs = ["/opt/company-scanners"]

[report] formats = ["markdown", "html", "json"] output_dir = "./reports"

[defectdojo] url = "http://localhost:8080" api_key = "" product_name = "My Product" engagement_name = "Automated Scan"

── LLM Analysis ─────────────────────────────────────────────────────────────

[llm] enabled = "auto" # "auto" | true | false api_key = "" # or OPENAI_API_KEY env var base_url = "" # leave empty for OpenAI model = "" # required when active, e.g. "gpt-4o" or "llama3.2" temperature = 0.2 top_p = 0.95 max_tokens = 4096

extra_body = { top_k = 40 } # for Ollama/vLLM top_k support

exclude_tools = [] exclude_categories = []

[llm.features] logs_analysis = true enrich = true classify = true cluster = true mitigation = true generate_poc = true execute_poc = false # container-only; set VS_LLM_FEATURE_EXECUTE_POC=true false_positive_filter = true

Per-tool feature overrides (tool > category > global precedence)

[llm.features.tool.bandit] generate_poc = false

[llm.features.category.dns] logs_analysis = false

[llm.poc] languages = ["python", "bash"] only_severities = ["critical", "high", "medium"] max_pocs = 20 allow_git_clone = false

root@kitploit:~
**कॉन्फ़िग मर्ज प्राथमिकता:** `CLI > env vars > config.toml > defaults`

---

## पर्यावरणीय चर

### मुख्य

| चर | CLI फ़्लैग | विवरण |
|----------|----------|-------------|
| `VS_TARGETS` | `--targets` | रिक्त स्थान से अलग की गई लक्ष्य सूची |
| `VS_MODE` | `--mode` | स्कैन मोड |
| `VS_TIMEOUT` | `--timeout` | प्रति-टूल टाइमआउट (सेकंड) |
| `VS_RATE_LIMIT` | `--rate-limit` | दर सीमा (req/s) |
| `VS_MAX_CONCURRENT` | `--max-concurrent` | समानांतर टूल स्लॉट |
| `VS_INCLUDE_TOOLS` | `--include-tools` | नाम से टूल्स को व्हाइटलिस्ट करें |
| `VS_EXCLUDE_TOOLS` | `--exclude-tools` | नाम से टूल्स को ब्लैकलिस्ट करें |
| `VS_INCLUDE_CATEGORIES` | `--include-categories` | श्रेणियों को व्हाइटलिस्ट करें |
| `VS_EXCLUDE_CATEGORIES` | `--exclude-categories` | श्रेणियों को ब्लैकलिस्ट करें |
| `VS_OUTPUT_DIR` | `--output-dir` | रिपोर्ट आउटपुट निर्देशिका |

### रिपोर्ट

| चर | CLI फ़्लैग | विवरण |
|----------|----------|-------------|
| `VS_FORMATS` | `--formats` | रिपोर्ट प्रारूप: `markdown html json` |

### LLM

| चर | CLI फ़्लैग | विवरण |
|----------|----------|-------------|
| `OPENAI_API_KEY` | — | एपीआई कुंजी (मानक पर्यावरणीय चर, फ़ॉलबैक के रूप में प्रयुक्त) |
| `OPENAI_BASE_URL` | — | बेस URL फ़ॉलबैक (गैर-OpenAI एंडपॉइंट के लिए) |
| `VS_LLM_ENABLED` | `--no-llm` | `auto` \| `true` \| `false` |
| `VS_LLM_MODEL` | `--llm-model` | मॉडल नाम (सक्रिय होने पर आवश्यक) |
| `VS_LLM_TEMPERATURE` | — | सैंपलिंग तापमान |
| `VS_LLM_MAX_TOKENS` | — | अधिकतम आउटपुट टोकन |
| `VS_LLM_FEATURE_<NAME>` | `--llm-feature NAME=on` | वैश्विक सुविधा टॉगल, उदा. `VS_LLM_FEATURE_GENERATE_POC=false` |
| `VS_LLM_FEATURE_EXECUTE_POC` | `--llm-poc-execute` | PoC निष्पादन सक्षम करें (केवल कंटेनर) |

### प्रमाणित स्कैनिंग

| चर | CLI फ़्लैग | विवरण |
|----------|----------|-------------|
| `VS_AUTH_BEARER_TOKEN` | `--auth-bearer` | बेयरर टोकन (`Authorization: Bearer …`) |
| `VS_AUTH_USERNAME` | `--auth-user` | HTTP बेसिक उपयोगकर्ता नाम |
| `VS_AUTH_PASSWORD` | `--auth-pass` | HTTP बेसिक पासवर्ड |
| `VS_AUTH_LOGIN_URL` | `--auth-login-url` | फ़ॉर्म-आधारित लॉगिन URL |

कुकीज़ और अतिरिक्त हेडर कॉन्फ़िग फ़ाइल या `--auth-cookie` / `--auth-header` CLI फ़्लैग के माध्यम से सेट किए जाने चाहिए।

### प्लगइन्स

| चर | CLI फ़्लैग | विवरण |
|----------|----------|-------------|
| `VS_PLUGINS_ENABLED` | `--no-plugins` | प्लगइन स्वतः-खोज सक्षम/अक्षम करें |
| `VS_PLUGINS_DIRS` | `--plugin-dir` | अतिरिक्त प्लगइन निर्देशिकाएँ (रिक्त स्थान से अलग) |

### DefectDojo

| चर | CLI फ़्लैग | विवरण |
|----------|----------|-------------|
| `VS_DEFECTDOJO_URL` | `--defectdojo-url` | DefectDojo बेस URL |
| `VS_DEFECTDOJO_API_KEY` | `--defectdojo-api-key` | एपीआई टोकन |
| `VS_DEFECTDOJO_PRODUCT` | — | उत्पाद नाम |
| `VS_DEFECTDOJO_ENGAGEMENT` | — | एंगेजमेंट नाम |

---

## प्रोजेक्ट संरचना```
vuln_scanner/
├── config/
│   ├── models.py        # AppConfig, AppLLMConfig, PluginsConfig (pydantic)
│   └── loader.py        # 3-layer merge: TOML + env (VS_*) + CLI
│
├── tools/
│   ├── enums.py         # Severity, Confidence, ScanStatus, ScanMode, TargetType
│   ├── models.py        # Finding, ScanInput, ScanResult, AuthConfig (pydantic)
│   ├── target.py        # classify_target() — maps target string to TargetType set
│   ├── abstract.py      # AbstractTool ABC + subprocess execution helpers
│   ├── __init__.py      # TOOL_REGISTRY (86 tools)
│   └── <tool>.py        # One file per tool (86 total)
│
├── llm/
│   ├── models.py        # LLMConfig, LLMFeatures, PocConfig (pydantic)
│   ├── features.py      # resolve_features() — tool > category > global merge
│   ├── client.py        # LLMClient — thin openai SDK wrapper
│   ├── analyzer.py      # LLMAnalyzer — 4-pass analysis pipeline
│   └── prompts.py       # Default prompt templates (all overridable)
│
├── poc/
│   ├── models.py        # Poc, PocVerdict
│   ├── generator.py     # PocGenerator — writes scripts, never executes (host-safe)
│   └── runner.py        # PocRunner — executes scripts (VS_IN_CONTAINER guard)
│
├── reports/
│   ├── base.py          # AbstractReporter
│   ├── markdown.py      # Professional structured Markdown report
│   ├── html.py          # Self-contained HTML with light/dark theme
│   └── json_reporter.py # Full Assessment JSON dump
│
├── defectdojo/
│   └── client.py        # DefectDojoClient — push findings via REST API
│
├── plugins.py           # Plugin auto-discovery (./plugins/, ~/.vuln-scanner/plugins/)
├── model.py             # Assessment, Cluster, AssessmentStats
└── orchestrator.py      # ScanOrchestrator — type-gated, async concurrent execution

plugins/                 # Drop .py plugin files here (auto-discovered at startup)
main.py                  # Entry point
config.example.toml      # Fully documented configuration template
.env.example             # Environment variable reference
Dockerfile               # BlackArch-based image; bakes VS_IN_CONTAINER=1
docker-compose.yaml                # DefectDojo stack
docker-compose.scanner.yaml        # Scanner service
docker-compose.target.yaml        # Vulnerable test targets (Juice Shop, WebGoat)
scanner.sh                        # Convenience wrapper — runs the scanner via docker compose
poc.sh                            # End-to-end quick-start script (DefectDojo + targets + scanner)

नया टूल जोड़ना

एक बार के उपयोग या निजी टूल के लिए, प्लगइन सिस्टम का उपयोग करें — ./plugins/ में एक .py फ़ाइल डालें, बिना किसी कोड परिवर्तन के। उन टूल के लिए जिन्हें प्रोजेक्ट के साथ वितरित किया जाना चाहिए:

  1. vuln_scanner/tools/mytool.py बनाएँ:
root@kitploit:~
from vuln_scanner.tools.abstract import AbstractTool
from vuln_scanner.tools.enums import Severity, TargetType
from vuln_scanner.tools.models import Finding, ScanInput

class MyTool(AbstractTool):
    name: str = "mytool"
    category: str = "web"
    # Declare which target types this tool supports.
    # The orchestrator skips mismatched (tool, target) pairs automatically.
    applicable_targets: frozenset[TargetType] = frozenset({TargetType.URL, TargetType.HOST})

    def build_command(self, target: str, scan_input: ScanInput) -> list[str]:
        return ["mytool", "--target", target]

    def parse_output(self, raw: str, target: str) -> list[Finding]:
        findings = []
        for line in raw.splitlines():
            if "VULN" in line:
                findings.append(Finding(
                    title="Example finding",
                    severity=Severity.HIGH,
                    description=line,
                    tool=self.name,
                    target=target,
                ))
        return findings
```
2. इसे `vuln_scanner/tools/__init__.py` में पंजीकृत करें:```python
from vuln_scanner.tools.mytool import MyTool

TOOL_REGISTRY: dict[str, type[AbstractTool]] = {
    ...
    "mytool": MyTool,
}
```
3. बाइनरी को `Dockerfile` में जोड़ें:```dockerfile
RUN pacman -Sy --noconfirm mytool
```
**सुझाव:**
- stdout के बजाय किसी फ़ाइल में लिखने वाले टूल के लिए, `build_command()` में `OUTPUT_FILE_SENTINEL` का उपयोग करें और `run()` को ओवरराइड करके `self._run_with_tempfile()` को कॉल करें।
- `applicable_targets = frozenset(TargetType)` (डिफ़ॉल्ट) वाले टूल सभी टारगेट प्रकारों पर चलते हैं — इसका उपयोग केवल वास्तव में सार्वभौमिक टूलों के लिए करें।
- बाइनरी नहीं मिली → `ScanStatus.SKIPPED` (रिपोर्ट से छिपा हुआ)। टूल त्रुटि → `ScanStatus.FAILED` (परिशिष्ट A में दिखाया गया)।

---

## विकास```bash
# Install with dev dependencies
uv sync

# Run tests (host-safe only — no real tool execution)
uv run pytest tests/ -v

# Lint
uv run ruff check .
uv run ruff format .
```
**Test categories:**
- `tests/test_config.py` — कॉन्फ़िग मर्ज और सत्यापन
- `tests/test_target_typing.py` — `classify_target()` और `applies_to()`
- `tests/test_orchestrator_gating.py` — मॉक टूल्स के साथ टाइप-गेटिंग
- `tests/test_llm.py` — LLM सुविधाएँ, मॉक क्लाइंट, PoC रनर कंटेनर गार्ड
- `tests/test_reports.py` — सभी तीन रिपोर्टर (Markdown, HTML, JSON)
- `tests/test_nmap.py` — nmap आउटपुट पार्सर

**Safety rule:** होस्ट पर वास्तविक स्कैनिंग टूल कभी न चलाएँ। सभी टूल निष्पादन Docker कंटेनर के अंदर पृथक टार्गेट कंटेनरों के विरुद्ध होता है। `PocRunner` इसे लागू करता है — यह किसी भी PoC स्क्रिप्ट को निष्पादित करने से पहले `VS_IN_CONTAINER=1` की जाँच करता है, और Docker इमेज इस वेरिएबल को बेक करती है।

---

## DefectDojo एकीकरण

जब `api_key` और `product_name` कॉन्फ़िगर किए जाते हैं, तो निष्कर्ष स्वचालित रूप से पुश किए जाते हैं।

**अपनी API कुंजी प्राप्त करें:**
1. DefectDojo को http://localhost:8080 पर खोलें
2. लॉग इन करें (डिफ़ॉल्ट: `admin` / `admin`)
3. **Profile → API v2 Key** पर जाएँ

**मैन्युअल पुश:**```bash
VS_DEFECTDOJO_API_KEY=your-key \
VS_DEFECTDOJO_PRODUCT="My App" \
uv run vuln-scanner --targets 192.168.1.1
```
टूल डाउनलोड करें
फीचरडिफ़ॉल्टविवरण
logs_analysisonटूल के कच्चे आउटपुट को LLM को फीड करें
enrichonCWE / कॉन्फिडेंस / गलत-सकारात्मक / शोषणक्षमता ट्राइएज
classifyonखोज के प्रकार और जोखिम का वर्गीकरण करें
clusteronखोजों को मूल कारण के आधार पर समूहित करें
mitigationonशमन और सुधार उत्पन्न करें
generate_poconPoC स्क्रिप्ट्स को रिपोर्ट संपत्तियों के रूप में लिखें
execute_pocoffPoCs को कंटेनर में चलाएँ (आवश्यक है VS_IN_CONTAINER=1)
false_positive_filteronरिपोर्ट से संभावित गलत-सकारात्मक को दबाएँ
WebGoathttp://localhost:8888/WebGoatजानबूझकर असुरक्षित Java/Spring ऐप
सिस्टमURLप्रकारभेद्यता वर्ग
DVWAhttps://pentest-ground.com:4280क्लासिक वेब ऐपCSRF, XSS, SQLi
DVGQLhttps://pentest-ground.com:5013GraphQL APICMDi, XSS, SQLi
RestFlawhttps://pentest-ground.com:9000REST APISQLi, कोड इंजेक्शन, XXE
GuardianLeakshttps://pentest-ground.com:81वेब ऐपXSS, SSRF, कोड इंजेक्शन
vuln-scanner --targets \
https://pentest-ground.com:4280 \
https://pentest-ground.com:5013 \
https://pentest-ground.com:9000 \
https://pentest-ground.com:81 \
--mode active
FlagDescription
-t, --targets HOST...एक या अधिक स्कैन लक्ष्य (URL, IP, CIDR, पथ, इमेज)
-m, --mode MODEस्कैन मोड: passive | active | aggressive | paranoid
-c, --config FILEमाउंट करने के लिए कॉन्फ़िग फ़ाइल (डिफ़ॉल्ट: ./config.toml)
-f, --formats FMTरिपोर्ट प्रारूप, अल्पविराम से अलग: markdown,html,json; दोहराने योग्य
--no-llmLLM संवर्धन अक्षम करें
--llm-model MODELLLM मॉडल ओवरराइड (जैसे gpt-4o, claude-sonnet-4-5)
--llm-min-severity SEVLLM के लिए न्यूनतम गंभीरता: info|low|medium|high|critical
--include-tools TOOLSचलाने के लिए उपकरणों की अल्पविराम-पृथक सूची
--exclude-tools TOOLSछोड़ने के लिए उपकरणों की अल्पविराम-पृथक सूची
-e, --env KEY=VALUEकंटेनर को एक अतिरिक्त पर्यावरण चर पास करें
-b, --buildचलाने से पहले Docker इमेज को पुनर्निर्मित करें
-n, --no-defectdojoDefectDojo एकीकरण छोड़ें
--shellस्कैन करने के बजाय कंटेनर के अंदर एक इंटरैक्टिव शेल खोलें
-h, --helpसहायता दिखाएं