Files
knowledge-base/4 - Resources/OpenVAS Usage Guide.md
Yaojia Wang ad79665527 Sync
2026-03-14 20:23:32 +01:00

12 KiB
Raw Permalink Blame History

created, type, tags
created type tags
2026-03-08 resource
security
openvas
vulnerability-scanning
homelab

OpenVAS Usage Guide

Greenbone OpenVAS 漏洞扫描平台使用指南。基于 Greenbone Community Edition部署在 PVE Security Scanner 上。

Access

Item Value
URL https://192.168.68.84
Backup URL https://192.168.68.84:9392
Username admin
Certificate Self-signed (浏览器需接受警告)

Core Concepts

Concept Description
Target 扫描目标,可以是单个 IP、IP 范围、子网 (CIDR)
Port List 要扫描的端口集合 (默认提供 All TCP, Top 100, Top 1000 等)
Scan Config 扫描策略,控制检测深度和范围
Task 将 Target + Scan Config 组合成一个可执行的扫描任务
Report 扫描结果报告,包含发现的漏洞和风险评级
Schedule 定时执行扫描任务
Alert 扫描完成后的通知动作 (邮件、HTTP 回调等)
NVT Network Vulnerability Test单个漏洞检测脚本
CVE 公共漏洞编号OpenVAS 关联 CVE 数据库
CVSS 漏洞评分标准 (0-10),用于风险评级

Scan Configs (扫描策略)

Config Speed Depth Use Case
Discovery Fast Low 仅发现主机和服务,不做漏洞检测
Host Discovery Very Fast Minimal 只检测主机是否存活
System Discovery Fast Low 发现操作系统和服务版本
Base Medium Medium 基础漏洞扫描,不含危险测试
Full and fast Medium High 完整扫描,跳过慢速 NVT (推荐日常使用)
Full and deep Slow Very High 深度扫描,包含所有 NVT
Full and deep ultimate Very Slow Maximum 包含可能导致服务中断的测试 (慎用)

Quick Start: First Scan

Step 1: Create Target

  1. Menu: Configuration -> Targets
  2. Click New Target (左上角星号图标)
  3. Fill in:
    • Name: Internal Network (或具体名称)
    • Hosts: 192.168.68.0/24 (或单个 IP)
    • Port List: 选择 All TCP and Nmap top 100 UDP
  4. Click Save

Step 2: Create Task

  1. Menu: Scans -> Tasks
  2. Click New Task (左上角星号图标)
  3. Fill in:
    • Name: Internal Network Scan
    • Scan Targets: 选择刚创建的 Target
    • Scanner: OpenVAS Default
    • Scan Config: 选择策略 (建议首次用 Full and fast)
  4. Click Save

Step 3: Run Scan

  1. 在 Task 列表中找到刚创建的任务
  2. 点击绿色 Start 按钮 (播放图标)
  3. Status 会从 New -> Requested -> Running -> Done
  4. 扫描时间取决于目标数量和策略:
    • 单台主机 Full and fast: 10-30 分钟
    • /24 子网 Full and fast: 2-8 小时

Step 4: View Report

  1. Task 完成后,点击 Last Report 日期链接
  2. 报告页面展示所有发现的漏洞
  3. 按 Severity 排序查看高危漏洞

Report Reading

Severity Levels

Level CVSS Color Action
Critical 9.0-10.0 Purple 立即修复
High 7.0-8.9 Red 尽快修复
Medium 4.0-6.9 Orange 计划修复
Low 0.1-3.9 Blue 评估后决定
Log N/A Grey 信息收集,无需操作

Report Sections

  • Results: 所有发现的漏洞列表
  • Hosts: 按主机分组的结果
  • Operating Systems: 检测到的操作系统
  • Applications: 检测到的应用程序
  • TLS Certificates: SSL/TLS 证书信息
  • Error Messages: 扫描过程中的错误

Export Report

  1. 打开 Report
  2. 左上角下拉选择格式:
    • PDF - 适合分享和存档
    • CSV - 适合数据分析
    • XML - 适合导入其他工具
    • TXT - 纯文本摘要
  3. Click download icon

Common Scan Scenarios

Scenario 1: Scan Single Server

Target: 192.168.68.31 (PostgreSQL server) Config: Full and fast Port List: All TCP and Nmap top 100 UDP

