原文地址:Linux命令之nmap:如何安装nmap以及20个nmap命令示例
Nmap代表Network Mapper,它是一个免费的开源网络扫描和侦察工具,用于扫描主机和收集有关主机的详细信息。在本指南中,我们介绍了如何在不同的Linux系统中安装Nmap命令,以及列举了20个非常实用的nmap命令示例。
Nmap代表Network Mapper,它是一个免费的开源网络发现和侦察工具,用于发现主机和收集有关主机的详细信息。nmap是用C,C ++和Python编写的,最初于1997年9月发布,已经成为网络安全和数字取证专业人士不可或缺的工具,依靠它们可以揭示有关目标主机和发掘潜在漏洞的详细信息。Nmap揭示了诸如网络上的活动主机,打开的端口,操作系统和服务检测以及执行隐形扫描等信息。
在本指南中,我们重点介绍了一些方便的Nmap命令,您可以使用这些命令从主机系统中检索尽可能多的信息。
如何安装nmap
在研究使用nmap命令的各种方式之前,让我们检查一下如何安装此有用的命令行工具。安装nmap的最简单,通用的方法是使用snap软件包。快照是随库和依赖项一起提供的预构建软件包。它们可以在所有主要的Linux发行版中找到。您可以在snapstore中找到大量的快照。但是,在从快照包安装Nmap之前,需要首先启用快照的守护程序。这将使您能够下载和安装快照包。
要使用快照安装Nmap,请运行以下命令。
$ sudo snap install nmap
另外,您可以选择使用每个Linux发行系列独有的软件包管理器来安装Nmap。
Ubuntu和Debian安装nmap
对于基于Ubuntu / Debian / Mint的发行版,请使用APT软件包管理器,如图所示。
$ sudo apt -y install nmap
CentOS 8 / RHEL 8 / Fedora 22及更高版本上安装nmap
对于CentOS 8 / RHEL 8和Fedora 22及更高版本,请使用dnf软件包管理器。
$ sudo dnf -y install nmap
CentOS 7和RHEL 7上安装nmap
对于CentOS 7 / RHEL 7和更早的版本,请使用yum软件包管理器。
$ sudo yum -y install nmap
Arch Linux / Manjaro安装nmap
对于基于Arch的系统,请使用pacman软件包管理器,如图所示。
$ sudo pacman -S nmap
看完nmap的安装后,让我们继续来看Linux中20个很棒的nmap命令示例
1)Nmap命令用于扫描单个主机
nmap命令的基本形式可用于扫描单个主机,而无需传递任何参数。语法如下所示:
$ nmap <ip地址>
例如;
$ nmap 192.168.2.102
或者,您可以指定域名,而不是指定IP地址,如下所示:
$ nmap scanme.nmap.org
2)nmap如何扫描多台主机
一次扫描多个主机特别适用于要一次扫描多个主机的广泛网络。这是在单个命令中扫描主机的简便方法,而不是分别扫描每个主机。例如,您在处理其他内容时可以扫描10个或更多主机或整个子网。有不同的解决方法。
首先,您可以在一行中指定多个IP地址或域,并用空格隔开,如图所示;
$ nmap 192.168.2.1 192.168.2.103
如图所示,您可以用逗号分隔结尾,而不是完整输入IP地址。
$ nmap 192.168.2.1,102,103
另外,您可以使用连字符指定IP地址范围。例如,下面的命令将主机从192.168.2.1扫描到192.168.2.100
$ nmap 192.168.2.1-100
3)使用nmap扫描子网
此外,您可以使用通配符来扫描整个子网,如下所示:
$ nmap 192.168.2.*
OR
$ nmap 192.168.2.0/24
要优化扫描并仅发现子网中的活动主机,请使用-sP选项,如图所示。
$ nmap -sP 192.168.2.*
4)nmap通过详细选项获取更多信息
要在nmap扫描期间获得更强大的输出,请使用-v选项。此选项打印出扫描的详细信息,例如扫描的性质和发现的打开的端口。
$ nmap -v 192.168.2.1
5)从Nmap扫描中排除主机
扫描一系列主机时,您可以决定从扫描中排除单个主机。为此,请使用–exclude选项。在下面的示例中,我们排除了对主机192.168.2.20的扫描。
$ nmap 192.168.2.0/24 --exclude 192.168.2.20
要从Nmap扫描中排除多个主机,请在文件中指定要排除的主机,然后将命令链接到该文件,如下所示:
$ nmap 192.168.2.* --excludefile exclude.txt
上面的命令排除了exclude.txt文件中包含的所有主机。
6)nmap执行快速扫描
顾名思义,您可以通过传递-F标志来使用nmap进行更快的扫描,如下所示:
$ nmap -F 173.82.202.201
免责声明–与普通扫描相比,此扫描产生的端口更少。
7)nmap扫描网络中的活动主机
这更像是ping扫描。它检测子网中的活动主机。要扫描活动主机,请传递-sn 选项,后跟IP地址和子网。例如:
$ nmap -sn 192.168.2.0/24
8)扫描文件中包含的主机
如果您有一个分段的网络,尤其是具有VLAN的分段网络,则可能主机位于不同的子网中。扫描它们的一种简单方法是在文本文件中定义它们的IP地址,然后使用-iL选项将该文件作为参数传递。
$ nmap iL hosts.txt
这是主机文件的示例
$ cat hosts.txt
192.168.2.100
192.168.2.102
192.168.20.5-50
9)nmap执行扫描以检测防火墙
防火墙检测在执行漏洞测试或道德黑客攻击时特别有用。它使系统管理员可以知道是否启用了目标主机的防火墙。要了解防火墙的状态,请使用-sA标志,如图所示。
$ nmap -sA 192.168.2.1
这将启动ACK扫描,以检查数据包是否可以未经过滤通过。使用-n标志可防止目标主机上的DNS反向解析。
10)使用nmap执行OS检测
Nmap还可以提供有关目标系统的OS或操作系统以及版本检测的见解。对于OS检测,请如图所示传递-O选项。我们将扫描Linux系统上托管的云VPS,看看nmap给我们带来了什么。
注:如果您是普通用户,则由于操作系统检测需要sudo特权,因此需要调用sudo命令。
$ sudo nmap -O 173.82.202.201
Nmap会尽最大努力来识别操作系统及其版本,但是,结果可能并不总是代表准确的结果。
11)nmap执行端口扫描
nmap工具上的基本任务之一是扫描主机系统上的端口。您可以切入程序并使用-p标志后跟端口号指定要扫描的端口,如下所示:
$ nmap -p 80 173.82.202.201
另外,您可以通过使用逗号分隔多个端口来扫描多个端口,如下所示:
$ nmap -p 80,443 192.168.2.1
您还可以通过用连字符分隔端口来定义要扫描的端口范围。
$ nmap -p 80-443 192.168.2.1
12)nmap扫描TCP / UDP端口
您可以缩小到扫描TCP或UDP端口。要扫描TCP端口,请使用-sT选项,如图所示。
$ nmap -sT 173.82.202.201
对于特定的TCP端口(例如端口80),运行:
$ nmap -p T:80 173.82.202.201
对于UDP端口,请使用-sU选项。
$ nmap -sU 173.82.202.201
对于特定的UDP端口,例如端口69,执行:
$ nmap -p U:69 173.82.202.201
13)nmap收集系统服务版本和端口信息
扫描可能的漏洞时,检测正在运行的服务及其版本以及它们正在侦听的端口至关重要。这使您知道攻击者可以利用哪些服务来破坏您的系统。有关服务和端口版本的知识使您可以决定是将服务更新为最新版本还是完全卸载它们。
要收集服务和端口信息,请使用-sV标志。
$ nmap -sV 173.82.202.201
14)smap执行隐形扫描
nmap扫描通常会有“噪音”,并留下痕迹,这些痕迹可以由功能强大的IDS(入侵检测系统)进行标记,并最终可以追溯到您。要保持匿名,可以使用-sS选项执行隐形扫描 。
$ nmap -SS 173.82.202.201
15)smap确定支持的IP协议
您可以使用-sO标志检索有关目标系统支持的协议(ICMP,TCP,UDP等)的信息。
$ sudo nmap -sO 173.82.202.201
16)nmap执行主动扫描
使用-A选项时,nmap会给出非常详细的扫描结果,包括打开的端口和正在运行的服务的版本,操作系统检测,甚至执行目标主机的跟踪路由。
$ nmap -A 173.82.202.201
17)将nmap输出保存到文件
默认情况下,nmap在终端上打印出扫描结果。但是,如果您需要将结果保存在文本文件中以便在方便时进行更多分析,则可以使用所示的重定向操作符。
$ nmap 173.82.202.201> scanme.txt
要验证是否已保存扫描结果,请使用cat命令,如图所示。
$ cat scanme.txt
此外,您可以传递-oN选项,然后传递输出文件和主机。
$ nmap -oN scanme.txt scanme.nmap.org
18)nmap打印出主机接口和路由
有时,您可能会发现需要找到主机系统的接口和路由以进行调试。可以通过传递–iflist选项轻松实现。
$ nmap --iflist
19)获得有关nmap的帮助
要满足您对其他nmap选项的好奇心,请使用-h标志。这与获得nmap命令的帮助同义。
$ nmap -h
20)检查nmap版本
要检查您正在使用的nmap版本,请运行以下命令:
$ nmap -v
这些只是Nmap基本命令中的20条,可用于枚举各种主机系统。您仍然可以使用许多nmap选项来获得有关目标系统的详细信息,但是我们列出的示例是一个很好的起点。我们希望本指南有助于您熟悉nmap工具和各种命令示例。