performing-authenticated-scan-with-openvas

使用 OpenVAS/Greenbone 漏洞管理(GVM)框架配置并执行凭据认证漏洞扫描,支持 SSH 和 SMB 凭据,实现全面的主机级别安全评估。

9 stars

Best use case

performing-authenticated-scan-with-openvas is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

使用 OpenVAS/Greenbone 漏洞管理(GVM)框架配置并执行凭据认证漏洞扫描,支持 SSH 和 SMB 凭据,实现全面的主机级别安全评估。

Teams using performing-authenticated-scan-with-openvas should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/performing-authenticated-scan-with-openvas/SKILL.md --create-dirs "https://raw.githubusercontent.com/killvxk/cybersecurity-skills-zh/main/skills/performing-authenticated-scan-with-openvas/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/performing-authenticated-scan-with-openvas/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How performing-authenticated-scan-with-openvas Compares

Feature / Agentperforming-authenticated-scan-with-openvasStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

使用 OpenVAS/Greenbone 漏洞管理(GVM)框架配置并执行凭据认证漏洞扫描,支持 SSH 和 SMB 凭据,实现全面的主机级别安全评估。

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# 使用 OpenVAS 执行认证扫描

## 概述

OpenVAS(开放式漏洞评估扫描器,Open Vulnerability Assessment Scanner)是 Greenbone 漏洞管理(GVM,Greenbone Vulnerability Management)框架的扫描组件。认证扫描使用有效凭据(Linux 使用 SSH、Windows 使用 SMB、VMware 使用 ESXi)登录目标系统,能够检测本地漏洞、缺失补丁以及未认证扫描无法发现的配置错误。认证扫描通常比未认证扫描发现多 10-50 倍的漏洞。

## 前置条件

- 已安装 GVM 22.x+(gvmd、openvas-scanner、gsad、ospd-openvas)
- 已为 gvmd 配置 PostgreSQL 数据库
- 已为 openvas-scanner 配置 Redis
- 已同步 NVT 漏洞数据库(greenbone-nvt-sync 或 greenbone-feed-sync)
- Linux 目标系统的 SSH 凭据或 Windows 目标系统的 SMB 凭据
- 扫描端口到目标主机的网络访问权限

## 安装

### 在 Kali Linux / Debian 上安装 GVM
```bash
# 安装 GVM 软件包
sudo apt update && sudo apt install -y gvm

# 执行初始化设置(创建管理员账户,同步漏洞数据库)
sudo gvm-setup

# 检查安装状态
sudo gvm-check-setup

# 启动所有 GVM 服务
sudo gvm-start

# 访问 Greenbone Security Assistant:https://127.0.0.1:9392
```

### 通过 Docker 安装(推荐用于生产环境)
```bash
# 拉取 Greenbone 社区版镜像
docker pull greenbone/gvm:stable

# 使用 docker-compose 运行
curl -fsSL https://greenbone.github.io/docs/latest/_static/docker-compose-22.4.yml \
  -o docker-compose.yml

# 启动容器栈
docker compose -f docker-compose.yml -p greenbone-community-edition up -d

# 等待漏洞数据库同步(首次同步需 15-30 分钟)
docker compose -f docker-compose.yml -p greenbone-community-edition \
  logs -f gvmd 2>&1 | grep -i "feed"
```

## 配置凭据

### Linux 目标系统的 SSH 凭据
```bash
# 使用 gvm-cli 创建基于密钥认证的 SSH 凭据
gvm-cli socket --socketpath /run/gvmd/gvmd.sock --gmp-username admin --gmp-password <password> --xml \
  '<create_credential>
    <name>Linux SSH Key</name>
    <type>usk</type>
    <login>scan_user</login>
    <key>
      <private><![CDATA['"$(cat /home/scan_user/.ssh/id_rsa)"']]></private>
      <phrase>key_passphrase</phrase>
    </key>
  </create_credential>'

# 创建基于密码认证的 SSH 凭据
gvm-cli socket --socketpath /run/gvmd/gvmd.sock --gmp-username admin --gmp-password <password> --xml \
  '<create_credential>
    <name>Linux SSH Password</name>
    <type>up</type>
    <login>scan_user</login>
    <password>scan_password_here</password>
  </create_credential>'
```

### Windows 目标系统的 SMB 凭据
```bash
# 创建用于 Windows 认证扫描的 SMB 凭据
gvm-cli socket --socketpath /run/gvmd/gvmd.sock --gmp-username admin --gmp-password <password> --xml \
  '<create_credential>
    <name>Windows SMB Cred</name>
    <type>up</type>
    <login>DOMAIN\scan_account</login>
    <password>smb_password_here</password>
  </create_credential>'
```

### ESXi 凭据
```bash
# 创建用于 VMware 主机扫描的 ESXi 凭据
gvm-cli socket --socketpath /run/gvmd/gvmd.sock --gmp-username admin --gmp-password <password> --xml \
  '<create_credential>
    <name>ESXi Root</name>
    <type>up</type>
    <login>root</login>
    <password>esxi_password_here</password>
  </create_credential>'
```