重点关注:

  • PostgreSQL 版本漏洞
  • SSH 配置问题
  • 系统补丁缺失

Scenario 2: Scan Entire Network

Target: 192.168.68.0/24 Config: Full and fast Port List: All TCP and Nmap top 100 UDP

首次扫描建议在非工作时间进行,扫描会产生较大网络流量。

Scenario 3: Web Application Scan

Target: Web 服务器 IP Config: Full and deep Port List: All TCP

重点关注:

  • HTTP 相关漏洞 (XSS, SQL injection, CSRF)
  • TLS 配置 (弱加密、过期证书)
  • Web 服务器版本泄露

Scenario 4: Compliance Check

Target: 所有关键服务器 Config: Full and fast

对照报告检查:

  • 是否有默认密码
  • 是否有未打补丁的服务
  • 是否有不安全的协议 (telnet, FTP, SSLv3)

Scheduled Scans

Create Schedule

  1. Menu: Configuration -> Schedules
  2. Click New Schedule
  3. Fill in:
    • Name: Weekly Internal Scan
    • First Run: 选择开始时间 (建议非工作时间,如周日凌晨 2:00)
    • Period: 1 week
    • Duration: 留空 (无时间限制)
  4. Click Save

Assign Schedule to Task

  1. Edit existing Task
  2. Schedule 字段选择刚创建的 Schedule
  3. Save

Task 会按计划自动执行,报告自动生成。

Alerts (通知)

Email Alert

  1. Menu: Configuration -> Alerts
  2. Click New Alert
  3. Fill in:
    • Name: High Severity Email
    • Event: Task run status changed -> Done
    • Condition: Severity at least -> 7.0 (High)
    • Method: Email
    • To Address: 你的邮箱
    • From Address: scanner@localhost
  4. Click Save
  5. 在 Task 中关联此 Alert

Note: 需要配置 VM 的 SMTP 发送邮件。

Credential Scans (认证扫描)

认证扫描可以检测更多漏洞(如本地提权、软件版本),因为扫描器可以登录目标系统。

Create SSH Credential

  1. Menu: Configuration -> Credentials
  2. Click New Credential
  3. Fill in:
    • Name: Linux SSH Scan
    • Type: Username + SSH KeyUsername + Password
    • Username: 目标系统的用户名
    • Password/Key: 对应的认证信息
    • Auto Generate: No
  4. Click Save

Use in Target

  1. Edit Target
  2. SSH Credential 字段选择创建的 Credential
  3. Save

认证扫描会发现更多漏洞(如未打补丁的本地包、内核漏洞)。

Performance Tips

Tip Effect
缩小端口范围 减少扫描时间
Full and fast 而非 Full and deep 快 2-5x覆盖 90% 漏洞
分段扫描大网络 避免超时和资源耗尽
避免工作时间扫描 减少对生产环境影响
定期更新 Feed 保持漏洞库最新

Maintenance

Update Vulnerability Feed

Feed 自动通过 Docker 容器更新。手动触发:

ssh kai@192.168.68.84
cd /opt/greenbone
sudo docker compose pull
sudo docker compose up -d

Check Feed Status

Web UI: Administration -> Feed Status

Feed Description
NVT 漏洞检测脚本 (最重要)
SCAP CVE/CPE 数据
CERT 安全公告
GVMD_DATA 扫描策略和端口列表

所有 Feed 应显示 Current。如果显示 Update in progress,等待同步完成。

Backup

# 备份所有 Docker volumes
ssh kai@192.168.68.84
cd /opt/greenbone
sudo docker compose down
sudo tar czf /tmp/greenbone-backup-$(date +%Y%m%d).tar.gz \
    /var/lib/docker/volumes/greenbone-community-edition_*
sudo docker compose up -d

Reset Admin Password

ssh kai@192.168.68.84
cd /opt/greenbone
sudo docker compose exec -u gvmd gvmd gvmd --user=admin --new-password=<NEW_PASSWORD>

Report Workflow (报告使用流程)

Priority Matrix

Priority CVSS Example Timeline Action
Critical 9.0-10.0 远程代码执行、默认密码、未授权访问 24h 内 立即修复
High 7.0-8.9 本地提权、敏感信息泄露、SQL 注入 1 周内 尽快修复
Medium 4.0-6.9 弱加密、软件版本过旧、TLS 配置不当 1 月内 排期修复
Low 0.1-3.9 信息收集、Banner 暴露、非敏感信息泄露 按需 评估后决定

