如何使用Nmap进行漏洞扫描?

Nmap,或网络映射器,是一个用于网络功能和渗透测试的工具包,包括端口扫描和漏洞检测。

Nmap脚本引擎(NSE)是Nmap最受欢迎和强大的功能之一。这些Nmap漏洞扫描脚本被使用于penetration testers和黑客来检查常见的已知漏洞。

通用漏洞和公开漏洞(CVE)是一个公开披露的数据安全问题数据库。它作为检测与信息系统安全相关的漏洞和威胁的参考模型。

在本文中,我们将介绍如何使用Nmap进行漏洞扫描。

让我们开始吧!

Nmap安装

Nmap几乎预装在每个Linux发行版中。如果缺少它,您需要手动安装。可以使用以下命令轻松安装它。

apt-get install nmap

您也可以通过克隆官方git repository进行安装。

git clone https://github.com/nmap/nmap.git

接下来,进入该目录并使用以下命令安装要求。

./configure
make
make install

该软件的最新版本,以及Windows、macOS和Linux(RPM)的二进制安装程序,都可以在here上找到。

使用Nmap进行漏洞扫描

Nmap-vulnersvulscanvuln是Nmap搜索引擎中常见且最受欢迎的CVE检测脚本。这些脚本允许您发现有关系统安全漏洞的重要信息。

Nmap-vulners

最著名的漏洞扫描工具之一是Nmap-vulners。让我们看看如何设置此工具以及如何运行基本的CVE扫描。Nmap脚本引擎会搜索HTTP响应,以识别给定脚本的CPE。

安装

要安装Nmap-vulners脚本,请使用以下命令进入Nmap脚本目录。

cd /usr/share/nmap/scripts/

下一步是克隆git存储库。

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

克隆git存储库后,您不需要进行其他配置。该工具将自动安装。

如果您想查看Nmap-vulners数据库中存在的NSE脚本,请使用ls命令。它将在终端上显示所有.nse扩展脚本。

使用

使用NSE脚本非常简单。只需将-script参数传递给我们的Nmap命令,以指示使用哪个NSE脚本。

nmap -sV --script vulners [--script-args mincvss=] 

在使用NSE脚本时不要忘记传递“-sV”参数。如果Nmap未提供任何版本信息,Nmap-vulners将无法访问Vulners漏洞利用数据库。因此,-sV参数始终是必需的。

示例命令

语法非常简单。只需使用“–script”选项调用脚本,并指定vulners引擎和要开始扫描的目标。

nmap -sV --script nmap-vulners/ 

如果您想扫描任何特定端口,只需在命令的末尾添加“-p”选项,并传递要扫描的端口号。

nmap -sV --script nmap-vulners/  -p80,223

Nmap – vuln

NSE脚本根据一组预定的分类进行分类,每个脚本属于其中的一组分类。认证、广播、暴力、侵入、恶意软件、安全、版本和漏洞是其中一些分类。您可以在here上找到NSE脚本的所有类别类型及其阶段。

属于“vuln”类别的脚本会查找特定的已知漏洞,并且只有在目标系统中发现漏洞时才报告。

nmap -sV --script vuln 

Nmap-vulscan

Vulscan是一个NSE脚本,它可以根据服务和版本检测来帮助Nmap检测目标上的漏洞。vulscan就像是一个Nmap的模块,将其转变为一个漏洞扫描器。Nmap选项-sV允许针对每个服务进行版本检测,用于识别系统中检测到的漏洞的潜在利用。

目前,可用的预安装数据库如下:

  • exploitdb.csv
  • osvdb.csv
  • securitytracker.csv
  • openvas.csv
  • scipvuldb.csv
  • xforce.csv
  • securityfocus.csv
  • cve.csv

安装

要安装Vulscan,首先使用以下命令进入Nmap脚本目录。

cd /usr/share/nmap/scripts/

下一步是克隆git仓库并安装所有要求。

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

ln -s `pwd`/scipag_vulscan /usr/share/nmap/scripts/vulscan 

Vulscan使用本地保存的预配置数据库。要更新数据库,请进入更新程序目录。在终端中键入以下命令导航到更新程序目录。

cd vulscan/utilities/updater/

接下来,更改要在系统中运行的文件的权限。

chmod +x updateFiles.sh

最后,使用以下命令更新漏洞数据库。

 ./updateFiles.sh

使用

让我们使用vulscan进行Nmap漏洞扫描。vulscan NSE脚本可以像nmap-vulners一样使用。

nmap -sV --script vulscan 

默认情况下,Vulscan将同时搜索所有数据库。使用vulscandb参数,您可以一次只传递一个CVE数据库。

--script-args vulscandb=database_name

示例命令

nmap -sV --script vulscan --script-args vulscandb=exploit.csv  -p 80,233

单个漏洞扫描

还可以使用每个类别中的特定脚本执行单个漏洞扫描。以下是600多个脚本和139个脚本的列表。

示例

  • http-csrf:此脚本可检测跨站请求伪造(CSRF)漏洞。
nmap -sV --script http-csrf 
  • http-sherlock:旨在利用Web应用程序中的“shellshock”漏洞。
nmap -sV --script http-sherlock 
  • http-slowloris-attack:此脚本检查Web服务器或目标系统是否容易受到Slowloris DoS攻击的漏洞,而不会发起DoS攻击。
nmap -sV --script http-slowloris-check 
  • http-vmware-path-vuln:测试VMWare ESX、ESXi和Server是否存在路径遍历漏洞
nmap -sV --script http-vmware-path-vuln 
  • http-passwd:尝试检索/etc/passwd或boot.ini以查看Web服务器是否容易受到目录遍历漏洞的攻击。
nmap -sV --script http-passwd 
  • http-internal-ip-disclosure: 当发送一个没有Host标头的HTTP/1.0请求时,这个检查确定网页服务器是否泄露其内部IP address
nmap -sV --script http-internal-ip-disclosure 
  • http-vuln-cve2013-0156: 检测Ruby on Rails服务器是否容易受到DOS attacks和命令注入的攻击。
nmap -sV --script http-vuln-cve2013-0156 

最后,这是所有属于“vuln”类别的NSE脚本列表。

你的系统能够检测Nmap扫描吗?

侦察是渗透测试的第一个阶段。黑客利用侦察阶段来寻找系统中的漏洞和漏洞,以进行攻击。因此,防御系统应该能够检测到它们。

如果您使用SIEM(安全信息和事件管理)工具、firewalls等防御措施,您将收到警报。这里有一份帮助您从网络攻击中保护您的企业和组织的best SIEM Tools列表。这些工具甚至可以帮助记录Nmap扫描。早期识别漏洞扫描是非常有价值的,因为这可以避免对系统造成未来的损害。

结论

希望您发现本文对学习如何使用Nmap进行漏洞扫描非常有用。

您可能还有兴趣了解一下其他用于发现漏洞的Open Source Web Security Scanners列表。

类似文章