Nmap的一个鲜为人知的部分是NSE,即Nmap Scripting Engine,这是Nmap最强大和最灵活的功能之一。它允许用户编写(和共享)简单脚本,以自动执行各种网络任务。Nmap内置了全面的NSE脚本集合,用户可以轻松使用,但用户也可以使用NSE创建自定义脚本以满足他们的个性化需求。

在这里,我将同时展示两个类似的预制NSE脚本,nmap-vulners和vulscan。这两个脚本旨在通过为特定服务(如SSH,RDP,SMB等)生成相关的CVE信息来增强Nmap的版本检测。CVE或Common Vulnerabilities and Exposures是安全研究人员使用的一种方法,可利用数据库对各个漏洞进行编目和引用。

例如,漏洞利用数据库是公开披露漏洞的流行数据库。Exploit-DB使用CVE编制与特定版本的服务(如“SSH v7.2”)相关联的各个漏洞和漏洞。以下是Exploit-DB网站上可能利用的截图…请注意分配给此特定SSH漏洞的CVE编号。

nmap-vulnersvulscan都使用CVE记录来增强Nmap的版本检测。Nmap将识别扫描服务的版本信息。NSE脚本将获取该信息并生成可用于利用该服务的已知CVE,这使得查找漏洞变得更加简单。

下面是不使用NSE脚本的Nmap版本检测示例。Nmap使用版本“OpenSSH 4.3”在端口22上发现了一个SSH服务。

nmap -sV -p22 1##.##.###.#21