Step-by-Step Workflow

Step 1: Export Report

  • 打开 Report -> 左上角选择格式
  • 导出 PDF (存档分享) + CSV (数据分析)
  • 建议按日期归档: scans/2026-03-09-full-network.pdf

Step 2: Triage by Host

  • Hosts 标签,按漏洞数量排序
  • 识别问题最多的主机,优先处理

Step 3: Analyze Vulnerabilities

  • 点进具体漏洞,关注以下字段:
    • Summary: 漏洞描述(是什么)
    • Impact: 被利用后的影响(为什么要修)
    • Solution: 修复建议(怎么修)-- 最有价值的部分
    • CVE Reference: 关联的 CVE 编号(可查详细信息)
    • Affected Software/OS: 受影响的软件版本

Step 4: Create Remediation Plan

  • 按优先级为每个 Critical/High 漏洞创建修复任务
  • 记录:主机 IP、漏洞名称、CVE、修复方案、负责人
  • Medium 漏洞汇总为批量修复任务(如统一升级某软件)

Step 5: Fix and Rescan

  • 修复完成后,对同一 Target 重新扫描
  • 对比两次 Report确认漏洞已消除
  • Web UI: Scans -> Reports 可以看历史趋势

Recurring Scan Process

建议建立周期性扫描流程:

周日凌晨 2:00  自动全网扫描 (OpenVAS Schedule)
       |
周一上午        查看报告,按优先级分类
       |
周一-周五       修复 Critical 和 High 漏洞
       |
下周日          自动复扫,对比改善情况
       |
每月最后一周    导出月度报告,归档存储

Setup: Configuration -> Schedules -> 创建 Weekly Schedule (Sunday 02:00)

Report Comparison (趋势分析)

跟踪安全改善情况:

Metric How to Track
Critical/High 漏洞数量变化 每周报告对比
平均修复时间 记录发现日期和修复日期
新增 vs 已修复 对比相邻两次扫描
最高风险主机 按 Host 的 Severity Score 排序

Common Findings and Fixes

Finding Typical Fix
SSH weak algorithms 更新 /etc/ssh/sshd_config 加密套件
SSL/TLS outdated 升级到 TLS 1.2+,禁用弱密码套件
Default credentials 修改默认密码,禁用默认账户
Missing patches apt upgrade / 系统补丁更新
Open unnecessary ports 关闭不需要的服务,配置防火墙
HTTP without HTTPS 配置 TLS 证书,强制 HTTPS 重定向
SMBv1 enabled 禁用 SMBv1启用 SMBv2/v3
SNMP public community 修改 community string 或禁用 SNMP

CLI Access (gvm-tools)

除了 Web UI也可以通过命令行操作

ssh kai@192.168.68.84
cd /opt/greenbone

# 进入 gvm-tools 容器
sudo docker compose exec gvm-tools bash

# 列出所有 task
gvm-cli --gmp-username admin --gmp-password <PASSWORD> \
    socket --socketpath /run/gvmd/gvmd.sock \
    --xml '<get_tasks/>'

# 列出所有 target
gvm-cli --gmp-username admin --gmp-password <PASSWORD> \
    socket --socketpath /run/gvmd/gvmd.sock \
    --xml '<get_targets/>'

Troubleshooting

Problem Solution
Web UI 打不开 sudo docker compose ps 检查容器状态
登录失败 Reset admin password (见上方)
Feed 一直 updating 首次同步需 30-60 分钟,耐心等待
扫描卡在 Requested 检查 ospd-openvas 容器日志: sudo docker compose logs ospd-openvas
扫描结果为空 确认 Feed 已同步完成;检查目标网络是否可达
只扫到本机 ospd-openvas 需要 network_mode: host 才能到达局域网
Feed is syncing 漏洞库同步中等几分钟到半小时Feed Status 全部 Current 后再扫
扫描速度很慢 减少目标范围;使用 Full and fast 策略
容器反复重启 sudo docker compose logs <service> 查看错误
磁盘空间不足 df -h 检查;清理旧报告和 Docker 无用镜像 sudo docker system prune