| name | performing-vulnerability-scanning-with-nessus |
| description | 使用 Tenable Nessus 执行认证和未认证漏洞扫描,识别网络基础设施、服务器和应用程序中的已知漏洞、 错误配置、默认凭据和缺失补丁。扫描器将发现与 CVE 数据库和 CVSS 评分关联,生成优先级修复指导。 适用于漏洞扫描、Nessus 评估、补丁合规检查或自动化漏洞检测等请求场景。
|
| domain | cybersecurity |
| subdomain | penetration-testing |
| tags | ["vulnerability-scanning","Nessus","CVE","patch-management","Tenable"] |
| version | 1.0.0 |
| author | mahipal |
| license | Apache-2.0 |
使用 Nessus 执行漏洞扫描
使用场景
- 在渗透测试侦察阶段进行初始漏洞评估
- 定期执行漏洞扫描,以维持 PCI-DSS(要求 11.2)、HIPAA 或 SOC 2 标准的合规性
- 验证修复工作是否已成功解决之前识别的漏洞
- 在针对性手动利用之前建立已知漏洞基线
- 审计服务器和工作站机队的补丁合规性和配置漂移
不适用场景:作为手动渗透测试的替代品、未获书面授权擅自扫描系统,或对可能因扫描导致服务中断的脆弱系统(医疗设备、传统 SCADA)进行扫描。
前置条件
- 已安装最新插件更新(插件时间不超过 24 小时)的 Tenable Nessus Professional 或 Nessus Expert
- 对所有端口上所有目标主机的网络连通性(扫描器与目标之间无防火墙限制)
- 用于认证扫描的管理员凭据(Windows 使用域管理员或本地管理员,Linux 使用 root/sudo,网络设备使用 SNMP community string)
- 范围协议中已记录的目标 IP 范围和主机名
- 在授权时间窗口内扫描的变更管理审批
工作流程
步骤一:扫描配置
根据参与要求配置 Nessus 扫描策略:
- 扫描类型选择:选择"高级扫描"以完全控制插件族,或选择"认证补丁审计"进行补丁合规检查。渗透测试时避免使用"基本网络扫描",因其仅使用有限的插件集
- 发现设置:配置端口扫描以扫描全部 65,535 个 TCP 端口和前 1,000 个 UDP 端口。将主机发现设置为使用 ARP(本地)、TCP SYN 和 ICMP 以实现最大覆盖
- 认证:添加 Windows 凭据(具有本地管理员权限的域账户)、SSH 凭据(优先使用基于密钥而非密码)、SNMP 凭据(优先使用带 authPriv 的 v3 版本)和数据库凭据(用于数据库专项检查)
- 插件配置:为目标环境启用所有相关的插件族。渗透测试时,确保禁用"拒绝服务"插件(除非明确授权)。为 Web 服务器启用 CGI 扫描
- 性能设置:设置每个扫描器的最大并发主机数(默认 30,敏感网络可降低)、每主机最大并发检查数(生产环境 4-5 个,测试环境可更高),以及适合目标网络的网络超时值
步骤二:扫描执行与监控
启动扫描并监控问题:
- 在授权测试窗口内启动扫描
- 通过 Nessus Web 界面监控扫描进度,检查主机超时、认证失败或插件错误
- 注意"认证失败"结果指示的凭据失效情况;这意味着认证扫描降级为未认证模式,产生不完整的结果
- 若特定主机崩溃或无响应,暂停扫描,排除这些主机,并向客户报告问题
- 对大型网络(1,000 台以上主机),考虑将扫描拆分为较小的子网,以管理负载并支持重启
步骤三:结果分析与验证
分析扫描结果以区分真阳性和假阳性:
- 按严重性排序:从严重和高危发现开始;这些代表最可利用和影响最大的漏洞
- 验证认证状态:确认每台主机的插件 19506(Nessus 扫描信息)显示"认证检查:是"。未认证结果会遗漏本地漏洞
- 过滤信息性噪声:过滤信息性发现,除非它们揭示了手动测试的有用信息(服务 Banner、SSL 证书详情、开放端口)
- 交叉验证 CVE:对每个严重/高危发现,在国家漏洞数据库(NVD)中验证 CVE。检查漏洞是否有公开利用(Exploit-DB、Metasploit 模块)
- 假阳性识别:常见假阳性包括版本检测,其中反向移植补丁使软件看起来存在漏洞(RHEL/CentOS 常见)。在目标上通过
rpm -q --changelog <package> 验证
- 按修复措施分组:按所需操作组织发现(如"应用 Windows KB5034441"影响 47 台主机),而非逐一列出每个实例
步骤四:漏洞优先级排序
使用基于风险的优先级对已验证漏洞进行修复排序:
- CVSS 评分:以 CVSS v3.1 基础评分为起点。9.0-10.0 为严重,7.0-8.9 为高危,4.0-6.9 为中危,0.1-3.9 为低危
- 漏洞利用可用性:对有公开利用代码的漏洞提高优先级,尤其是 Metasploit 模块或武器化 PoC
- 网络暴露:面向互联网系统上的严重漏洞比隔离内部服务器上的相同漏洞优先级更高
- 资产重要性:考虑受影响系统的业务价值。域控制器、含 PII 的数据库和支付处理系统应获得更高优先级
- 补偿控制:若漏洞被网络分段、WAF 规则或 EDR 保护缓解,可降低优先级(记录补偿控制措施)
步骤五:报告生成
生成全面的漏洞扫描报告:
- 以执行摘要(PDF)和详细(CSV/HTML)格式导出 Nessus 报告
- 创建仅包含已验证发现(已删除假阳性)的自定义报告
- 包含修复优先级矩阵,将每个漏洞映射到推荐修复措施、受影响主机和时间线
- 添加手动验证的上下文(如"该发现在渗透测试中被确认可利用")
- 包含扫描元数据:日期/时间、扫描器版本、插件集日期、使用的扫描策略、认证成功率
核心概念
| 术语 | 定义 |
|---|
| 认证扫描 | 使用有效凭据登录目标主机并执行本地检查的漏洞扫描,比未认证扫描检测到显著更多的漏洞 |
| 插件(Plugin) | 检查特定漏洞、错误配置或合规项的 Nessus 脚本;Nessus 维护超过 200,000 个每日更新的插件 |
| CVSS | 通用漏洞评分系统;基于可利用性和影响指标,将漏洞严重性从 0.0 到 10.0 评分的标准化框架 |
| 假阳性 | 扫描器报告的目标上实际不存在的漏洞,通常由未经漏洞验证的基于版本的检测引起 |
| 认证补丁审计 | 专注于通过将已安装版本与已知漏洞数据库进行比较,识别缺失的操作系统和应用程序补丁的扫描类型 |
| 插件族 | Nessus 插件按类别的逻辑分组(如 Windows、Ubuntu 本地安全检查、Web 服务器、数据库) |
工具与系统
- Nessus Professional:Tenable 的商业漏洞扫描器,拥有超过 200,000 个插件,覆盖 CVE、错误配置和合规检查
- Nessus Expert:扩展版本,包含外部攻击面扫描、基础设施即代码(IaC)扫描和云基础设施评估
- Tenable.io:云托管漏洞管理平台,用于具有资产跟踪、趋势分析和优先级排序的企业部署
- OpenVAS(Greenbone):开源替代漏洞扫描器,具有社区维护的漏洞测试,用于对比扫描
常见场景
场景:零售公司的季度 PCI-DSS 漏洞扫描
背景:一家零售商处理信用卡支付,必须遵守 PCI-DSS 要求 11.2,该要求规定必须进行季度内部和外部漏洞扫描。持卡人数据环境(CDE)由跨 3 个 VLAN 的 200 台服务器组成。所有主机运行 Windows Server 2019/2022 或 RHEL 8/9。
方法:
- 为 Windows 主机配置使用域服务账户的认证扫描,为 Linux 主机使用 SSH 密钥
- 使用启用了所有相关插件族的 PCI-DSS 扫描策略模板
- 在周六维护窗口(02:00-06:00)扫描所有 200 台 CDE 主机
- 识别 847 个发现:12 个严重、34 个高危、189 个中危、612 个低危/信息性
- 验证严重发现:3 个为假阳性(RHEL 上的反向移植补丁),9 个为已确认漏洞
- 按修复操作分组剩余发现:6 个需要 Windows 补丁,2 个需要 Apache 升级,1 个需要 TLS 配置加固
- 生成符合 PCI 的报告,显示补丁后的复扫中无严重或高危漏洞未解决
常见陷阱:
- 运行未认证扫描,遗漏大多数本地漏洞,产生不完整的合规报告
- 扫描前未更新 Nessus 插件,遗漏最近发布的 CVE
- 未降低扫描强度就扫描脆弱的传统系统,导致崩溃或服务中断
- 不加批判地接受 Nessus 结果,未手动验证严重发现的假阳性
输出格式
## 漏洞扫描摘要 - CDE 环境
**扫描日期**: 2025-11-15 02:00-05:47 UTC
**扫描器**: Nessus Professional 10.8.3(插件:2025-11-14)
**已扫描主机**: 200(198 台认证成功,2 台认证失败)
**扫描策略**: PCI-DSS 内部扫描
### 发现摘要
| 严重性 | 数量 | 已验证 |
|----------|-------|-----------|
| 严重 | 12 | 9(3 个假阳性) |
| 高危 | 34 | 31(3 个假阳性) |
| 中危 | 189 | 178 |
| 低危/信息 | 612 | 不适用 |
### 顶级严重发现
**1. CVE-2024-21762 - Fortinet FortiOS 越界写入(CVSS 9.8)**
- 受影响主机:fw-cde-01.corp.example.com(10.50.1.1)
- 漏洞利用可用:是(Metasploit 模块)
- 修复建议:将 FortiOS 升级到 7.4.3 或更高版本
- 优先级:立即处理 — 保护 CDE 的面向互联网设备
**2. CVE-2024-6387 - OpenSSH regreSSHion(CVSS 8.1)**
- 受影响主机:14 台 Linux 服务器(见附录 A)
- 漏洞利用可用:是(公开 PoC)
- 修复建议:将 OpenSSH 升级到 9.8p1 或更高版本
- 优先级:7 天内 — 认证远程代码执行