Nmap常见扫描方式流量分析

本文深入探讨了Nmap工具的各种扫描方式,包括SYN扫描、全连接扫描、NULL扫描、FIN扫描、XMAS-TREE扫描等,详细分析了每种扫描方式的工作原理及流量特征,特别强调了不同操作系统对这些扫描的反应差异。

Nmap常见扫描方式流量分析

环境说明

扫描者:manjaro linux, IP地址:192.168.31.160

被扫描者:centos 7,IP地址:192.168.31.175

分析工具:wireshark

nmap 版本:version 7.80

TCP 知识回顾

这里对TCP的三次握手知识进行简单的回顾,方便后面理解Nmap的扫描流量

关于TCP协议相关内容看:http://networksorcery.com/enp/default.htm


「Source Port」:源端口

「Destination Port」:目的端口

「Sequence Number」:序列号。

「Acknowledgment Number」:确认号

「Control Bits」:包含一下几种(这几个字段这里要有印象,后续关于nmap的扫描都和这里会有关系):

字段 含义
URG 紧急指针是否有效。如果设置1,用于通知接收数据方在处理所有数据包之前处理紧急数据包
ACK 确认号是否有效。用于确认主机成功接收数据包。如果「Acknowledgment Number」包含有效的确认号码,则设置ACK标志为。例如tcp三次握手的第二步,发送ACK=1和SYN=1 ,就是告知对方它已经收到初始包
PSH 强制将数据压入缓冲区
RST 连接重置
SYN 表示建立连接
FIN 表示关闭连接

下图是TCP三次握手的过程:


SYN 扫描

Nmap 的默认扫描方式就是SYN扫描,在192.168.31.160 执行如下命令进行扫描:

➜ sudo nmap -p22 192.168.31.175
Starting Nmap 7.80 ( https://nmap.org ) at 2020-07-04 11:45 CST
Nmap scan report&nbs
### 主机探测方法 Nmap 提供了种主机探测技术,用于确定目标网络上的活跃主机。常见的主机探测方法包括: - **Ping 扫描(-sn)**:通过发送 ICMP Echo 请求来检测目标主机是否在线。此方法适用于没有防火墙阻挡 ICMP 流量的网络环境。 ```bash nmap -sn 192.168.1.0/24 ``` - **ARP 扫描(-sn -PR)**:在本地网络中使用 ARP 协议探测其他主机的状态。这种方法可以绕过某些阻止 ICMP 的防火墙[^1]。 ```bash nmap -sn -PR 192.168.1.0/24 ``` - **TCP SYN Ping(-PS)**:发送 TCP SYN 包到指定端口以检查主机是否响应。这种方式对于那些过滤 ICMP 的网络特别有用[^1]。 ```bash nmap -sn -PS80,443 192.168.1.0/24 ``` - **UDP Ping(-PU)**:向特定 UDP 端口发送空数据包并等待响应。由于许服务对 UDP 的处理方式不同,这可能帮助发现更存活的主机[^1]。 ```bash nmap -sn -PU53 192.168.1.0/24 ``` ### 端口扫描方法 Nmap 支持丰富的端口扫描技术,每种都有其适用场景: - **TCP Connect() Scan (-sT)**:这是最基本的 TCP 扫描形式,它尝试与每个目标端口建立完整的三次握手连接。如果连接成功,则认为该端口开放。 ```bash nmap -sT 192.168.1.1 ``` - **SYN Scan (-sS)**:也称为半开扫描,因为它不会完成完整的 TCP 三次握手;只发送一个 SYN 数据包然后监听响应。这种类型的扫描更隐蔽且难以被日志记录或 IDS 捕获。 ```bash nmap -sS 192.168.1.1 ``` - **UDP Scan (-sU)**:用于识别哪些 UDP 端口是开放的。因为 UDP 是无连接协议,所以这类扫描可能会得到不可靠的结果,并且执行速度较慢。 ```bash nmap -sU 192.168.1.1 ``` - **FIN Scan (-sF), NULL Scan (-sN), Xmas Tree Scan (-sX)**:这些高级扫描类型利用不同的 TCP 标志位组合来探测端口状态,通常用来规避简单的包过滤器。 ```bash nmap -sF 192.168.1.1 nmap -sN 192.168.1.1 nmap -sX 192.168.1.1 ``` - **ACK Scan (-sA)**:主要用于映射出系统间的过滤规则,而不是直接找出开放端口。通过观察 RST 响应判断端口是否被过滤。 ```bash nmap -sA 192.168.1.1 ``` - **Window Scan (-sW)**:类似于 ACK 扫描,但基于窗口小信息进行分析,同样有助于了解防火墙配置情况。 - **RPC Scan (-sR)**:专门针对远程过程调用(RPC)服务设计的一种扫描方式,能够自动识别出运行中的 RPC 服务及其对应的端口号。 ```bash nmap -sR 192.168.1.1 ``` 此外,还可以结合操作系统检测(-O)、服务版本探测(-sV)等功能进一步深入分析目标主机的信息。例如: ```bash nmap -v -A 192.168.1.1 # 启用详细输出模式并启用所有自动检测功能 ``` 以上命令示例展示了如何使用 Nmap 进行基本的主机发现和端口扫描操作。根据实际需求选择合适的参数组合可以帮助用户更加高效准确地获取所需网络信息[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值