vulnerability-scanning – Security skill for AI agents
Scan systems and dependencies for CVEs and security vulnerabilities.
Install the vulnerability-scanning skill with one command
Pick the tool you use, copy the command and paste it in your terminal. The skill lands in that tool's skills folder and is ready in your next session.
Claude Code
mkdir -p ~/.claude/skills && curl -fsSL https://skill.dn1nguoi.com/z/vulnerability-scanning-073e6.tgz | tar xz -C ~/.claude/skills
Call it in Claude Code: /vulnerability-scanning – then describe the task you want done.
Codex
mkdir -p ~/.codex/skills && curl -fsSL https://skill.dn1nguoi.com/z/vulnerability-scanning-073e6.tgz | tar xz -C ~/.codex/skills
Call it in Codex: $vulnerability-scanning – then describe the task you want done.
Hermes Agent
mkdir -p ~/.hermes/skills && curl -fsSL https://skill.dn1nguoi.com/z/vulnerability-scanning-073e6.tgz | tar xz -C ~/.hermes/skills
Call it in Hermes Agent: /vulnerability-scanning – then describe the task you want done.
DeepSeek
mkdir -p ~/.deepcode/skills && curl -fsSL https://skill.dn1nguoi.com/z/vulnerability-scanning-073e6.tgz | tar xz -C ~/.deepcode/skills
Call it in DeepSeek: /vulnerability-scanning – then describe the task you want done.
SKILL.md content
> ⚠️ AUTHORIZED USE ONLY
> This skill is for educational purposes or authorized security assessments only.
> You must have explicit, written permission from the system owner before using this tool.
> Misuse of this tool is illegal and strictly prohibited.
> Mandatory confirmation gate
> Before running any command that probes, exploits, changes, persists on, extracts data from, or attempts credential access against a target:
> 1. Ask the user to state the exact target URL, IP, account, or resource.
> 2. Ask the user to confirm written authorization and the permitted scope.
> 3. Show the exact command(s) and explain their expected effect.
> 4. Wait for explicit confirmation in the current conversation.
>
> Without that confirmation, remain read-only and provide defensive guidance only. Prefer a sandbox, disposable VM, or controlled lab.
Vulnerability Scanning
Identify and prioritize security vulnerabilities across infrastructure and applications.
When to Use This Skill
Use this skill when:
- Performing security assessments
- Implementing vulnerability management programs
- Meeting compliance requirements
- Triaging and prioritizing remediation
- Scanning infrastructure for known CVEs
Prerequisites
- Access to scanning tools
- Network access to targets
- Appropriate authorization
Vulnerability Scanning Tools
| Tool | Type | Best For |
|------|------|----------|
| Nessus | Commercial | Enterprise scanning |
| OpenVAS | Open Source | Free alternative |
| Qualys | Cloud SaaS | Large scale |
| Nexpose/InsightVM | Commercial | Asset management |
| Nuclei | Open Source | Template-based |
OpenVAS Setup
Docker Deployment
The scanner container below is not a complete Greenbone management/web stack. Do not expect a web UI or universal admin/admin credentials from it. Use the current [official Community Container deployment](https://greenbone.github.io/docs/latest/22.4/container/), restrict bindings, initialize credentials privately and verify all component/feed health before scans. The legacy OMP examples below illustrate intent only; use the installed GMP tooling and never pass real passwords in command arguments.
# Run OpenVAS container
docker run -d --name openvas \
-p 443:443 \
-v openvas-data:/data \
greenbone/openvas-scanner
# Access web UI at https://localhost
# Default credentials: admin/adminScanning Commands
# Create target
omp -u admin -w admin --xml='<create_target>
<name>Web Servers</name>
<hosts>192.168.1.0/24</hosts>
</create_target>'
# Create task
omp -u admin -w admin --xml='<create_task>
<name>Weekly Scan</name>
<target id="target-uuid"/>
<config id="daba56c8-73ec-11df-a475-002264764cea"/>
</create_task>'
# Start task
omp -u admin -w admin --xml='<start_task task_id="task-uuid"/>'
# Get results
omp -u admin -w admin --xml='<get_results task_id="task-uuid"/>'Nessus
API Usage
import requests
import time
class NessusScanner:
def __init__(self, url, access_key, secret_key):
self.url = url
self.headers = {
'X-ApiKeys': f'accessKey={access_key}; secretKey={secret_key}',
'Content-Type': 'application/json'
}
def create_scan(self, name, targets, template='basic'):
"""Create a new scan."""
templates = self.get('/editor/scan/templates')
template_uuid = next(
t['uuid'] for t in templates['templates']
if t['name'] == template
)
payload = {
'uuid': template_uuid,
'settings': {
'name': name,
'text_targets': targets,
'enabled': True
}
}
return self.post('/scans', payload)
def launch_scan(self, scan_id):
"""Start a scan."""
return self.post(f'/scans/{scan_id}/launch')
def get_results(self, scan_id):
"""Get scan results."""
return self.get(f'/scans/{scan_id}')
def export_report(self, scan_id, format='pdf'):
"""Export scan report."""
payload = {'format': format}
response = self.post(f'/scans/{scan_id}/export', payload)
file_id = response['file']
# Wait for export
for attempt in range(120):
status = self.get(f'/scans/{scan_id}/export/{file_id}/status')
if status['status'] == 'ready':
break
time.sleep(5)
else:
raise TimeoutError('Export not ready; retain file_id before retrying')
return self.get(f'/scans/{scan_id}/export/{file_id}/download')
def get(self, path):
response = requests.get(f'{self.url}{path}', headers=self.headers, timeout=30)
response.raise_for_status()
return response.json()
def post(self, path, data=None):
response = requests.post(f'{self.url}{path}', json=data, headers=self.headers, timeout=30)
response.raise_for_status()
return response.json()
# Usage
scanner = NessusScanner('https://nessus:8834', 'access-key', 'secret-key')
scan = scanner.create_scan('Weekly Infrastructure Scan', '10.0.0.0/24')
scanner.launch_scan(scan['scan']['id'])Nuclei
Installation
# Install nuclei
go install -v github.com/projectdiscovery/nuclei/v3/cmd/nuclei@latest
# Or download binary
wget https://github.com/projectdiscovery/nuclei/releases/latest/download/nuclei_linux_amd64.zip
unzip nuclei_linux_amd64.zipBasic Scanning
# Update templates
nuclei -update-templates
# Scan single target
nuclei -u https://example.com
# Scan multiple targets
nuclei -l targets.txt
# Scan with specific templates
nuclei -u https://example.com -t cves/
nuclei -u https://example.com -t vulnerabilities/
# Scan with severity filter
nuclei -u https://example.com -s critical,high
# Output formats
nuclei -u https://example.com -o results.txt
nuclei -u https://example.com -json -o results.jsonCustom Templates
# custom-check.yaml
id: custom-admin-panel
info:
name: Admin Panel Detection
author: security-team
severity: info
tags: recon,panel
requests:
- method: GET
path:
- "{{BaseURL}}/admin"
- "{{BaseURL}}/administrator"
- "{{BaseURL}}/wp-admin"
matchers-condition: or
matchers:
- type: word
words:
- "admin"
- "login"
condition: and
- type: status
status:
- 200
- 301
- 302The Nessus class is illustrative: configure a trusted certificate/CA (never disable verification), check terminal error states, and download report bytes separately rather than calling JSON decoding on a PDF. Keep API keys and report contents out of logs.
CVSS Scoring
Severity Levels
| Score | Rating | Response Time |
|-------|--------|---------------|
| 9.0-10.0 | Critical | 24 hours |
| 7.0-8.9 | High | 7 days |
| 4.0-6.9 | Medium | 30 days |
| 0.1-3.9 | Low | 90 days |
Prioritization Factors
prioritization_criteria:
critical_factors:
- Internet-facing systems
- Systems with sensitive data
- Active exploitation in the wild
- Authentication bypass
high_factors:
- Remote code execution
- Privilege escalation
- Data exfiltration risk
context_adjustments:
- Compensating controls in place (-1)
- No direct exposure (-1)
- Critical business system (+1)
- Compliance requirement (+1)Vulnerability Management Process
Workflow
vulnerability_workflow:
discovery:
- Run scheduled scans
- Import third-party findings
- Correlate with asset inventory
analysis:
- Validate findings
- Remove false positives
- Assess business impact
- Prioritize by risk score
remediation:
- Assign to owners
- Track SLA compliance
- Verify fixes
- Document exceptions
reporting:
- Executive summaries
- Technical details
- Trend analysis
- Compliance metricsResponse-time targets are organizational examples, not universal CVSS requirements. Preserve the original CVSS vector/version and describe business priority separately instead of arithmetically modifying the score. Compliance criteria require the current applicable standard and qualified review.
Tracking Template
This ticket is fictional; replace CVE, product/version and remediation with a verified vendor advisory. Do not infer that the illustrated CVE identifies the described Struts issue.
## Vulnerability Ticket
**ID:** VULN-2024-001
**CVE:** CVE-2024-12345
**CVSS:** 9.8 (Critical)
**Affected System:** web-server-01
### Description
Remote code execution vulnerability in Apache Struts.
### Impact
Attacker can execute arbitrary code on the server.
### Remediation
1. Update Apache Struts to version 2.5.33
2. Apply WAF rule as temporary mitigation
### Timeline
- Discovered: 2… (full content is in the download package)
Related skills
- waf-setup – Deploy and tune Web Application Firewalls. Configure rules for OWASP Top 10 protection…
- wcag-audit-patterns – Comprehensive guide to auditing web content against WCAG 2.2 guidelines with actionable…
- web-security-testing – Web application security testing workflow for OWASP Top 10 vulnerabilities including…
- web2-recon – Web2 recon pipeline
- web3-audit – Smart contract security audit
- windows-hardening – Harden Windows servers per security baselines and CIS benchmarks. Configure Group…
- windows-privilege-escalation – Provide systematic methodologies for discovering and exploiting privilege escalation…
- xss-html-injection – Execute comprehensive client-side injection vulnerability assessments on web…