## 创建扫描目标

```bash
# 创建带有 SSH 凭据的目标(Linux 主机)
gvm-cli socket --socketpath /run/gvmd/gvmd.sock --gmp-username admin --gmp-password <password> --xml \
  '<create_target>
    <name>Linux Production Servers</name>
    <hosts>192.168.1.10,192.168.1.11,192.168.1.12</hosts>
    <port_list id="33d0cd82-57c6-11e1-8ed1-406186ea4fc5"/>
    <ssh_credential id="CREDENTIAL_UUID_HERE">
      <port>22</port>
    </ssh_credential>
    <alive_test>ICMP, TCP-ACK Service and ARP Ping</alive_test>
  </create_target>'

# 创建带有 SMB 凭据的目标(Windows 主机)
gvm-cli socket --socketpath /run/gvmd/gvmd.sock --gmp-username admin --gmp-password <password> --xml \
  '<create_target>
    <name>Windows Domain Controllers</name>
    <hosts>192.168.1.20,192.168.1.21</hosts>
    <port_list id="33d0cd82-57c6-11e1-8ed1-406186ea4fc5"/>
    <smb_credential id="SMB_CREDENTIAL_UUID_HERE"/>
    <alive_test>ICMP, TCP-ACK Service and ARP Ping</alive_test>
  </create_target>'
```

## 扫描配置

### 内置扫描配置
| 配置名称 | OID | 适用场景 |
|------------|-----|----------|
| Full and fast | daba56c8-73ec-11df-a475-002264764cea | 标准生产环境扫描 |
| Full and deep | 708f25c4-7489-11df-8094-002264764cea | 深度扫描,可能影响性能 |
| System Discovery | 8715c877-47a0-438d-98a3-27c7a6ab2196 | 主机与服务枚举 |

### 为认证扫描创建自定义扫描配置
```bash
# 克隆 "Full and fast" 配置并自定义
gvm-cli socket --socketpath /run/gvmd/gvmd.sock --gmp-username admin --gmp-password <password> --xml \
  '<create_config>
    <copy>daba56c8-73ec-11df-a475-002264764cea</copy>
    <name>Authenticated Full Scan</name>
  </create_config>'
```

## 执行扫描

### 创建并启动扫描任务
```bash
# 创建扫描任务
gvm-cli socket --socketpath /run/gvmd/gvmd.sock --gmp-username admin --gmp-password <password> --xml \
  '<create_task>
    <name>Weekly Authenticated Scan - Linux Prod</name>
    <config id="CONFIG_UUID"/>
    <target id="TARGET_UUID"/>
    <scanner id="08b69003-5fc2-4037-a479-93b440211c73"/>
  </create_task>'

# 启动扫描任务
gvm-cli socket --socketpath /run/gvmd/gvmd.sock --gmp-username admin --gmp-password <password> --xml \
  '<start_task task_id="TASK_UUID"/>'

# 检查扫描进度
gvm-cli socket --socketpath /run/gvmd/gvmd.sock --gmp-username admin --gmp-password <password> --xml \
  '<get_tasks task_id="TASK_UUID"/>'
```

### 配置周期性扫描
```bash
# 创建每周计划(每周日凌晨 2:00 UTC)
gvm-cli socket --socketpath /run/gvmd/gvmd.sock --gmp-username admin --gmp-password <password> --xml \
  '<create_schedule>
    <name>Weekly Sunday 2AM</name>
    <icalendar>
BEGIN:VCALENDAR
VERSION:2.0
BEGIN:VEVENT
DTSTART:20240101T020000Z
RRULE:FREQ=WEEKLY;BYDAY=SU
DURATION:PT12H
END:VEVENT
END:VCALENDAR
    </icalendar>
    <timezone>UTC</timezone>
  </create_schedule>'
```

## 导出扫描结果

```bash
# 以 XML 格式导出扫描报告
gvm-cli socket --socketpath /run/gvmd/gvmd.sock --gmp-username admin --gmp-password <password> --xml \
  '<get_reports report_id="REPORT_UUID" format_id="a994b278-1f62-11e1-96ac-406186ea4fc5"/>'

# 以 CSV 格式导出
gvm-cli socket --socketpath /run/gvmd/gvmd.sock --gmp-username admin --gmp-password <password> --xml \
  '<get_reports report_id="REPORT_UUID" format_id="c1645568-627a-11e3-a660-406186ea4fc5"/>'

# 使用 python-gvm 进行程序化访问
python3 -c "
from gvm.connections import UnixSocketConnection
from gvm.protocols.gmp import Gmp
from gvm.transforms import EtreeCheckCommandTransform

connection = UnixSocketConnection(path='/run/gvmd/gvmd.sock')
transform = EtreeCheckCommandTransform()
with Gmp(connection=connection, transform=transform) as gmp:
    gmp.authenticate('admin', 'password')
    reports = gmp.get_reports()
    print(f'Total reports: {len(reports)}')
"
```

