jsmith-sec/vulnerability-assessment-lab
GitHub: jsmith-sec/vulnerability-assessment-lab
一个家庭 SOC 漏洞评估实验室项目,通过 Docker 在 Ubuntu ARM64 上部署 Greenbone OpenVAS 执行漏洞扫描,并完整记录了部署过程中的兼容性挑战、故障排除与扫描结果。
Stars: 0 | Forks: 0
# 漏洞评估实验室
一个家庭 SOC 实验室,通过 Docker 部署 Greenbone Community Edition (OpenVAS) 对本地网络目标执行漏洞评估,并完整记录了设置挑战、ARM64 兼容性问题以及扫描结果。
## 概述
本实验室在 Ubuntu 26.04 ARM64 上的 Docker 环境中安装并配置 Greenbone Community Edition,同步完整的 Greenbone 漏洞源 (156,018 NVTs),并对两个本地网络目标运行扫描。该实验室记录了一个真实的故障排查场景,涉及 Python 3.14 与 ospd-openvas 的不兼容问题以及 ARM64 Docker 扫描器的限制。
**扫描器:** Greenbone Community Edition 26.18.0 (Docker)
**目标:** Ubuntu-SIEM (192.168.1.58),Mac Mini (192.168.1.68)
**主机:** Apple Mac Mini M4,32GB RAM,macOS (UTM 虚拟化)
## 实验室环境
| 主机 | IP | 操作系统 | 角色 |
|------|----|----|------|
| Ubuntu-SIEM | 192.168.1.58 | Ubuntu 26.04 ARM64 | SIEM 主机 / 扫描目标 |
| Mac Mini | 192.168.1.68 | macOS (FreeBSD 基础) | 宿主机 / 扫描目标 |
**技术栈:**
- Greenbone Community Edition 26.18.0
- gvmd 26.24.0
- ospd-openvas 22.10.1
- 从 Greenbone Community Feed 加载了 156,018 NVTs
- SCAP 数据:CVEs 和 CPEs 更新至 2026 年 4 月
## 设置挑战
### Python 3.14 不兼容性
通过 `apt install openvas` 进行的初始安装在运行时失败。Ubuntu 26.04 附带的 Python 3.14 对 multiprocessing 模块引入了破坏性更改,而 ospd-openvas 22.10.1 依赖于该模块。扫描器在每次扫描尝试时都会因 `FileNotFoundError` 崩溃。在 Ubuntu 仓库或 PyPI 中没有可用的更新包。
**解决方案:** 改用基于 Docker 的 Greenbone Community Edition,它捆绑了自己的 Python 环境。
### 磁盘空间
Docker 镜像与现有的 ELK stack 结合后超出了原有的 20GB 虚拟机磁盘。使用 Mac 宿主机上的 `qemu-img` 将虚拟机磁盘扩展到 120GB,然后使用 `growpart` 和 `lvextend` 扩展了 Ubuntu LVM 分区。
### Web 界面绑定
默认的 Docker 配置将 nginx 容器绑定到 `127.0.0.1:9392`,导致无法从 Mac 浏览器访问。通过修改 `compose.yaml` 中的端口绑定以使用 `0.0.0.0` 解决了此问题。
## 执行的扫描
| 任务 | 目标 | 持续时间 | 结果 |
|------|--------|----------|---------|
| Ubuntu-SIEM Scan v3 | 192.168.1.58 | ~1 分钟 | 4 个日志发现 |
| Mac-Mini Scan | 192.168.1.68 | ~1 分钟 | 4 个日志发现,检测到操作系统 |
| Vulnerability Scan | 192.168.1.58 | ~1 分钟 | 4 个日志发现 |
## 发现
所有扫描均返回了四个信息性(日志级别)的主机发现结果:
- **OS Detection Consolidation and Reporting** — 严重性:0.0 (Log),QoD:80%
- **Traceroute** — 严重性:0.0 (Log),QoD:80%
- **CPE Inventory** — 严重性:0.0 (Log),QoD:80%
- **Hostname Determination Reporting** — 严重性:0.0 (Log),QoD:80%
### 操作系统指纹识别
Mac Mini 扫描通过 ICMP 指纹识别正确识别了主机操作系统:
- 主要匹配:**FreeBSD** (cpe:/o:freebsd:freebsd) — macOS 构建于源自 FreeBSD 的内核之上
- 次要匹配:**Apple Mac OS X** (cpe:/o:apple:mac_os_x)
由于下述 ARM64 扫描器限制,未产生任何 CVE 或漏洞发现。
## ARM64 Docker 扫描器限制
尽管 nmap 确认目标上的端口 22、80、443、5601 和 9392 已打开且可达,但所有扫描都在两分钟内完成,检测到的开放端口为零。
**根本原因:** ospd-openvas 中的 boreas 存活检测模块和内部端口扫描器使用原始套接字和 Linux 内核功能,这些功能在 Apple Silicon 上基于 QEMU 模拟的 ARM64 Docker 容器内无法正常运行。这是一个已知的平台限制,而不是配置错误。
从 ospd-openvas 容器内部执行的 nmap 成功到达了目标上的 80 端口,证实网络连接不是问题所在——扫描器本身并没有使用标准的 TCP 连接进行端口枚举。
**未来实验室的解决方法:** 在 x86_64 虚拟机上原生运行扫描器,或者在不同的主机上使用外部扫描器设备。
## 截图
### Greenbone 仪表板

