如何使用 Nmap 进行漏洞扫描?
已发表: 2022-04-07Nmap 或网络映射器是用于整个网络的功能和渗透测试的工具包,包括端口扫描和漏洞检测。
Nmap 脚本引擎 (NSE) 脚本是 Nmap 最流行和最强大的功能之一。 这些 Nmap 漏洞扫描脚本被渗透测试人员和黑客用来检查常见的已知漏洞。
Common Vulnerabilities and Exposures (CVE) 是一个公开披露数据安全问题的数据库。 它用作检测与信息系统安全相关的漏洞和威胁的参考模型。
在本文中,我们将了解如何使用 Nmap 进行漏洞扫描。
让我们开始吧!
Nmap 安装
Nmap 几乎预装在每个 Linux 发行版中。 如果它丢失,您需要手动安装它。 可以使用以下命令轻松安装。
apt-get install nmap
您也可以通过克隆官方 git 存储库来安装它。
git clone https://github.com/nmap/nmap.git
接下来,导航到该目录并使用以下命令安装要求。
./configure make make install
该软件的最新版本以及适用于 Windows、macOS 和 Linux (RPM) 的二进制安装程序可在此处获得。
使用 Nmap 进行漏洞扫描
Nmap-vulners 、 vulscan和vuln是 Nmap 搜索引擎中常见且最流行的 CVE 检测脚本。 这些脚本允许您发现有关系统安全漏洞的重要信息。
Nmap 漏洞
最著名的漏洞扫描程序之一是 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=<arg_val>] <target>
使用 NSE 脚本时不要忘记传递“-sV”参数。 如果没有从 Nmap 收到任何版本信息,Nmap-vulners 将无法访问 Vulners 漏洞利用数据库。 因此,始终需要 -sV 参数。
示例命令
语法非常简单。 只需使用“–script”选项调用脚本并指定漏洞引擎和目标即可开始扫描。
nmap -sV --script nmap-vulners/ <target>
如果您想扫描任何特定端口,只需在命令末尾添加“-p”选项并传递您要扫描的端口号。
nmap -sV --script nmap-vulners/ <target> -p80,223
Nmap – 漏洞
NSE 脚本根据每个脚本所属的一组预定类别进行分类。 身份验证、广播、暴力破解、侵入性、恶意软件、安全、版本和漏洞是其中的一些类别。 您可以在此处找到 NSE 脚本的所有类别类型及其阶段。
属于“vuln”类别的脚本会查找特定的已知漏洞,并且仅在目标系统中发现任何漏洞时进行报告。
nmap -sV --script vuln <target>
Nmap-vulscan
Vulscan 是一个 NSE 脚本,可帮助 Nmap 根据服务和版本检测来检测目标上的漏洞。 vulscan 就像 Nmap 的一个模块,将其转换为漏洞扫描程序。 Nmap 选项 -sV 允许每个服务的版本检测,用于识别系统中检测到的漏洞的潜在利用。
目前,可以使用以下预安装的数据库:
- 漏洞利用数据库.csv
- osvdb.csv
- 安全跟踪器.csv
- 开放瓦斯.csv
- scipvuldb.csv
- xforce.csv
- 安全焦点.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 <target>
默认情况下,Vulscan 将同时搜索所有数据库。 使用所有数据库查询信息需要花费大量时间。 使用 vulscandb 参数,一次只能传递一个 CVE 数据库。
--script-args vulscandb=database_name
示例命令
nmap -sV --script vulscan --script-args vulscandb=exploit.csv <target> -p 80,233
单个漏洞扫描
也可以使用每个类别中的特定脚本执行单个漏洞扫描。 这是所有 600 多个 NSE 脚本和 139 个 NSE 库的列表。
例子
- http-csrf :此脚本检测到跨站点请求伪造 (CSRF) 漏洞。
nmap -sV --script http-csrf <target>
- http-sherlock :旨在利用 Web 应用程序中的“shellshock”漏洞。
nmap -sV --script http-sherlock <target>
- http-slowloris-attack:在不发起 DoS 攻击的情况下,此脚本会检查 Web 服务器或目标系统的漏洞以执行 Slowloris DoS 攻击。
nmap -sV --script http-slowloris-check <target>
- http-vmware-path-vuln :VMWare ESX、ESXi 和 Server 都经过了路径遍历漏洞测试
nmap -sV --script http-vmware-path-vuln <target>
- http-passwd :尝试检索 /etc/passwd 或 boot.ini 以查看 Web 服务器是否容易受到目录遍历的影响。
nmap -sV --script http-passwd <target>
- http-internal-ip-disclosure :当发送没有 Host 标头的 HTTP/1.0 请求时,此检查确定 Web 服务器是否泄漏其内部 IP 地址。
nmap -sV --script http-internal-ip-disclosure <target>
- http-vuln-cve2013-0156 :检测易受 DOS 攻击和命令注入攻击的 Ruby on Rails 服务器。
nmap -sV --script http-vuln-cve2013-0156 <target-address>
最后,这里列出了属于“vuln”类别的所有 NSE 脚本。
您的系统是否能够检测 Nmap 扫描?
侦察是道德黑客攻击和渗透测试的第一阶段。 黑客使用侦察阶段来定位系统中的缺陷和漏洞以进行攻击。 因此,防御系统应该能够检测到它们。
如果您使用 SIEM(安全信息和事件管理)工具、防火墙和其他防御措施,您将收到警报。 以下是保护您的企业和组织免受网络攻击的最佳 SIEM 工具列表。 这些工具甚至有助于记录 Nmap 扫描。 漏洞扫描是值得的,因为早期识别可以避免将来对系统造成损害。
结论
我希望你发现这篇文章对学习如何使用 Nmap 进行漏洞扫描非常有用。
您可能也有兴趣了解开源 Web 安全扫描器列表以查找漏洞。