# Scanning Infrastructure With Nessus

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

- Skill: `killvxk/scanning-infrastructure-with-nessus` (Agent Skill, multi-file: 8 files)
- Install (CLI): `npx skillmds@latest add killvxk/scanning-infrastructure-with-nessus`
- Raw SKILL.md: https://api.skillmd.com/api/skills/killvxk/scanning-infrastructure-with-nessus/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- License: Apache-2.0
- Author: killvxk (https://skillmd.com/u/killvxk)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/killvxk/scanning-infrastructure-with-nessus

---

# 使用 Nessus 扫描基础设施

## 概述
Tenable Nessus 是业界领先的漏洞扫描器，用于识别网络基础设施（包括服务器、工作站、网络设备和操作系统）中的安全弱点。本技能涵盖配置扫描策略、运行认证和未认证扫描、解读结果，以及将 Nessus 集成到持续漏洞管理工作流中。

## 前置条件
- 已安装并激活 Nessus Professional 或 Essentials 许可证
- 目标系统的网络访问权限（防火墙规则允许扫描器 IP）
- 用于认证扫描的管理员凭据
- 了解 TCP/IP 网络和常见服务
- 扫描目标环境的书面授权

## 核心概念

### Nessus 架构
Nessus 作为客户端-服务器应用程序运行，Nessus 扫描引擎在主机系统上以服务（nessusd）形式运行。它使用基于插件的架构，拥有超过 200,000 个插件，由 Tenable 研究团队每周更新。每个插件测试特定漏洞、错误配置或合规性检查。

### 扫描类型
1. **主机发现** - 使用 ICMP、TCP、UDP 和 ARP 识别存活主机
2. **基础网络扫描** - 覆盖常见漏洞的默认策略
3. **高级扫描** - 可精细选择插件的自定义策略
4. **认证补丁审计** - 检查已安装补丁的认证扫描
5. **Web 应用测试** - 扫描 Web 特定漏洞
6. **合规审计** - 对照 CIS、DISA STIG、PCI DSS 基准检查

### 插件族
Nessus 将插件组织为以下族：
- **操作系统**：Windows、Linux、macOS、Solaris
- **网络设备**：Cisco、Juniper、Palo Alto、Fortinet
- **Web 服务器**：Apache、Nginx、IIS、Tomcat
- **数据库**：Oracle、MySQL、PostgreSQL、MSSQL
- **服务**：DNS、SMTP、FTP、SSH、SNMP

## 工作流程

### 步骤 1：初始配置
```bash
# 启动 Nessus 服务
sudo systemctl start nessusd
sudo systemctl enable nessusd

# 使用 nessuscli 进行 CLI 管理
/opt/nessus/sbin/nessuscli update --all
/opt/nessus/sbin/nessuscli fix --list

# 验证插件数量
/opt/nessus/sbin/nessuscli update --plugins-only
```

### 步骤 2：创建扫描策略
通过 Nessus Web UI（https://localhost:8834）配置自定义扫描策略：

1. 导航至"策略" > "新建策略" > "高级扫描"
2. 配置常规设置：名称、描述、目标
3. 设置发现设置：
   - 主机发现：Ping 方法（ICMP、TCP SYN 端口 22、80、443）
   - 端口扫描：对常用端口或全部 65535 端口进行 SYN 扫描
   - 服务发现：探测所有端口以发现服务
4. 配置评估设置：
   - 精度：覆盖正常精度（减少假阳性）
   - Web 应用：如果扫描 Web 服务器则启用
5. 选择与目标环境相关的插件族

### 步骤 3：配置凭据
对于认证扫描，在"凭据"选项卡下配置凭据：
- **SSH**：用户名/密码或 SSH 密钥对
- **Windows**：通过 SMB、WMI 的域凭据
- **SNMP**：社区字符串（v1/v2c）或 USM 凭据（v3）
- **数据库**：Oracle、MySQL、PostgreSQL 连接字符串
- **VMware**：vCenter 或 ESXi 凭据

### 步骤 4：运行扫描
```
# 通过 curl 使用 Nessus REST API
# 认证并获取令牌
curl -k -X POST https://localhost:8834/session \
  -d '{"username":"admin","password":"password"}' \
  -H "Content-Type: application/json"

# 创建扫描
curl -k -X POST https://localhost:8834/scans \
  -H "X-Cookie: token=<TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{
    "uuid": "<TEMPLATE_UUID>",
    "settings": {
      "name": "基础设施扫描 Q1",
      "text_targets": "192.168.1.0/24",
      "enabled": true,
      "launch": "ON_DEMAND"
    }
  }'

# 启动扫描
curl -k -X POST https://localhost:8834/scans/<SCAN_ID>/launch \
  -H "X-Cookie: token=<TOKEN>"

# 检查扫描状态
curl -k -X GET https://localhost:8834/scans/<SCAN_ID> \
  -H "X-Cookie: token=<TOKEN>"
```

### 步骤 5：分析结果
Nessus 按严重性对发现进行分类：
- **严重（CVSS 9.0-10.0）**：需要立即修复
- **高（CVSS 7.0-8.9）**：在 7-14 天内修复
- **中（CVSS 4.0-6.9）**：在 30 天内修复
- **低（CVSS 0.1-3.9）**：在下次维护窗口期修复
- **信息性**：无需立即操作

### 步骤 6：导出和报告
```bash
# 通过 REST API 导出
curl -k -X POST "https://localhost:8834/scans/<SCAN_ID>/export" \
  -H "X-Cookie: token=<TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{"format":"nessus"}'

# 支持的格式：nessus（XML）、csv、html、pdf
```

## 最佳实践
1. 在维护窗口期安排扫描以最小化对生产环境的影响
2. 使用认证扫描可多检测 45-60% 的漏洞
3. 从激进扫描中排除脆弱系统（医疗设备、旧版 SCADA）
4. 为不同网络分段维护单独的扫描策略
5. 每次扫描前更新插件以捕获最新披露的 CVE
6. 上报修复团队前手动验证关键发现
7. 实施扫描结果趋势分析以跟踪修复进度
8. 在 Tenable.sc 或 Tenable.io 中存储扫描结果以进行集中管理

## 常见陷阱
- 仅运行未认证扫描（遗漏 45-60% 的漏洞）
- 未经书面授权扫描（法律和道德违规）
- 忽视扫描对生产系统的性能影响
- 未调整插件导致过多假阳性
- 启动扫描前未验证扫描器网络连通性
- 未针对环境定制即使用默认扫描策略

## 相关技能
- performing-authenticated-vulnerability-scan
- prioritizing-vulnerabilities-with-cvss-scoring
- implementing-continuous-vulnerability-monitoring
- performing-network-vulnerability-assessment

