Linux命令之nmap
nmap(Network Mapper)它是一个免费的开源网络扫描和侦察工具,用于扫描主机和收集有关主机的详细信息。
安装:
yum -y install nmap
用法:
1)nmap命令用于扫描单个主机。
nmap <ip> //也可以是域名
示例:nmap 127.0.0.1
2)nmap如何扫描多台主机。
nmap 172.16.1.2 172.16.1.3 //可在一行中指定多个IP地址或者域,并用空格隔开。
nmap 172.16.1.2,3,4 //可以用逗号隔开。
nmap 172.16.1.2-50 //可以指定地址范围。
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工具和各种命令示例。