Nmap的三种漏洞扫描模式原理及实战讲解

安全 漏洞
在大多数情况下可以跳过 vuln漏洞扫描, 扫描速度慢且漏洞也比较过时。相反,应该重点使用 Nmap vulners和 Nmap vulscan 选项。如果想要提供简洁输出的快速扫描,则使用vulners扫描。如果想要对目标系统进行全面的漏洞扫描,利用多个漏洞数据库来查找潜在的安全漏洞,则使用vulcan选项。​

1.摘要

Nmap的漏洞扫描功能能够迅速识别目标系统中的漏洞, 通过Nmap脚本引擎(NSE)的强大功能, 它可以扩展成一个强大的漏洞扫描器, 帮助我们列举目标系统中的最新漏洞。通常在渗透测试过程中, 漏洞扫描是一个关键步骤, 而Nmap也是大部分渗透测试人员依赖的工具, 在本文中, 我们将一起学习使用Nmap进行漏洞扫描,迅速发现目标机器的安全漏洞。

2.扫描基础知识

Nmap是一款强大的网络扫描工具, 旨在查找连接到网络的设备上开放的端口和正在运行的服务。该工具免费且开源, 并且被渗透测试人员广泛使用, 用于对目标网络执行安全审计, 在Kali Linux上默认安装了Nmap。

要执行Nmap扫描, 使用命令nmap <目标>。该命令执行默认的Nmap扫描, 查询前1000个端口以确定哪些是开放的。

图片图片

上图中的Nmap扫描的输出显示如下内容:

序号1: Nmap命令运行的是:nmap 10.0.100.5。

序号2: 命令运行的日期和时间。

序号3: 连接到目标系统时的网络延迟。

序号4:  显示开放端口的报告。

序号5:   完成扫描所花费的时间。

我们可以通过添加扫描选项以更改Nmap的扫描行为, 命令为: nmap <选项> <目标>

例如:使用-sV标志执行服务扫描, 以显示每个开放端口上运行的具体服务, 该步骤是漏洞查找过程的重要一步。

图片图片

如果要更改扫描的执行方式, 可以使用下面的任意选项:

  • 使用时间模板 -T1 到 -T4 改变Nmap扫描的速度和攻击性。
  • 使用 -Pn 选项阻止Nmap执行Internet Control Message Protocol(ICMP)回显ping以发现目标。
  • 使用 -n 选项阻止Nmap尝试解析DNS名称。
  • 使用 -p- 选项扫描所有端口。

具体的选项内容可以参考我的另一篇文章:<<xxx>>

3.三种类型的漏洞扫描

Nmap通常用来执行扫描端口任务, 但也可以作为漏洞扫描器使用。利用Nmap脚本引擎(NSE)可以通过网络发现目标系统漏洞,NSE允许创建和执行定制脚本, 扩展Nmap功能。

通过下面三个强大的Nmap脚本选项, 可以将Nmap变成一个全面的漏洞扫描工具:

  • Vuln:--script vuln选项执行所有NSE脚本, 这些脚本专注于识别正在扫描目标系统是否有安全漏洞, 这是发现已知漏洞的常用选项。
  • Vulners:--script vulners选项使用vulners.com在线数据库,利用Nmap扫描目标以查找最新漏洞。该数据库定期更新,可能会找到其它扫描可能遗漏的信息。
  • Vulscan: --script vulscan选项是一个Nmap漏洞扫描脚本, 它使用多个离线漏洞数据库来测试目标系统漏洞, 它使用了NVD、CVE和OVAL漏洞数据库来扫描本地网络中的漏洞, 该模式支持本地离线和在线扫描。

以下是三种漏洞扫描选项的比较:

Vuln

Vulners

Vulscan

执行 Nmap 漏洞类别中的多个 NSE 脚本

执行从在线数据库中提取的单个脚本

执行从离线数据库中提取的单个脚本

使用Nmap的内置脚本扫描漏洞

使用 vulners.com 在线数据库扫描漏洞

使用多个离线数据库扫描漏洞

如果不创建自己的脚本并将其添加到vuln目录,则无法更新 Nmap 扫描的漏洞

要扫描的漏洞会定期自动更新

要扫描的漏洞必须通过update.sh在vulscan目录中运行命令来手动更新

扫描最常见的漏洞

扫描最新的漏洞

扫描各种漏洞

主要优点:内置于 Nmap

主要优点:快速、准确

主要优点:离线执行全面的漏洞扫描

下面将通过这三种模式分别执行漏洞扫描过程。

4.Vuln漏洞扫描

Nmap 的漏洞扫描将针对目标运行该工具的默认漏洞扫描脚本。这些对于查找可利用的常见漏洞非常有用。要运行漏洞扫描,使用以下命令语法:

nmap --script vuln <target>

图片图片

上图中输出显示以下内容:

序号1: 用于运行漏洞扫描的命令行。接下来是默认的 Nmap 报告标头。

序号2: 文件传输协议 (FTP) 服务正在目标计算机的端口 21 上运行。所使用的特定服务是vsFTPd 版本 2.3.4,该服务容易受到CVE-2011-2523 的攻击。Nmap 甚至提供了一些参考资料和一个可用于利用该漏洞的 Metasploit 模块。

序号3: 简单邮件传输协议 (SMTP) 服务在端口 25 上运行。此服务容易受到CVE-2014-3566的攻击。Nmap 再次提供了此漏洞的参考。

从该输出中,可以通过攻击正在运行的 FTP 或 SMTP 服务来开始利用该目标计算机。可以使用 Nmap 参考作为利用这些漏洞的起点。