Starting Nmap 7.60 ( https://nmap.org )
Nmap scan report for 1##.##.###.#21
Host is up (0.58s latency).

PORT    STATE   SERVICE VERSION
22/tcp  open    ssh     OpenSSH 4.3 (protocol 2.0)

这是使用NSE脚本的同一台服务器的示例。我们现在可以看到有更多的信息输出。

nmap --script nmap-vulners,vulscan --script-args vulscandb=scipvuldb.csv -sV -p22 1##.##.###.#21

Starting Nmap 7.60 ( https://nmap.org )
Nmap scan report for 1##.##.###.#21
Host is up (0.54s latency).

PORT    STATE   SERVICE VERSION
22/tcp  open    ssh     OpenSSH 4.3 (protocol 2.0)
| vulners:
|   cpe:/a:openbsd:openssh:4.3:
|       CVE-2006-5051           9.3             https://vulners.com/cve/CVE-2006-5051
|       CVE-2006-4924           7.8             https://vulners.com/cve/CVE-2006-4924
|       CVE-2007-4752           7.5             https://vulners.com/cve/CVE-2007-4752
|       CVE-2010-4478           7.5             https://vulners.com/cve/CVE-2010-4478
|       CVE-2014-1692           7.5             https://vulners.com/cve/CVE-2014-1692
|       CVE-2009-2904           6.9             https://vulners.com/cve/CVE-2009-2904
|       CVE-2008-4109           5.0             https://vulners.com/cve/CVE-2008-4109
|       CVE-2007-2243           5.0             https://vulners.com/cve/CVE-2007-2243
|       CVE-2017-15906          5.0             https://vulners.com/cve/CVE-2017-15906
|       CVE-2006-5052           5.0             https://vulners.com/cve/CVE-2006-5052
|       CVE-2010-5107           5.0             https://vulners.com/cve/CVE-2010-5107
|       CVE-2010-4755           4.0             https://vulners.com/cve/CVE-2010-4755
|       CVE-2012-0814           3.5             https://vulners.com/cve/CVE-2012-0814
|       CVE-2011-5000           3.5             https://vulners.com/cve/CVE-2011-5000
|       CVE-2011-4327           2.1             https://vulners.com/cve/CVE-2011-4327
|_      CVE-2008-3259           1.2             https://vulners.com/cve/CVE-2008-3259
| vulscan: scipvuldb.csv:
| [44077] OpenBSD OpenSSH up to 4.3 Signal denial of service
| [39331] OpenBSD 4.3p2 Audit Log linux_audit_record_event unknown vulnerability
| [32512] OpenBSD OpenSSH up to 4.3 unknown vulnerability
| [43307] OpenBSD 4.0 unknown vulnerability
| [41835] OpenBSD up to 4.8 unknown vulnerability
| [38743] OpenBSD up to 4.6 unknown vulnerability
| [36382] OpenBSD OpenSSH up to 4.6 information disclosure
| [32699] OpenBSD OpenSSH 4.1 denial of service
| [2667] OpenBSD OpenSSH 4.4 Separation Monitor Designfehler
| [2578] OpenBSD OpenSSH up to 4.4 Singal race condition
| [32532] OpenBSD OpenSSH 4.5 packet.c denial of service
| [1999] OpenBSD OpenSSH up to 4.2pl scp system() Designfehler
| [1724] OpenBSD OpenSSH 4.0 GSSAPIDelegateCredentials Designfehler
| [1723] OpenBSD OpenSSH 4.0 Dynamic Port Forwarding Designfehler
| [26219] OpenBSD OpenSSH up to 4.1 pl information disclosure
| [16020] OpenBSD OpenSSH 4.5 Format String

nmap-vulners NSE脚本报告了过去几年披露的十几个CVE。nmap-vulners CVE按严重程度组织,“9.3”是最严重的,位于列表的顶部,因此值得研究。vulscan NSE脚本(在所有CVE之后)还报告了与OpenSSH v4.3相关的十几个有趣的漏洞。

这两个NSE脚本都能很好地显示与易受攻击的服务相关的有用信息。每次我们使用NSE脚本时,Nmap-vulners都会查询Vulners exploit数据库。另一方面,Vulscan查询我们计算机上的本地数据库,该数据库是我们第一次下载vulscan时预先配置的。

步骤一

安装:Nmap-Vulners

要安装nmap-vulners脚本,我们首先使用cd来更改为Nmap脚本目录。

cd /usr/share/nmap/scripts/

然后,通过在终端中键入以下命令来克隆nmap-vulners GitHub存储库。这就是安装nmap-vulners的原因。安装后绝对不需要配置。

git clone https://github.com/vulnersCom/nmap-vulners.git

步骤二

安装:Vulscan

要安装vulscan,我们还需要将GitHub存储库克隆到Nmap脚本目录中。使用以下命令以执行此操作。

git clone https://github.com/scipag/vulscan.git

如前所述,vulscan使用本地存储在我们计算机上的预配置数据库。我们可以在vulscan目录的根目录中查看这些数据库。运行以下ls命令列出可用的数据库。

ls vulscan/*.csv
vulscan/cve.csv
vulscan/exploitdb.csv
vulscan/openvas.csv
vulscan/osvdb.csv
vulscan/scipvuldb.csv
vulscan/securityfocus.csv
vulscan/securitytracker.csv
vulscan/xforce.csv

Vulscan支持许多优秀的漏洞利用数据库:

scipvuldb.csv
cve.csv
osvdb.csv
securityfocus.csv
securitytracker.csv
xforce.csv
expliotdb.csv
openvas.csv

为确保数据库完全是最新的,我们可以使用vulscan / utilities / updater /目录中的updateFiles.sh脚本。通过在终端中键入以下命令,切换到updater目录。

cd vulscan/utilities/updater/

然后,使用以下chmod命令确保该文件具有在您的计算机上执行的适当权限。

chmod +x updateFiles.sh

然后我们可以通过在我们的终端中输入以下命令来执行和运行脚本。

./updateFiles.sh

完成后,我们现在可以开始使用NSE脚本了。

步骤三

使用Nmap-Vulners进行扫描

使用NSE脚本很简单。我们所要做的就是将–script参数添加到我们的Nmap命令中,并告诉Nmap使用哪个NSE脚本。要使用nmap-vulners脚本,我们将使用以下命令。当然,将#after -p更改为扫描端口,将以下#s更改为您正在使用的IP地址。

nmap --script nmap-vulners -sV -p# ###.###.###.###

该-sV是绝对必要的。使用-sV,我们告诉Nmap探测版本信息的目标地址。如果Nmap不生成版本信息,则nmap-vulners将没有任何数据来查询Vulners数据库。使用这些NSE脚本时始终使用-sV。

nmap --script nmap-vulners -sV -p80 1##.##.###.#24

以下是其中一个正在使用的示例:

nmap --script vulscan --script-args vulscandb=exploitdb.csv -sV -p22 1##.##.###.#43

Starting Nmap 7.60 ( https://nmap.org )
Nmap scan report for 1##.##.###.#43
Host is up (0.52s latency).

PORT    STATE   SERVICE VERSION
22/tcp  open    ssh     OpenSSH 4.3 (protocol 2.0)
| vulscan: exploitdb.csv:
| [2444] OpenSSH <= 4.3 pl (Duplicated Block) Remote Denital of Service Exploit
| [21402] OpenSSH s.x/3.x Kerberos 4 TGT/AFS Token Buffer Overflow Vulnerability
| [3303] Portable OpenSSH <= 3.6.1p-PAM / 4.1-SUSE Timing Attack Exploit

作为VulDB的首席架构师,vulscan开发人员通常会花时间更新scipvuldb.csv数据库文件。使用vulscan NSE脚本时,查询该数据库可能会产生最佳结果。

步骤五

合并为一个命令

作为安全扫描程序,NSE脚本显着提高了Nmap的多功能性,范围和足智多谋。为了充分利用Nmap的版本扫描,我们可以在一个命令中同时使用nmap-vulners和vulscan。要执行此操作,请在终端中键入以下命令。

nmap --script nmap-vulners,vulscan --script-args vulscandb=scipvuldb.csv -sV -p# ###.###.###.###
Last modification:June 22nd, 2019 at 05:36 pm
正在沿街乞讨中……