Kali Linux 中 Nmap(网络安全扫描器)实用指南
在第二篇 Kali Linux 文章中,将讨论名为“nmap”的网络工具。虽然 nmap 不是 Kali 独有的工具,但它是 Kali 中最有用的网络映射工具之一。
- Kali Linux 初学者安装指南 – 第 1 部分
Nmap 是 Network Mapper 的缩写,由 Gordon Lyon 维护(有关 Lyon 先生的更多信息,请访问:http://insecure.org/fyodor /) 并被世界各地的许多安全专业人士使用。
该实用程序可在 Linux 和 Windows 中运行,并且由命令行 (CLI) 驱动。然而,对于那些对命令行有点胆怯的人来说,nmap 有一个很棒的图形前端,称为 zenmap。
强烈建议个人学习 nmap 的 CLI 版本,因为与 zenmap 图形版本相比,它提供了更多的灵活性。
nmap 的用途是什么?很好的问题。 Nmap 允许管理员快速、彻底地了解网络上的系统,因此得名 Network MAPper 或 nmap。
Nmap 能够快速定位活动主机以及与该主机关联的服务。 Nmap 的功能可以通过 Nmap 脚本引擎(通常缩写为 NSE)进一步扩展。
该脚本引擎允许管理员快速创建脚本,用于确定网络上是否存在新发现的漏洞。许多脚本已被开发并包含在大多数 nmap 安装中。
需要注意的是,nmap 经常被怀有好意和恶意的人使用。应格外小心,以确保您不会针对书面/法律协议中未明确提供许可的系统使用 nmap。使用 nmap 工具时请小心。
系统要求
- Kali Linux(nmap 在其他操作系统中也可用,功能与本指南类似)。
另一台计算机和使用 nmap 扫描该计算机的权限 – 这通常可以通过 VirtualBox 等软件和创建虚拟机轻松完成。
- 如需练习的好机器,请阅读 Metasploitable 2
- 下载 MS2 Metasploitable2
Kali Linux – 使用 Nmap
使用 nmap 的第一步是登录 Kali Linux 计算机,如果需要,启动图形会话(本系列的第一篇文章安装了具有 XFCE 桌面环境的 Kali Linux)。
在安装过程中,安装程序会提示用户输入登录所需的“root”用户密码。登录到 Kali Linux 计算机后,使用命令“startx” ' XFCE桌面环境就可以启动了——值得注意的是nmap不需要桌面环境来运行。
startx
登录XFCE后,需要打开一个终端窗口。单击桌面背景,将出现一个菜单。可以按如下方式导航到终端:应用程序 -> 系统 -> 'Xterm<”或“UXterm”或“根终端”。
作者是名为“Terminator”的 shell 程序的粉丝,但这可能不会出现在 Kali Linux 的默认安装中。列出的所有 shell 程序都适用于 nmap。
一旦启动了终端,nmap 的乐趣就可以开始了。对于本特定教程,创建了一个带有 Kali 机器和 Metasploitable 机器的专用网络。
这使得事情变得更容易、更安全,因为专用网络范围将确保扫描保留在安全的机器上,并防止易受攻击的 Metasploitable 机器被其他人破坏。
如何在我的网络上查找实时主机?
在此示例中,两台计算机均位于专用 192.168.56.0 /24 网络上。 Kali 机器的 IP 地址为 192.168.56.101,要扫描的 Metasploitable 机器的 IP 地址为 192.168.56.102。
假设 IP 地址信息不可用。快速 nmap 扫描可以帮助确定特定网络上的实时情况。此扫描称为“简单列表”扫描,因此将 -sL
参数传递给 nmap 命令。
nmap -sL 192.168.56.0/24
遗憾的是,这次初始扫描没有返回任何活动主机。有时,这是某些操作系统处理端口扫描网络流量的方式的一个因素。
查找并 Ping 我网络上的所有实时主机
不过不用担心,nmap 可以使用一些技巧来尝试找到这些机器。下一个技巧将告诉 nmap 简单地尝试 ping 192.168.56.0/24 网络中的所有地址。
nmap -sn 192.168.56.0/24
这次 nmap 返回一些潜在的主机进行扫描!在此命令中,-sn
禁用 nmap 尝试端口扫描主机的默认行为,而只是让 nmap 尝试 ping 主机。
查找主机上的开放端口
让我们尝试让 nmap 端口扫描这些特定主机,看看会出现什么结果。
nmap 192.168.56.1,100-102
哇!这次nmap挖到了金矿。该特定主机有相当多的开放网络端口。
这些端口都指示该特定机器上的某种侦听服务。回想一下之前的情况,192.168.56.102 IP 地址被分配给具有metasploitable 漏洞的机器,因此该主机上有如此多的开放端口。
在大多数机器上打开这么多端口是非常不正常的,因此仔细研究这台机器可能是一个明智的主意。管理员可以追踪网络上的物理机器并在本地查看该机器,但这不会有多大乐趣,特别是当 nmap 可以更快地为我们完成这件事时!
查找监听主机端口的服务
下一次扫描是服务扫描,通常用于尝试确定哪些服务可能正在侦听计算机上的特定端口。
Nmap 将探测所有开放端口并尝试从每个端口上运行的服务中抓取信息。
nmap -sV 192.168.56.102
请注意,这次 nmap 提供了一些有关 nmap 认为可能在此特定端口上运行的内容的建议(在白色框中突出显示)。此外,nmap 还尝试确定有关该计算机上运行的操作系统及其主机名的信息(也取得了巨大的成功!)。
查看此输出应该会引起网络管理员的相当多的关注。第一行声称 VSftpd 版本 2.3.4 正在该计算机上运行!那是 VSftpd 的一个非常旧的版本。
通过搜索 ExploitDB,我们发现该特定版本在 2011 年存在严重漏洞(ExploitDB ID – 17491)。
查找主机上的匿名 FTP 登录
让我们让 nmap 仔细看看这个特定的端口,看看可以确定什么。
nmap -sC 192.168.56.102 -p 21
使用此命令,nmap 被指示在主机上的 FTP 端口(-p 21)上运行其默认脚本(-sC)。虽然这可能是问题,也可能不是问题,但 nmap 确实发现此特定服务器上允许匿名 FTP 登录。
检查主机是否存在漏洞
不过,这与 VSftd 具有旧漏洞的早期知识相结合应该会引起一些担忧。让我们看看 nmap 是否有任何脚本尝试检查 VSftpd 漏洞。
locate .nse | grep ftp
请注意,nmap 已经为 VSftpd 后门问题构建了一个 NSE 脚本!让我们尝试针对该主机运行此脚本,看看会发生什么,但首先了解如何使用该脚本可能很重要。
nmap --script-help=ftp-vsftd-backdoor.nse
阅读此描述后,您会发现该脚本显然可用于尝试查看此特定计算机是否容易受到先前确定的 ExploitDB 问题的影响。
让我们运行该脚本,看看会发生什么。
nmap --script=ftp-vsftpd-backdoor.nse 192.168.56.102 -p 21
哎呀! Nmap 的脚本返回了一些危险消息。这台机器可能是进行认真调查的良好候选者。这并不意味着机器受到损害并被用于可怕的事情,但它应该给网络/安全团队带来一些担忧。
Nmap 具有极其选择性和极其安静的能力。到目前为止所做的大部分工作都试图使 nmap 的网络流量保持适度安静,但是以这种方式扫描个人拥有的网络可能非常耗时。
Nmap 能够进行更积极的扫描,通常会产生许多相同的信息,但只需一个命令而不是多个命令。让我们看一下主动扫描的输出(请注意,主动扫描可能会引发入侵检测/预防系统!)。
nmap -A 192.168.56.102
请注意,这次,通过一个命令,nmap 返回了之前返回的大量有关该特定计算机上运行的开放端口、服务和配置的信息。其中大部分信息可用于帮助确定如何保护该计算机以及评估网络上可能存在哪些软件。
这只是 nmap 可用于在主机或网段上查找的许多有用内容的简短候选列表。强烈建议个人继续在个人拥有的网络上以受控方式试验 nmap(不要通过扫描其他实体来练习!)。
有作者 Gordon Lyon 编写的关于 Nmap 网络扫描 的官方指南,可从 Amazon 获取。