在第二篇Kali Linux文章中,将讨论称为“nmap”的网络工具。虽然nmap不是仅限于Kali的工具,但它是Kali中最有用的网络映射工具之一。
Nmap,简称Network Mapper,由Gordon Lyon(有关Lyon先生的更多信息,请访问:http://insecure.org/fyodor/)维护,并被世界各地许多安全专业人士使用。
该实用程序在Linux和Windows上均可使用,并且是命令行(CLI)驱动的。但是,对于那些对命令行有些畏缩的人来说,有一个名为zenmap的nmap的精美图形前端。
强烈建议个人学习nmap的CLI版本,因为与zenmap图形版本相比,它提供了更多的灵活性。
nmap有什么用途?好问题。Nmap允许管理员快速而彻底地了解网络上的系统,因此得名Network MAPper或nmap。
Nmap具备快速定位活跃主机及其相关服务的能力。Nmap的功能可以通过Nmap脚本引擎(通常缩写为NSE)进一步扩展。
这个脚本引擎允许管理员快速创建一个脚本,用于确定新发现的漏洞是否存在于他们的网络中。许多脚本已经被开发出来,并且包含在大多数nmap安装包中。
A word of caution – nmap is commonly used by people with both good and bad intentions. Extreme caution should be taken to ensure that you aren’t using nmap against systems that permission has not be explicitly provided in a written/legal agreement. Please use caution when using the nmap tool.
系统要求
- Kali Linux(nmap也可在其他操作系统中使用,并且功能与本指南类似)。
- 另一台计算机以及使用nmap扫描该计算机的权限——这通常可以通过使用VirtualBox等软件创建虚拟机轻松实现。
- 为了找到一个好的练习机器,请阅读有关Metasploitable 2
- MS2下载Metasploitable2
- A valid working connection to a network or if using virtual machines, a valid internal network connection for the two machines.
Kali Linux – 使用Nmap工作
使用nmap的第一步是登录Kali Linux机器,如果需要,启动图形会话(本系列文章的第一篇安装了带有XFCE桌面环境的Kali Linux)。
在安装过程中,安装程序会提示用户输入‘root‘用户密码,登录时会用到。一旦登录到Kali Linux机器,使用命令‘startx‘可以启动XFCE桌面环境 – 值得注意的是,nmap不需要桌面环境来运行。
# startx

登录到XFCE后,需要打开一个终端窗口。通过点击桌面背景,会出现一个菜单。可以按照以下步骤导航到终端: 应用程序 -> 系统 -> ‘Xterm‘或‘UXterm‘或‘Root终端‘。
作者喜欢一个名为‘Terminator‘的shell程序,但这可能不会在Kali Linux的默认安装中显示。列出的所有shell程序都适用于nmap的目的。

一旦启动了终端,nmap的乐趣就开始了。对于这个特定的教程,创建了一个带有Kali机器和一个Metasploitable机器的私有网络。
这使得事情变得更加简单和安全,因为私人网络范围将确保扫描仍然保持在安全的机器上,并防止易受攻击的Metasploitable机器被他人 compromise。
如何在我的网络上找到活动主机?
在这个例子中,这两台机器都在一个私人192.168.56.0 /24网络上。Kali机器的IP地址是192.168.56.101,要扫描的Metasploitable机器的IP地址是192.168.56.102。
假设IP地址信息不可用。快速的nmap扫描可以帮助确定特定网络上的活动内容。这种扫描被称为“Simple List”扫描,因此将-sL
参数传递给nmap命令。
# nmap -sL 192.168.56.0/24

不幸的是,这次初始扫描没有返回任何活动主机。有时这是某些操作系统处理端口扫描网络流量的方式的一个因素。
查找并Ping我的网络上的所有活动主机
不过不用担心,nmap有一些可用的技巧来尝试找到这些机器。下一个技巧将告诉nmap简单地尝试ping192.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 还尝试确定运行在这台机器上的操作系统的信息以及其主机名(也非常成功!)。
浏览这个输出应该会引起网络管理员的很多关注。第一行声称这台机器上正在运行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 登录。
检查主机上的漏洞
这与之前关于 VSftpd 存在一个旧漏洞的知识结合起来,应该引起一些关注。让我们看看 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网络扫描》的官方指南,在亚马逊上有售。

Source:
https://www.tecmint.com/nmap-network-security-scanner-in-kali-linux/