## 验证认证成功

```bash
# 检查扫描过程中凭据是否被接受
# 在扫描报告中查找 NVT "Authentication tests" 结果:
# - OID 1.3.6.1.4.1.25623.1.0.103591(SSH 认证成功)
# - OID 1.3.6.1.4.1.25623.1.0.90023(SMB 认证成功)

# 通过 gvm-cli 验证
gvm-cli socket --socketpath /run/gvmd/gvmd.sock --gmp-username admin --gmp-password <password> --xml \
  '<get_results filter="name=SSH rows=10 sort-reverse=severity"/>'
```

## 参考资料

- [OpenVAS 官方网站](https://www.openvas.org/)
- [Greenbone 社区版文档](https://greenbone.github.io/docs/latest/)
- [GVM GitHub 仓库](https://github.com/greenbone/openvas-scanner)
- [python-gvm 库](https://github.com/greenbone/python-gvm)
- [GVM Docker 部署](https://greenbone.github.io/docs/latest/22.4/container/)

Related Skills

scanning-network-with-nmap-advanced

9
from killvxk/cybersecurity-skills-zh

使用 Nmap 的脚本引擎、时序控制、规避技术和输出解析,对授权目标网络执行高级网络侦察, 发现主机、枚举服务、检测漏洞并识别操作系统。

scanning-kubernetes-manifests-with-kubesec

9
from killvxk/cybersecurity-skills-zh

使用 Kubesec 对 Kubernetes 资源清单执行安全风险分析,识别错误配置、权限提升风险以及与安全最佳实践的偏差。

scanning-infrastructure-with-nessus

9
from killvxk/cybersecurity-skills-zh

Tenable Nessus 是业界领先的漏洞扫描器,用于识别网络基础设施(包括服务器、工作站、网络设备和操作系统)中的安全弱点。

scanning-docker-images-with-trivy

9
from killvxk/cybersecurity-skills-zh

Trivy 是 Aqua Security 开源的综合性漏洞扫描器,用于检测容器镜像中操作系统软件包、语言特定依赖项的漏洞、错误配置、密钥和许可证违规,并集成到 CI/CD 流水线,支持 SARIF、CycloneDX 和 SPDX 等多种输出格式。

scanning-containers-with-trivy-in-cicd

9
from killvxk/cybersecurity-skills-zh

本技能涵盖将 Aqua Security 的 Trivy 扫描器集成到 CI/CD 流水线中,用于全面的容器镜像漏洞检测。包括扫描 Docker 镜像中的操作系统包和应用依赖 CVE、检测 Dockerfile 中的错误配置、扫描文件系统和 Git 仓库,以及建立基于严重性的质量门禁以阻止有漏洞的镜像部署。

scanning-container-images-with-grype

9
from killvxk/cybersecurity-skills-zh

使用 Anchore Grype 扫描容器镜像的已知漏洞(Vulnerability),支持基于 SBOM 的匹配和可配置的严重性阈值。

performing-yara-rule-development-for-detection

9
from killvxk/cybersecurity-skills-zh

通过识别可执行文件中的唯一字节模式、字符串和行为指标,开发精准的 YARA 恶意软件检测规则,同时将误报率降至最低。

performing-wireless-security-assessment-with-kismet

9
from killvxk/cybersecurity-skills-zh

使用 Kismet 通过被动射频监控进行无线网络安全评估,检测流氓接入点(Rogue AP)、隐藏 SSID、弱加密和未授权客户端。

performing-wireless-network-penetration-test

9
from killvxk/cybersecurity-skills-zh

执行无线网络渗透测试,通过捕获握手包、破解 WPA2/WPA3 密钥、检测流氓接入点以及使用 Aircrack-ng 和相关工具测试无线网络分段,评估 WiFi 安全性。

performing-windows-artifact-analysis-with-eric-zimmerman-tools

9
from killvxk/cybersecurity-skills-zh

使用 Eric Zimmerman 的开源 EZ Tools 套件(包括 KAPE、MFTECmd、PECmd、LECmd、JLECmd 和 Timeline Explorer)执行全面的 Windows 取证制品分析,解析注册表 hive、预取文件、事件日志和文件系统元数据。

performing-wifi-password-cracking-with-aircrack

9
from killvxk/cybersecurity-skills-zh

在授权无线安全评估中捕获 WPA/WPA2 握手包,并使用 aircrack-ng、hashcat 和字典攻击进行离线密码破解, 以评估密码短语强度和无线网络安全状况。

performing-web-cache-poisoning-attack

9
from killvxk/cybersecurity-skills-zh

在授权安全测试期间,通过未纳入缓存键的头部和参数毒化缓存响应,利用 Web 缓存机制向其他用户投递恶意内容。