Skip to main content 首页 创作者 bagelhole devops-security-agent-skills vulnerability-scanning
vulnerability-scanning Scan systems and dependencies for CVEs and security vulnerabilities. Use tools like Nessus, OpenVAS, and Qualys to identify and prioritize vulnerabilities. Use when performing security assessments, compliance scanning, or vulnerability management.
跳到安装 Skills Marketplace 发现并探索由社区构建的 Agent Skills
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/BagelHole/DevOps-Security-Agent-Skills --skill vulnerability-scanning命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
下载 Zip 下载中... name vulnerability-scanning description Scan systems and dependencies for CVEs and security vulnerabilities. Use tools like Nessus, OpenVAS, and Qualys to identify and prioritize vulnerabilities. Use when performing security assessments, compliance scanning, or vulnerability management. license MIT metadata {"author":"devops-skills","version":"1.0"}
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
Nuclei Open Source Template-based
OpenVAS Setup
Docker Deployment
docker run -d --name openvas \
-p 443:443 \
-v openvas-data:/data \
greenbone/openvas-scanner
Scanning Commands
omp -u admin -w admin --xml='<create_target>
<name>Web Servers</name>
<hosts>192.168.1.0/24</hosts>
</create_target>'
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>'
omp -u admin -w admin --xml='<start_task task_id="task-uuid"/>'
omp -u admin -w admin --xml='<get_results task_id="task-uuid"/>'
Nessus
API Usage import requests
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' ]
while True :
status = self .get(f'/scans/{scan_id} /export/{file_id} /status' )
if status['status' ] == 'ready' :
break
time.sleep(5 )
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, verify=False )
return response.json()
def post (self, path, data=None ):
response = requests.post(f'{self.url} {path} ' , json=data, headers=self .headers, verify=False )
return response.json()
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
go install -v github.com/projectdiscovery/nuclei/v3/cmd/nuclei@latest
wget https://github.com/projectdiscovery/nuclei/releases/latest/download/nuclei_linux_amd64.zip
unzip nuclei_linux_amd64.zip
Basic Scanning
nuclei -update-templates
nuclei -u https://example.com
nuclei -l targets.txt
nuclei -u https://example.com -t cves/
nuclei -u https://example.com -t vulnerabilities/
nuclei -u https://example.com -s critical,high
nuclei -u https://example.com -o results.txt
nuclei -u https://example.com -json -o results.json
Custom Templates
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
- 302
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 metrics
Tracking Template ## 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: 2024-01-15
- SLA Due: 2024-01-16
- Remediated: 2024-01-15
### Evidence
- Scan report: [link]
- Screenshot: [link]
CI/CD Integration
GitHub Actions name: Vulnerability Scan
on:
schedule:
- cron: '0 2 * * *'
push:
branches: [main ]
jobs:
scan:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Run Nuclei
uses: projectdiscovery/nuclei-action@main
with:
target: https://example.com
templates: cves/
output: nuclei-results.txt
- name: Check for critical findings
run: |
if grep -q "critical" nuclei-results.txt; then
echo "Critical vulnerabilities found!"
exit 1
fi
- name: Upload results
uses: actions/upload-artifact@v4
with:
name: vulnerability-report
path: nuclei-results.txt
Compliance Scanning
CIS Benchmark Scan
oscap xccdf eval \
--profile xccdf_org.ssgproject.content_profile_cis \
--results results.xml \
--report report.html \
/usr/share/xml/scap/ssg/content/ssg-ubuntu2204-ds.xml
PCI DSS Scanning pci_scan_requirements:
quarterly:
- External vulnerability scan (ASV)
- Internal vulnerability scan
after_changes:
- Significant infrastructure changes
- New system deployments
passing_criteria:
- No vulnerabilities rated 4.0 + (CVSS)
- False positives documented
- Scan completed within 90 days
Common Issues
Issue: False Positives Problem : Scanner reports non-existent vulnerabilities
Solution : Validate manually, tune scanner, maintain exception list
Issue: Incomplete Coverage Problem : Not all assets scanned
Solution : Update asset inventory, verify credentials, check network access
Issue: Scan Impact Problem : Scans affecting production systems
Solution : Schedule during maintenance windows, use authenticated scans
Best Practices
Maintain accurate asset inventory
Schedule regular scan cadence
Validate findings before remediation
Track metrics (MTTR, aging)
Integrate with ticketing systems
Document exceptions properly
Use risk-based prioritization
Automate where possible
Related Skills