Kali Linux 中的 Nmap(网络安全扫描器)实用指南
在第二篇 Kali Linux 文章中,我们将讨论称为“ nmap ”的网络工具。虽然 nmap 不是 Kali 独有的工具,但它是Kali 中最有用的网络映射工具之一。
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 ”或“ Root Terminal ”。
一旦启动了终端,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 网络扫描的官方指南,可从亚马逊获取。