关于 performing-vulnerability-scanning-with-nessus
面向安全团队和渗透测试人员的 Nessus 漏洞扫描技能,介绍如何配置扫描、验证结果并安排修复优先级。流程强调凭据扫描、误报核查和风险分级,且须在获得书面授权后使用。
主要功能
- 01配置扫描策略与凭据
- 02监控扫描进度和认证情况
- 03验证漏洞发现与误报
- 04按风险确定修复优先级
- 05生成管理层及详细报告
适用场景
- 01开展合规性漏洞评估
- 02验证漏洞修复是否有效
- 03盘点服务器与工作站的补丁情况
- 04为人工渗透测试建立漏洞基线
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ mukul975/ anthropic-cybersecurity-skills --skill performing-vulnerability-scanning-with-nessus安装后在 Claude Code 中输入/performing-vulnerability-scanning-with-nessus确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
LICENSEreferences/api-reference.mdscripts/agent.py详细介绍
使用 Nessus 执行漏洞扫描
适用场景
- 在渗透测试的侦察阶段开展初步漏洞评估
- 执行定期漏洞扫描,以保持符合 PCI-DSS(要求 11.2)、HIPAA 或 SOC 2 标准
- 验证修复工作已成功解决此前发现的漏洞
- 在开展针对性手动利用之前,建立已知漏洞的基线
- 审计服务器和工作站机群的补丁合规性和配置漂移
不要将其用作手动渗透测试的替代品,不要对未获得书面授权的系统使用,也不要对脆弱系统(医疗设备、遗留 SCADA)使用,因为扫描可能导致服务中断。
前置条件
- Tenable Nessus Professional 或 Nessus Expert,并具备最新的插件更新(插件应少于 24 小时)
- 与所有目标主机的所有端口具备网络连接(扫描器与目标之间没有防火墙限制)
- 用于认证扫描的管理员凭据(Windows 使用域管理员或本地管理员,Linux 使用 root/sudo,网络设备使用 SNMP 团体字符串)
- 在范围协议中记录的目标 IP 范围和主机名
- 在授权窗口内进行扫描的变更管理批准
工作流
步骤 1:扫描配置
根据任务要求配置 Nessus 扫描策略:
- 扫描类型选择:选择 "Advanced Scan" 以完全控制插件家族,或选择 "Credentialed Patch Audit" 以进行补丁合规性检查。渗透测试应避免使用 "Basic Network Scan",因为它使用的插件集有限。
- 发现设置:配置端口扫描以扫描所有 65,535 个 TCP 端口和排名前 1,000 的 UDP 端口。将主机发现设置为使用 ARP(本地)、TCP SYN 和 ICMP,以获得最大覆盖范围。
- 身份验证:添加 Windows 凭据(具有本地管理员权限的域账户)、SSH 凭据(优先使用基于密钥而非密码)、SNMP 凭据(优先使用带 authPriv 的 v3),以及用于数据库特定检查的数据库凭据。
- 插件配置:启用与目标环境相关的所有插件家族。对于渗透测试,除非明确授权,否则确保禁用 "Denial of Service" 插件。为 Web 服务器启用 CGI 扫描。
- 性能设置:设置每个扫描器的最大并发主机数(默认 30,敏感网络应降低)、每台主机的最大并发检查数(生产环境为 4-5,测试环境可更高),以及与目标网络相适应的网络超时值。
步骤 2:扫描执行与监控
启动扫描并监控问题:
- 在授权测试窗口内启动扫描
- 通过 Nessus Web 界面监控扫描进度,检查主机超时、身份验证失败或导致错误的插件
- 留意由 "Authentication Failure" 结果指示的凭据失败;这意味着认证扫描回退到未认证模式,产生不完整的结果
- 如果特定主机崩溃或变得无响应,暂停扫描,排除这些主机,并将问题报告给客户
- 对于大型网络(1,000+ 台主机),考虑将扫描拆分为更小的子网,以便管理负载并允许可重启性
步骤 3:结果分析与验证
分析扫描结果,将真阳性与假阳性区分开来:
- 按严重程度排序:从严重和高危发现开始;这些代表最可利用、影响最大的漏洞
- 验证身份验证:确认每个主机的插件 19506(Nessus Scan Information)显示“Credentialed checks: yes”。未经过身份验证的结果会遗漏本地漏洞。
- 消除信息性噪声:过滤掉信息性发现,除非它们能为手动测试提供有用信息(服务横幅、SSL 证书详细信息、开放端口)
- 交叉引用 CVE:对于每个严重/高危发现,在 National Vulnerability Database 中验证 CVE。检查该漏洞是否有公开利用程序(Exploit-DB、Metasploit 模块)。
- 假阳性识别:常见的假阳性包括基于版本的检测,其中向后移植的补丁会使软件看起来存在漏洞(在 RHEL/CentOS 中很常见)。在目标上检查
rpm -q --changelog <package>以进行验证。 - 按修复方式分组:按修复所需的操作组织发现(例如,“应用 Windows KB5034441”影响 47 台主机),而不是逐个列出每个实例
步骤 4:漏洞优先级排序
使用基于风险的优先级排序,对已验证漏洞进行修复排序:
- 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 防护得到缓解,则降低优先级(记录补偿性控制)
步骤 5:报告生成
生成全面的漏洞扫描报告:
- 以管理层(PDF)和详细(CSV/HTML)两种格式导出 Nessus 报告
- 创建自定义报告,仅包含已移除假阳性的已验证发现
- 包含修复优先级矩阵,将每个漏洞映射到其建议修复、受影响主机和时间线
- 添加来自手动验证的上下文(例如,“此发现在渗透测试期间被确认可利用”)
- 包含扫描元数据:日期/时间、扫描器版本、插件集日期、使用的扫描策略、身份验证成功率
关键概念
| 术语 | 定义 |
|---|---|
| 经过身份验证的扫描 | 使用有效凭据登录目标主机并执行本地检查的漏洞扫描,比未经过身份验证的扫描能检测到明显更多的漏洞 |
| 插件 | 检查特定漏洞、错误配置或合规项的 Nessus 脚本;Nessus 维护超过 200,000 个每日更新的插件 |
| CVSS | Common Vulnerability Scoring System;一个标准化框架,用于根据可利用性和影响指标对漏洞严重程度进行 0.0 到 10.0 的评级 |
| 假阳性 | 扫描器报告但目标上实际不存在的漏洞,通常由未经验证利用程序的基于版本检测导致 |
| 凭据补丁审计 | 一种专门通过将已安装版本与已知漏洞数据库进行比较来识别缺失操作系统和应用程序补丁的扫描类型 |
| 插件家族 | 按类别对 Nessus 插件进行逻辑分组(例如,Windows、Ubuntu Local Security Checks、Web Servers、Databases) |
工具与系统
- 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 结果而不手动验证严重发现项是否为误报
输出格式
## Vulnerability Scan Summary - CDE Environment
**Scan Date**: 2025-11-15 02:00-05:47 UTC
**Scanner**: Nessus Professional 10.8.3 (Plugins: 2025-11-14)
**Hosts Scanned**: 200 (198 authenticated, 2 authentication failed)
**Scan Policy**: PCI-DSS Internal Scan
### Findings Summary
| Severity | Count | Validated |
|----------|-------|-----------|
| Critical | 12 | 9 (3 FP) |
| High | 34 | 31 (3 FP) |
| Medium | 189 | 178 |
| Low/Info | 612 | N/A |
### Top Critical Findings
**1. CVE-2024-21762 - Fortinet FortiOS Out-of-Bounds Write (CVSS 9.8)**
- Affected Hosts: fw-cde-01.corp.example.com (10.50.1.1)
- Exploit Available: Yes (Metasploit module)
- Remediation: Upgrade FortiOS to 7.4.3 or later
- Priority: Immediate - internet-facing device protecting CDE
**2. CVE-2024-6387 - OpenSSH regreSSHion (CVSS 8.1)**
- Affected Hosts: 14 Linux servers (see Appendix A)
- Exploit Available: Yes (public PoC)
- Remediation: Upgrade OpenSSH to 9.8p1 or later
- Priority: Within 7 days - authenticated remote code execution
评论
支持 Markdown