本文目录导读:

漏洞扫描工具扫描网络漏洞的过程,通常遵循一个高度自动化的“信息收集-探测-匹配-报告”的流程,它的核心原理是模拟攻击者的行为,但与真正的攻击不同,它只进行“探测”而不进行“破坏”。
下面以一个典型的漏洞扫描器(如Nessus、OpenVAS、Nmap配合脚本等)为例,详细拆解其扫描流程:
漏洞扫描的5个核心阶段
阶段1:目标发现与主机存活探测
在开始扫描之前,工具需要先知道“目标是谁”、“是否在线”。
- 方法:
- Ping扫描:向目标IP发送ICMP回显请求(Ping),看是否有回应。
- TCP Ping:向目标主机的特定端口(如80、443)发送SYN包,看是否响应。
- ARP扫描:在本地局域网,通过ARP协议直接询问MAC地址。
- 产出:确定哪些IP地址是“存活”的,排除了没有开机的设备。
阶段2:端口扫描与服务识别
这是最关键的一步,目的是找出目标主机上开放了哪些端口,以及这些端口背后运行着什么服务。
- 方法:
- 全连接扫描(TCP Connect Scan):完成完整的TCP三次握手,速度快,但容易被日志记录。
- 半开扫描(SYN Scan):只发送SYN包,收到SYN/ACK后发送RST(复位包)中断连接,速度快、隐蔽性高,是Nmap的默认方式。
- UDP扫描:发送UDP包,通过ICMP端口不可达错误来判断端口关闭。
- 服务版本探测:扫描器连接开放端口后,发送特定协议的请求(如HTTP GET、SSH握手),分析返回的“Banner”(横幅信息)来确定具体的软件名称和版本(如Apache/2.4.41, OpenSSH_8.0)。
- 产出:一张端口与服务的映射表,
168.1.1:80 -> HTTP服务,168.1.1:22 -> SSH服务。
阶段3:操作系统与配置探测
了解目标运行的操作系统和基础配置,有助于匹配更精准的漏洞。
- 方法:
- TCP/IP栈指纹识别:不同操作系统对TCP/IP协议栈的实现细节(如初始TTL值、窗口大小、分片方式)有细微差别,扫描器通过发送特制的数据包并分析返回包的“指纹”来推断操作系统(如“Windows 10”、“Linux 5.x”、“Cisco IOS”)。
- 服务指纹融合:结合阶段2获取的服务版本信息(如IIS 10.0通常指向Windows Server 2016以上)。
- 产出:操作系统类型、版本,以及可能开启的服务(如远程桌面、文件共享)。
阶段4:漏洞探测与验证
这是扫描器最核心的能力,它尝试将已知的漏洞与目标环境进行匹配。
- 方法(核心策略):
- 基于插件的匹配:扫描器内置了成千上万个漏洞检测插件(如Nessus的NASL脚本,OpenVAS的VT文件),每个插件针对一个或多个CVE编号(通用漏洞披露)或配置错误,扫描器遍历所有与目标操作系统和服务版本相关的插件。
- 主动探测:
- 版本比对:发现目标运行的是OpenSSL 1.0.1e版本,插件会直接匹配数据库,指出该版本存在“心脏出血(Heartbleed)”漏洞。
- 恶意数据包测试:发送精心构造的特殊数据包,看服务是否会崩溃或返回异常信息,发送畸形HTTP头、SQL注入尝试等。
- 模拟攻击:对于某些漏洞(如未授权访问),扫描器会尝试登录(如弱密码尝试)或访问特定路径。
- 被动检测(基于Banner):仅通过分析服务返回的Banner信息进行判断(较慢,但不会产生流量干扰)。
- 关键点:扫描器不会真正利用漏洞进行渗透,它只会验证漏洞是否存在,它不会真的植入木马,但会发送一个检测包,看目标是否响应了指示漏洞存在的特定数据。
阶段5:结果整合与风险报告
所有信息汇总后,扫描器会生成一份清晰易懂的报告。
- 发现的总漏洞数量(按严重程度分为高危、中危、低危、信息)。
- 每个漏洞的详细描述(CVE编号、CVSS评分、影响的资产、端口)。
- 漏洞详情与影响:告诉你这个漏洞可以造成什么后果(远程代码执行、信息泄露)。
- 修复建议:提供具体的操作步骤,“升级OpenSSL至1.0.2g以上”、“关闭不必要端口135”、“修改默认密码”。
- 资产清单:显示所有被扫描的主机、IP、开放端口、操作系统。
一个具体例子:扫描一个Web服务器
假设你扫描一个公网IP 2.3.4:
- 主机发现:Ping成功,主机存活。
- 端口扫描:发现端口
80(HTTP)、443(HTTPS)、22(SSH)开放。 - 服务识别:
- 80端口:返回的Banner是
Apache/2.4.6 (CentOS) - 443端口:HTTPS证书信息、支持的加密套件
- 80端口:返回的Banner是
- 漏洞探测:
- 版本漏洞:根据
Apache/2.4.6,扫描器调出所有针对此版本的已知漏洞插件,发现其中一个插件能检测到“Apache HTTP Server 2.4.6 中的某个HTTP请求走私漏洞”。 - 配置漏洞:扫描器尝试访问
/phpmyadmin路径,发现该目录存在且未限制访问,报出“目录列表泄露”的配置风险。 - 加密漏洞:对443端口,发现SSL/TLS配置支持弱的
TLS 1.1协议,报出“弱加密协议”漏洞。
- 版本漏洞:根据
- 报告:生成报告,指出存在“高危”的版本漏洞、中危的目录泄露、低危的弱加密配置,并给出“更新Apache”、“禁用目录列表”、“禁用TLS 1.1”等建议。
需要注意的几点
- 误报与漏报:扫描器不是完美的,可能会把正常行为误判为漏洞(误报),也可能因为深度不够或插件过期而完全漏掉一些新漏洞(漏报)。
- 对业务的影响:一些激进的扫描(如发送大量畸形包、尝试DoS攻击)可能会导致目标服务崩溃或网络拥堵。在正式生产环境扫描前,务必获得授权,并选择“非侵入性”的扫描模式。
- 授权的重要性:对不属于你的网络进行扫描,大部分国家法律都视为非法入侵行为,请严格遵守法律法规。
| 工具 | 类型 | 特点 |
|---|---|---|
| Nessus | 商业/家庭版免费 | 界面友好,插件库庞大,报告质量高,是行业标准之一。 |
| OpenVAS | 开源免费 | 开源社区力量强,功能强大,但配置稍复杂。 |
| Nmap | 命令行/开源 | 端口扫描之王,配合NSE脚本具备基础漏洞扫描能力。 |
| Qualys | 云端SaaS | 无需安装,直接通过浏览器扫描,适合云端和本地资产。 |
| Nikto | 开源 | 专注Web服务器扫描,速度快,但容易发出噪音。 |
总结一句话: 漏洞扫描工具就像一位拿着“已知漏洞百科全书”的检查员,它对着你的网络资产“敲门”、“问话”、“翻书比对”,最后告诉你哪里有可能会被入侵,并给你一份详细的“补丁建议清单”。
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。