nmap 命令

nmap 命令是一款开放源代码的网络探测和安全审核工具,它的设计目标是快速地扫描大型网络。

语法

  [plaintext]
1
nmap(选项)(参数)

选项

  [plaintext]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
-O:激活操作探测; -P0:值进行扫描,不ping主机; -PT:是同TCP的ping; -sV:探测服务版本信息; -sP:ping扫描,仅发现目标主机是否存活; -ps:发送同步(SYN)报文; -PU:发送udp ping; -PE:强制执行直接的ICMPping; -PB:默认模式,可以使用ICMPping和TCPping; -6:使用IPv6地址; -v:得到更多选项信息; -d:增加调试信息地输出; -oN:以人们可阅读的格式输出; -oX:以xml格式向指定文件输出信息; -oM:以机器可阅读的格式输出; -A:使用所有高级扫描选项; --resume:继续上次执行完的扫描; -P:指定要扫描的端口,可以是一个单独的端口,用逗号隔开多个端口,使用“-”表示端口范围; -e:在多网络接口Linux系统中,指定扫描使用的网络接口; -g:将指定的端口作为源端口进行扫描; --ttl:指定发送的扫描报文的生存期; --packet-trace:显示扫描过程中收发报文统计; --scanflags:设置在扫描报文中的TCP标志。

参数

ip地址:指定待扫描报文中的TCP地址。

实际例子

安装

  [plaintext]
1
yum install nmap

调用

  [plaintext]
1
2
3
4
5
6
7
8
9
10
# nmap baidu.org Starting Nmap 7.70 ( https://baidu.org ) at 2021-09-25 12:41 UTC Nmap scan report for baidu.org (107.148.xxx.xxx) Host is up (0.0018s latency). Not shown: 996 filtered ports PORT STATE SERVICE 20/tcp closed ftp-data 21/tcp closed ftp 22/tcp closed ssh 80/tcp open http

可以看到对应的端口。

指定端口

  [plaintext]
1
nmap -p 80 baidu.org

扫描整个子网

  [plaintext]
1
nmap -p 3306 107.148.125.*

结果如下:

  [plaintext]
1
2
3
4
5
Nmap scan report for 107.148.125.129 Host is up (0.0016s latency). PORT STATE SERVICE 3306/tcp filtered mysql

filtered 什么意思?

Nmap对端口的扫描有以下几种状态。

Open 端口开放状态

应用程序正在该端口接收TCP或UDP报文。这也是端口扫描的主要目标。它显示了网络上哪些服务可供使用。

Closed 端口关闭状态

关闭的端口对于Nmap也是可以访问的,但没有应用程序在其上监听。它可以显示该IP地址上的主机是否在运行,对操作系统探测有帮助。

Filtered 过滤的

由于包过滤阻止探测报文到达端口,Nmap无法确定该端口是否开放。过滤可能来自专业的防火墙设备、路由器规则或主机上的软件防火墙。几乎不提供任何信息。

过滤器只是丢弃探测帧,不做任何响应,这会迫使Nmap重试若干次以防止探测包由于网络阻塞而被丢弃。

从而使扫描速度变慢。

Unfiltered 未被过滤的

未被过滤状态意味着端口可以访问,但Nmap不确定它是开放还是关闭。只有用于映射防火墙规则集的ACK扫描才会把端口分类到这种状态。

Open|Filtered

这种状态是 当前无法确定这个端口是开放还是被过滤的,Nmap就会把端口划分为这种状态。

开放的端口不响应就是一个例子 。UDP IP FIN Null Xmas 扫描会把端口归入次类。

Closed|Filtered

该状态用于Nmap不能确定该端口是关闭的还是被过滤的。它只可能出现在IPID Idle扫描中。

参考资料

nmap命令

https://www.cnblogs.com/machangwei-8/p/10353004.html

Nmap 端口扫描

Nmap scan what does STATE=filtered mean? [duplicate]