Nmap是Network Mapper(网络映射器)的缩写,是一个用于端口和IP扫描以及应用程序检测的开源工具。网络和系统管理员将其用于清点网络资产、管理服务升级计划和监视服务正常运行时间。
起初,它是作为一款Linux工具而开发的,但现在也可用于Windows和MacOS。用户还可以在Solaris、AIX或Amiga OS等不太常见的系统上使用Nmap。源代码以C、C++、Perl和Python等版本提供,可以定制该工具以适用于不同的环境。
管理员用Nmap进行渗透测试,检查哪些设备在其网络上运行,Nmap还使他们能够查看哪些端口是敞开的,并发现潜在的漏洞。
Nmap有什么用途?
大致说来,Nmap允许用户进行快速的网络映射,可以帮助团队优化并保护网络和数据。它被用于渗透测试、道德黑客活动以及进行其他目的。它最近的一项用途是分析网站服务器和物联网设备之间的流量。
Nmap由美国网络安全专家Gordon Lyon开发,下面将逐一介绍Nmap工具的最重要功能:
网络映射
Nmap向用户显示哪些类型的设备连接到网络并使用扫描端口。借助这个命令,用户可以看到服务器、路由器、交换机及其他设备是如何连接的,他们还可以了解它们如何协同工作,并进一步设想网络图。
端口扫描
用户可以使用Nmap检查哪些端口是敞开的,哪些端口是关闭的。这项功能对于IT团队来说非常方便,因为他们可以用它来查看防火墙是否在正常工作,对于那些想要防范端口扫描攻击的人来说,它也派得上用场。
漏洞扫描
Nmap还有助于发现网络容易受到特定威胁攻击的程度。当发现一个影响特定软件或软件版本的新漏洞时,Nmap可以显示是否有任何连接的机器使用该应用程序,然后IT团队收到警告,可以通过及时修补系统来避免网络攻击。
采集操作系统指纹
帮助IT团队发现设备上运行的所有类型的操作系统。通过这个过程,他们还可以查明这台机器是什么品牌(戴尔、宏碁或联想等)。但更有意思的是,IT团队还可以确定操作系统的补丁级别和端点的估计正常运行时间。
检查影子IT
Nmap可以显示连接到网络的机器的类型和位置,这有助于管理员发现任何未经正式授权就连接到其网络的设备(影子IT)。影子IT通常是隐藏的,即使这些机器不一定是恶意的,它们也可能是整个系统面临的一个风险因素,危险在于设备不包括在网络安全程序中,享受不到补丁管理策略的益处等。
服务发现
与其他映射工具不同,Nmap有助于发现网络中每个设备的角色。它显示哪个设备是邮件或网站服务器、哪个是存储设备、哪个是数据库存储库等。此外,Nmap还显示正在运行中的应用程序,甚至显示使用中的应用程序版本。
如何在Linux中使用Nmap?
Linux用户可以使用来自Insecure.Org的二进制软件包或者安装发行版的源代码。
•二进制软件包通常是一种安装起来更快速、更轻松的选择。但是它们必须稍加定制,才能使用发行版的标准目录路径。此外,这些软件包支持定期管理,以便对系统上的软件进行升级、卸载或审计。然而,发行版创建的软件包总是落后于Nmap.Org源版本,这显然是一个缺点,即使大多数Linux发行版保持相当频繁的更新节奏。
•使用源代码安装可以让用户更好地控制如何为其系统开发和定制Nmap,可以在官方Nmap页面(https://nmap.org/book/inst-source.html)上找到更多的相关信息。
如何在Windows上运行Nmap?
自2000年发布以来,Windows版本已成为使用Nmap的第二大流行平台。Windows用户可以在安装Nmap的三种方法中进行选择:
•Windows自安装程序——这是最容易使用的选项,它是大多数用户青睐的选择。它还使用户能够安装Zenmap GUI及其他工具。
•命令行Zip二进制文件——Nmap版本将Windows命令行二进制文件和关联文件合并到Zip压缩包中。另一方面,没有图形化界面,所以用户必须打开DOS/命令窗口来运行exe文件。
•从源代码编译——对于那些愿意帮助开发Nmap的人来说,从源代码编译是最好的选择。为此,你需要Microsoft Visual C++ 2019。任何Visual Studio 2019版本都可以使用,包括免费的Visual Studio 2019社区版。
如何在MacOS上运行Nmap?
用户可以使用面向Apple macOS (x86-64)平台的Nmap二进制文件,它作为含有安装程序的磁盘映像文件而存在。安装程序支持Nmap、Zenmap、Ncat和Ndiff,这些程序在Mac OS X 10.9和其他更新版本上进行了测试。
MacOS用户也有安装Nmap的更多选择:
•可执行安装程序——这是在Mac设备上安装Nmap或Zenmap的最简单方法。
•从源代码编译——这需要苹果的开发工具Xcode。因为它不是默认安装,所以必须从Mac应用程序商店免费下载。
•使用第三方软件包——在MacOS上安装Nmap的第三种选择是使用一个打包Unix软件的系统。Nmap官方页面推荐使用Fink或MacPorts。
与Windows一样,在MacOS上运行Nmap的第一步是从(https://nmap.org/download.html#macosx)下载。然后按照操作说明(https://nmap.org/book/inst-macosx.html),在MacOs上正确安装和运行Nmap。
除Nmap之外的另外5款开源网络扫描工具
Nmap可能是最出名的网络扫描工具,但它肯定不是唯一的。下面是另外一些主流的类似选择:
•Metasploit框架
Metasploit起初是一个开源渗透测试工具。它现在是一个商业网络扫描工具,用于网络漏洞检测。
•Snort
Snort是一个开源免费的网络入侵检测工具。它基于协议分析和内容检查,可以检测不同类型的网络漏洞(比如蠕虫),并且可以扫描端口。
•OpenSSH
这个开源工具专门用于UNIX环境。SSH是Secure Shell的缩写,在不受信任的主机之间通过不安全的网络链路建立安全的加密通信机制。它通过加密网络流量来消除诸多网络问题:窃听不可信的连接和劫持两台主机之间的连接。
•OpenVAS
这是另一个免费的网络安全扫描工具。它提供全面的网络扫描、网站服务器和应用程序扫描,还提供WordPress扫描。
•Angry IP Scanner
另外,开源工具Angry IP Scanner不仅提供IP地址扫描,还提供端口扫描。使用该工具可以访问主机名、NetBIOS、MAC地址和工作组信息等信息。
系统管理员最常用的5个Nmap命令
基本扫描
•Ping扫描——使用>nmap-sp192.168.1.1/24显示连接到网络的全部设备。
•扫描单个主机——使用>nmapscanme.nmap.org扫描一个主机,以扫描1000个密集使用的端口,这些端口被SQL、SMTP、apache等服务使用。
版本扫描
在进行渗透测试时,IT团队需要找出正在使用的应用程序版本,然后,他们可以搜索通用漏洞披露(CVE)数据库中的现有漏洞,以查找服务的某个版本,进而测试网络对它的响应。
使用’-sV’命令进行版本扫描:>nmap-sVscanme.nmap.org。
进攻性扫描
'-A’参数允许操作系统检测、版本检测、脚本扫描和跟踪路由。虽然进攻性扫描提供了比常规扫描了更好的信息,但它们发出的探针(probe)更多。对于系统管理员来说,安全审计期间更容易检测到它们。要执行进攻性扫描,请使用>nmap-A scanme.nmap.org。
扫描多个主机
多主机扫描可以帮助那些管理大型网络基础设施的人。有四种方法可以使用这个选项:
•在一行中输入所有的IP地址,以便一次性扫描所有主机:>nmap192.164.1.1 192.164.0.2 192.164.0.2。
•输入星号()表示一次性扫描所有子网:>nmap192.164.1.。
•不要键入整个域名,使用逗号分隔地址结尾:>nmap192.164.0.1,2,3,4。
•输入连字符表示IP地址范围:>nmap192.164.0.0—255。
端口扫描
由于端口扫描是Nmap的主要功能之一,所以有不止一种方法来使用它:
•使用’-p’参数进行单端口扫描:>nmap-p 973192.164.0.1。
•如果指定端口类型,Nmap允许你扫描查找关于特定类型连接的数据:>Nmap-pT:7777, 973192.164.0.1。
•如果你想扫描整个范围的端口,用连字符区分它们:>nmap-p76—973 192.164.0.1。
•使用’-top-ports’标志来指定要扫描的前n个端口:>nmap-top-ports 10scanme.nmap.org。