5.Vulners漏洞扫描

vulners漏洞扫描能够使用在线数据库vulners.com扫描目标是否有最新的漏洞。要执行此扫描,使用以下命令语法:

nmap -sV --script vulners <target>

图片图片

上图中返回的输出显示以下内容:

序号1: 用于运行漏洞扫描的命令行。

序号2: Secure Shell (SSH) 服务正在目标计算机的端口 22 上运行。使用的特定服务是OpenSSH 版本 4.7p1 Debian 8ubuntu1,该服务容易受到多个 CVE 的攻击。漏洞脚本提供对每个 CVE 或其他漏洞 ID 的引用。

序号3: 漏洞 ID 旁边的标志*EXPLOIT*表示该漏洞是可利用的,应该能够手动利用它或在线查找利用代码。

序号4: 域名服务 (DNS) 服务正在端口 53 上运行。运行的特定服务版本是ISC BIND 9.4.2,该版本容易受到一系列漏洞的影响。同样,漏洞脚本为每个漏洞提供了参考,并提供了该漏洞是否可利用该*EXPLOIT*标志进行利用的参考。

此输出表明应该尝试利用目标计算机上运行的 SSH 和 DNS 服务。如果选择以 SSH 为目标,则应在vulners.com上查找SSV:60656,因为此漏洞 ID 与漏洞利用相关。同时,如果试利用 DNS,可以使用SSV:60184的链接或其旁边的任何其他链接。*EXPLOIT*

6.Vulscan漏洞扫描

默认情况下,Nmap 的 vulscan 选项不随该工具一起提供。相反,需要从https://github.com/scipag/vulscan下载漏洞扫描脚本。可以通过使用 git clone 命令将 vulscan 脚本下载到 Nmap 脚本目录来完成此操作。

图片图片

接下来,使用 Linux命令在文件和 Nmap vulscan 脚本ln之间创建符号链接。scipag_vulscan这将允许使用vulscanNmap 命令行上的选项。

图片图片

每当添加新的 NSE 脚本以在 Nmap 中使用时,需要运行 nmap 命令--script-updatedb来更新 Nmap 的数据库以识别新脚本。然而, 默认情况下,Nmap 中不包含 vulscan 脚本,这意味着无法使用该命令对其进行更新。相反,需要使用update.sh之前克隆的 GitHub 存储库附带的脚本来更新 Nmap 的数据库和 vulscan 从中提取的漏洞数据库。运行以下命令:

./update.sh

图片图片

将 vulscan 脚本添加到 Nmap 的数据库后,可以使用以下语法来运行 vulscan 漏洞扫描:

nmap -sV --script=vulscan/vulscan.nse <target>

图片图片

上图扫描返回的输出显示以下内容:

序号1: 用于运行漏洞扫描的命令行

序号2: FTP 服务正在目标计算机的端口 21 上运行,具体来说是vsFTPd 版本 2.3.4

序号3: VulDB 漏洞数据库中没有与此版本的 FTP 匹配的结果

序号4: MITRE CVE 漏洞数据库中的一个 CVE 与此版本的 FTP ( CVE-2011-0762 ) 匹配

vulscan 输出继续显示,此版本 FTP 的 Security Focus (5)、IBM X-Force (6) 和 Exploit-DB (7) 漏洞数据库中存在多个匹配的漏洞。详细的漏洞信息可以从这里获取: https://www.exploit-db.com

7.结果比较

下面来总结一下上面三个Nmap漏洞扫描选项的结果:

  • 与其他两次扫描相比,vuln漏洞扫描的运行时间很长,而且它发现的许多漏洞都是过时或不正确的。
  • Nmap vulners扫描速度很快,并发现了更多漏洞。它还包含每个链接的有用链接,并显示了可利用的内容。
  • Nmap vulscan 扫描的速度介于 vuln 和 vulners 扫描之间,但其输出更为丰富。它通过查询多个漏洞数据库提供了有关每个潜在漏洞的综合报告。

总的来说,在大多数情况下可以跳过 vuln漏洞扫描, 扫描速度慢且漏洞也比较过时。相反,应该重点使用 Nmap vulners和 Nmap vulscan 选项。如果想要提供简洁输出的快速扫描,则使用vulners扫描。如果想要对目标系统进行全面的漏洞扫描,利用多个漏洞数据库来查找潜在的安全漏洞,则使用vulcan选项。

责任编辑:武晓燕 来源: 二进制空间安全
相关推荐

2009-09-22 12:39:04

2011-10-26 10:42:10

艾尼提扫描仪

2015-09-14 09:31:44

结对设计

2019-09-02 14:44:15

云计算云安全云取证

2018-08-21 10:05:59

MySQLbinlog数据库

2019-04-24 16:13:58

VMware虚拟机联网

2022-05-27 11:33:02

前端代码设计模式

2021-08-10 15:44:37

PostgreSQL表分区分区表

2009-11-06 13:23:27

WCF模式

2016-09-13 14:05:24

Spark集群管理模式

2010-06-28 17:43:44

SQL Server

2010-09-25 10:25:23

2017-08-14 16:50:23

2014-03-12 14:17:03

2010-09-09 10:08:59

2009-08-04 09:09:56

Java常见异常

2022-11-03 08:44:24

代理模式Java设计模式

2022-09-26 08:03:25

VMware虚拟机

2015-10-21 14:23:08

反模式持续部署自动化运维

2022-06-16 08:24:59

设计模式代码前端
点赞
收藏

51CTO技术栈公众号