如何使用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-vulners,vulscan和vuln是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列表。