1 Nessus介绍
Nessus 是由 Tenable 开发的漏洞扫描工具,用于检测网络设备和系统中的安全漏洞和配置错误。它提供详细的扫描报告和修复建议,帮助组织修补安全威胁。Nessus 支持多种操作系统和应用,常用于企业安全评估和合规性审计
2 Nessus安装
Nessus的安装教程可以查看CSDN上的文章,地址为:Nessus详细安装教程(Windows版)
也可以淘宝搜索神粤安全购买,一键式插件十分快速
- 为了方便,我选择在淘宝上购买最新版的来安装:购买后下载获得文件,可以查看里面的安装教程
- 点击 Nessus-10.7.4-x64.msi 按照默认设置安装,不要更改安装位置否则插件会失效
- 进入登录界面,勾选 Register Offline 并点击 Continue
- 选择 Managed Scanner 并点击 Continue
- 选择 Tenable Security Center 并点击 Continue
- 设置用户名和密码并点击 Submit 后等待初始化
- 进入主界面后退出到登陆界面,将下载文件中的 all-2.0_202407040125.tar.gz 放到C盘目录下,并以管理员身份运行 upgrade_0704.bat ,脚本完成不要关闭窗口
- 重新登陆,查看主界面,编译完成后会正常显示,大概在8-10分钟完成
- 安装完成后就可以正常进行操作
3 扫描模块介绍(实例操作请跳转第五部分)
- Discovery区域
模板 | 描述 |
---|---|
Host Discovery | 执行简单扫描以发现活动主机和开放端口,以查看网络上有哪些主机以及相关信息,获得主机列表后,可以选择要在特定漏洞扫描中定位的主机 |
- Vulnerabilities区域
模板 | 描述 |
---|---|
Basic Network Scan | 执行适合任何主机的完整系统扫描,使用此模板可扫描启用了所有 Nessus 插件的资产。例如可以对组织的系统执行内部漏洞扫描 |
Advanced Network Scan | 可以配置此扫描模板以匹配任何策略。此模板具有与基本扫描模板相同的默认设置,但它允许其他配置选项 |
Advanced Dynamic Scan | 没有任何建议的高级扫描,可以在其中配置动态插件过滤器,而不是手动选择插件系列或单个插件。随着 Tenable 发布新插件,任何与过滤器匹配的插件都会自动添加到扫描或策略中。使得可以针对特定漏洞定制扫描,同时确保扫描在新插件发布时保持最新状态 |
Malware Scan | 扫描 Windows 和 Unix 系统上的恶意软件,通过允许列表和阻止列表相结合的方法来检测恶意软件,并标记未知进程以进行进一步检查来识别两者之间的覆盖差距 |
Credentialed Patch Audit | 验证主机并枚举缺少的更新 |
Intel AMT Security Bypass | 执行 CVE-2017-5689 的远程和本地检查 |
Spectre and Meltdown | 对 CVE-2017-5753、CVE-2017-5715 和 CVE-2017-5754 执行远程和本地检查 |
WannaCry Ransomeware | 扫描 WannaCry 勒索软件 (MS17-010) |
Ripple20 Remote Scan | 检测网络中运行 Treck 堆栈的主机,这些主机可能受到 Ripple20 漏洞的影响 |
Zerologon Remote Scan | 检测 Microsoft Netlogon 特权提升漏洞 (Zerologon) |
Solarigate | 使用远程和本地检查来检测 SolarWinds Solorigate 漏洞 |
ProxyLogon: MS Exchange | 执行远程和本地检查以检测与 CVE-2021-26855、CVE-2021-26857、CVE-2021-26858 和 CVE-2021-27065 相关的 Microsoft Exchange Server 漏洞 |
PrintNightmare | 对 CVE-2021-34527(PrintNightmare Windows 打印后台处理程序漏洞)执行本地检查 |
Active Directory Starter Scan | 扫描 Active Directory 中的错误配置 |
Log4Shell | 通过本地检查检测Apache Log4j中的Log4Shell漏洞(CVE-2021-44228) |
Log4Shell Remote Checks | 通过远程检查检测Apache Log4j中的Log4Shell漏洞(CVE-2021-44228) |
Log4Shell Vulnerability Ecosystem | 通过本地和远程检查检测Apache Log4j中的Log4Shell漏洞(CVE-2021-44228)。该模板是动态的,并且随着第三方供应商修补其软件而定期使用新插件进行更新 |
CISA Alerts AA22-011A and AA22-047A | 对 CISA 警报 AA22-011A 和 AA22-047A 中的漏洞执行远程和本地检查 |
ContiLeaks | 对 ContiLeaks 漏洞执行远程和本地检查 |
Ransomware Ecosystem | 对常见勒索软件漏洞执行远程和本地检查 |
2022 Threat Landscape Retrospective (TLR) | 检测 Tenable 的 2022 年威胁形势回顾报告中列出的漏洞 |
- Compliance区域
模板 | 描述 |
---|---|
Audit Cloud Infrastructure | 审计第三方云服务的配置 |
Internal PCI Network Scan | 执行内部 PCI DSS (11.2.1) 漏洞扫描 |
Offline Config Audit | 审计网络设备的配置 |
Policy Compliance Auditing | 根据已知基线审核系统配置 |
SCAP and OVAL Auditing | 使用 SCAP 和 OVAL 定义审核系统 |
4 Advanced Network Scan模板中自定义设置描述
该部分主要讲解Advanced Network Scan模块中各个设置的含义以及如何使用,方便不同的情况进行对照设置
如果已经知晓相关操作可以跳转第五部分实例操作
4.1 Discovery区域
- Host Discovery
设置 | 默认值 | 描述 |
---|---|---|
Ping the remote host | On | 如果设置为“开”,扫描仪会在多个端口上 ping 远程主机以确定它们是否处于活动状态 |
Test the local Nessus host | Enabled | 启用后,将本地 Nessus 主机包含在扫描中 |
Use Fast Network Discovery | Disabled | 禁用后Nessus为了避免误报会执行更多检查 |
ARP | Enabled | 通过地址解析协议 (ARP) 使用主机的硬件地址对主机执行 Ping 操作 |
TCP | Enabled | 使用 TCP 对主机执行 Ping 操作 |
Destination ports (TCP) | built-in | 可以将目标端口配置为使用特定端口进行 TCP ping |
ICMP | Enabled | 使用 Internet 控制消息协议 (ICMP) 对主机执行 Ping 操作 |
Assume ICMP unreachable from the gateway means the host is down | Disabled | 启用此选项后,当扫描器收到 ICMP Unreachable 消息时,它会认为目标主机已死亡。此方法有助于加快某些网络上的发现速度 |
Maximum number of retries | 2 | 指定重试 ping 远程主机的尝试次数 |
UDP | Disabled | 使用用户数据报协议 (UDP) 对主机执行 Ping 操作 |
Scan Network Printers | Disabled | 启用后,扫描仪将扫描网络打印机 |
Scan Novell Netware hosts | Disabled | 启用后,扫描仪将扫描 Novell NetWare 主机 |
Scan Operational Technology devices | Disabled | 启用后,扫描仪会对操作技术 (OT) 设备执行全面扫描 |
List of MAC Addresses | None | LAN 唤醒 (WOL) 菜单控制在执行扫描之前向哪些主机发送 WOL 魔术数据包 |
Boot time wait (in minutes) | 5 | 执行扫描之前等待主机启动的时间 |
- Port Scanning
设置 | 默认值 | 描述 |
---|---|---|
Consider Unscanned Ports as Closed | Disabled | 启用后,如果所选端口扫描器未扫描某个端口(例如,该端口超出指定范围),则扫描器会认为该端口已关闭 |
Port Scan Range | Default | 指定要扫描的端口范围 |
SSH (netstat) | Enabled | 启用后,扫描器使用 netstat 检查本地计算机的开放端口 |
WMI (netstat) | Enabled | 启用后,扫描仪在执行基于 WMI 的扫描时使用 netstat 来确定开放端口 |
SNMP | Enabled | 启用后,如果用户提供了适当的凭据,扫描程序可以更好地测试远程主机并生成更详细的审核结果 |
Only run network port scanners if local port enumeration failed | Enabled | 如果本地端口枚举器运行,则该资产的所有网络端口扫描器都将被禁用 |
Verify open TCP ports found by local port enumerators | Disabled | 启用后,如果本地端口枚举器(例如 WMI 或 netstat)找到端口,扫描器还会验证该端口是否已远程打开 |
SYN | Enabled | 使用内置的 Tenable Nessus SYN 扫描器来识别目标主机上开放的 TCP 端口 |
Override automatic firewall detection | Disabled | 启用后,此设置将覆盖自动防火墙检测 |
UDP | Disabled | 此选项使用内置 Tenable Nessus UDP 扫描器来识别目标上开放的 UDP 端口 |
- Service Discovery
设置 | 默认值 | 描述 |
---|---|---|
Probe all ports to find services | Enabled | 启用后,扫描器会尝试将每个开放端口与在该端口上运行的服务进行映射 |
Search for SSL/TLS/DTLS services | On | 搜索SSL/TLS/DTLS服务 |
Search for SSL/TLS on | All TCP ports | 指定扫描程序在目标主机上的哪些端口搜索 SSL/TLS 服务 |
Search for DTLS On | None | 指定扫描器在目标主机上的哪些端口搜索 DTLS 服务 |
Identify certificates expiring within x days | 60 | 启用后,扫描器会识别在指定到期天数内的 SSL 和 TLS 证书 |
Enumerate all SSL ciphers | True | 启用后,扫描器会忽略 SSL/TLS 服务通告的密码列表,并通过尝试使用所有可能的密码建立连接来枚举它们 |
Enable CRL checking (connects to internet) | False | 启用后,扫描器会检查所有已识别的证书是否已被吊销 |
4.2 Assessment
- General
设置 | 默认值 | 描述 |
---|---|---|
Override normal Accuracy | Disabled | 覆盖正常精度 |
Perform thorough tests (may disrupt your network or impact scan speed) | Disabled | 过更彻底,扫描更具侵入性,更有可能破坏网络,同时有可能提供更好的审计结果 |
Antivirus definition grace period (in days) | 0 | 将防病毒软件检查的延迟配置为设定的天数 (0-7) |
Third party domain | example.com | Nessus 尝试通过每个 SMTP 设备将垃圾邮件发送到此字段中列出的地址 |
From address | nobody@example.com | 发送到一个或多个 SMTP 服务器的测试邮件看起来就像源自此字段中指定的地址 |
To address | postmaster@[AUTO_REPLACED_IP] | Tenable Nessus 尝试将消息发送至此字段中列出的邮件收件人 |
- Brute Force
设置 | 默认值 | 描述 |
---|---|---|
Only use credentials provided by the user | Enabled | 启用防止Nessus使用默认账号密码测试导致锁定账户 |
Test default accounts (slow) | Disabled | 测试 Oracle 软件中已知的默认帐户 |
- Windows
设置 | 默认值 | 描述 |
---|---|---|
Request information about the SMB Domain | Disabled | 如果启用,传感器将查询域用户而不是本地用户 |
SAM Registry | Enabled | Tenable Nessus 通过安全帐户管理器 (SAM) 注册表枚举用户 |
ADSI Query | Enabled | Tenable Nessus 通过 Active Directory 服务接口 (ADSI) 枚举用户,要使用 ADSI,您必须在凭据 > 其他 > ADSI 下配置凭据 |
WMI Query | Enabled | Tenable Nessus 通过 Windows 管理界面 (WMI) 枚举用户 |
RID Brute Forcing | Disabled | Tenable Nessus 通过相对标识符 (RID) 暴力强制枚举用户 |
Start UID | 1000 | Tenable Nessus 尝试枚举域用户的 ID 范围的开头 |
End UID | 1200 | Tenable Nessus 尝试枚举域用户的 ID 范围的末尾 |
Start UID | 1000 | Tenable Nessus 尝试枚举本地用户的 ID 范围的开头 |
End UID | 1200 | Tenable Nessus 尝试枚举本地用户的 ID 范围的末尾 |
- Malware
设置 | 默认值 | 描述 |
---|---|---|
Custom Netstat IP Threat List | None | 包含要检测的已知不良 IP 地址列表的文本文件 |
Provide your own list of known bad MD5/SHA1/SHA256 hashes | None | 提供已知错误 MD5/SHA1/SHA256 哈希值列表 |
Provide your own list of known good MD5/SHA1/SHA256 hashes | None | 提供已知良好 MD5/SHA1/SHA256 哈希值列表 |
Hosts file allowlist | None | 此选项允许上传包含 IP 和主机名列表的文件,Tenable Nessus 在攻击期间将忽略这些文件 |
Yara Rules | None | 包含要在扫描中应用的 YARA 规则的 .yar 文件 |
Scan file system | Off | 启用此选项允许您扫描主机上的系统目录和文件 |
4.3 Report
设置 | 默认值 | 描述 |
---|---|---|
Override normal verbosity | Disabled | 禁用后,在报告中提供插件活动的标准级别。输出不包括信息插件 56310、64582 和 58651 |
Show missing patches that have been superseded | Enabled | 启用后,会在扫描报告中包含被取代的补丁信息 |
Hide results from plugins initiated as a dependency | Enabled | 启用后,依赖项列表不会包含在报告中 |
Allow users to edit scan results | Enabled | 启用后,允许用户从报告中删除项目 |
Designate hosts by their DNS name | Disabled | 使用主机名而不是 IP 地址进行报告输出 |
Display hosts that respond to ping | Disabled | 报告成功响应 ping 的主机 |
Display unreachable hosts | Disabled | 启用后,未回复 ping 请求的主机将作为失效主机包含在安全报告中 |
Display Unicode characters | Disabled | 启用后,Unicode 字符会出现在插件输出中,例如用户名、已安装的应用程序名称和 SSL 证书信息 |
4.4 Advanced
设置 | 默认值 | 描述 |
---|---|---|
Enable Safe Checks | Enabled | 启用后,禁用所有可能对远程主机产生不利影响的插件 |
Scan for unpatched vulnerabilities (no patches or mitigations available) | Disabled | 扫描未修补的漏洞(没有可用的修补程序或缓解措施) |
Stop scanning hosts that become unresponsive during the scan | Disabled | 启用后,如果 Tenable Nessus 检测到主机无响应,它将停止扫描 |
Scan IP addresses in a random order | Disabled | 启用此选项后,Tenable Nessus 会按随机顺序扫描 IP 地址范围内的主机列表 |
Automatically accept detected SSH disclaimer prompts | Disabled | 启用后,如果凭据扫描尝试通过 SSH 连接到显示免责声明提示的 FortiOS 主机,则扫描器会提供必要的文本输入以接受免责声明提示并继续扫描 |
Scan targets with multiple domain names in parallel | Disabled | 并行扫描多个域名的目标 |
Trusted CAs | None | 确定 Tenable Nessus 允许扫描的证书颁发机构 (CA) |
Slow down the scan when network congestion is detected | Disabled | 启用后,Tenable 会检测何时发送过多数据包以及网络管道是否接近容量。如果检测到网络拥塞,则限制扫描以适应和缓解拥塞 |
Network timeout (in seconds) | 5 | 指定 Tenable 等待主机响应的时间 |
Max simultaneous checks per host | 5 | 指定 Tenable 扫描器一次对单个主机执行的最大检查次数 |
Max simultaneous hosts per scan | 5 | 指定扫描仪同时扫描的最大主机数 |
Max number of concurrent TCP sessions per host | None | 指定单个主机建立的 TCP 会话的最大数量 |
Max number of concurrent TCP sessions per scan | None | 指定整个扫描过程中建立的 TCP 会话的最大数量,无论扫描的主机数量如何 |
Log scan details | Disabled | 将扫描期间使用的每个插件的开始和结束时间记录到 nessusd.messages |
Always report SSH commands | Disable | 始终报告 SSH 命令 |
Enable plugin debugging | Disabled | 将插件中的可用调试日志附加到此扫描的漏洞输出 |
Enumerate launched plugins | Disabled | 显示 Tenable Nessus 在扫描期间启动的插件列表 |
Audit Trail Verbosity | Default | 控制插件审核跟踪的详细程度,所有审计跟踪数据都包括插件未包含在扫描中的原因 |
Include the KB | Default | 控制是否在扫描结果中包含扫描 KB(其中包含更多调试数据) |
Maximum Compliance Output Length in KB | None | 控制目标返回的每个单独的合规性检查值的最大输出长度 |
5 Nessus创建和配置扫描
现在开始进行一个实例操作,总体的流程为:
运行主机发现扫描以识别网络上的资产 -> 创建扫描 -> 选择适合需求的扫描模板 -> 配置扫描 -> 启动扫描
选用的虚拟主机IP地址为:192.168.56.118
5.1 创建并启动主机发现扫描
- 第一步:在顶部导航栏中,单击 Scans ,将出现 My Scans 界面
- 第二步:在右上角,单击 New Scan 按钮,将出现 Scan Templates 页面
- 第三步:在 Discovery 下,单击 Host Discovery 模板
- 第四步:配置主机发现扫描
对于 Name ,输入扫描的名称
对于 Targets ,输入目标作为主机名、IPv4地址或者IPv6地址
提示:对于IP地址,可以使用 CIDR 表示法(例如 192.168.0.0/24)、范围(例如 192.168.0.1-192.168.0.255)或逗号分隔列表(例如 192.168.0.0 ,192.168.0.1)
可以自行定义不同的选项来扫描主机
- 第五步:点击 Save 右边的按钮,展开后点击 Launch ,开始主机发现扫描
- 第六步:查看目标主机的相关信息
5.2 在一台或多台已发现的主机上创建并启动扫描
- 第一步:返回到扫描结果的主机列表页面,选中要扫描的主机左侧的复选框后展开页面顶部的 More 按钮
- 第二步:点击后将会出现扫描模板页面,根据需求选择模板。在这里选择 Advanced Scan 进行扫描,具体的详情配置请参考第四部分
- 第三步:展开 Save 按钮并点击 Launch 开始扫描
- 第四步:扫描完成后得到结果,点击 Report 导出报告