### 扫描任务

### 扫描结果

### 操作系统检测详情

### Feed 状态

### 操作系统检测结果

## 文件
| 文件 | 描述 |
|------|-------------|
| `vulnerability_assessment_lab_report.pdf` | 完整的实验室报告 |
| `greenbone_dashboard.png` | Greenbone 概览仪表板 |
| `scan_tasks.png` | 显示所有 3 个已完成扫描的任务列表 |
| `scan_results.png` | 显示 4 个日志发现的扫描结果 |
| `os_detection.png` | 显示 FreeBSD 识别的操作系统检测选项卡 |
| `os_detection_detail.png` | 包含 CPE 数据的详细操作系统检测结果 |
| `feed_status.png` | 显示所有 feed 为最新状态的 Feed 状态 |
## 本系列的其他实验室
| 实验室 | 主题 | 仓库 |
|---|---|---|
| 实验室 1 | SOC/SIEM 检测 | [soc-home-lab](https://github.com/jsmith-sec/soc-home-lab) |
| 实验室 2 | 事件响应模拟 | [incident-response-lab](https://github.com/jsmith-sec/incident-response-lab) |
| 实验室 3 | Web 应用程序攻击 | [web-app-attack-lab](https://github.com/jsmith-sec/web-app-attack-lab) |
| 实验室 4 | 漏洞评估 | 本仓库 |
| 实验室 5 | 恶意软件分析 | [malware-analysis-lab](https://github.com/jsmith-sec/malware-analysis-lab) |
标签:AES-256, Apple Silicon, ARM64架构, CTI, CVE, Docker, Docker镜像拉取, ELK Stack, GraphQL引擎检测, Greenbone, Greenbone Community Edition, Home SOC, Linux系统运维, LVM磁盘管理, Mac Mini M4, NVT, OpenVAS, PB级数据处理, PHP, Python兼容性, SCAP, SOC实验室, Troubleshooting, Ubuntu 26.04, UTM虚拟机, Vulnerability Assessment, 云存储安全, 安全基线, 安全运维, 安全防御评估, 家庭安全实验室, 家庭实验室, 容器化部署, 开源安全工具, 插件系统, 故障排除, 教学环境, 数字签名, 无线安全, 日志安全分析, 本地网络扫描, 渗透测试基础, 漏洞评估, 红队基础防御, 网络安全, 网络扫描, 虚拟化, 请求拦截, 身份验证强制, 逆向工程平台, 隐私保护