Nmap使用

1. 使用

nmap -sn 172.22.1.0/24 -oG -   #探测主机存活

2. Nmap知识

2.1. tcp协议三次握手发送数据

tcp的三次握手
Pasted image 20241218133820
namp -sT 进行tcp扫描时,进行三次握手后,不会发送多余的数据,而是直接发送 RST 中断会话,而正常结束TCP会话是需要发送 FIN

2.2. namp判断目标是否开放

Pasted image 20241218134412

2.3. nmap -sS 目标 (半连接扫描)

-sS 参数会让nmap接受到 SYN ACK 后直接发送 RST 结束会话,会更加的不容易被记录。

正常情况是会发送 FIN 来结束会话。而不是 RST
而且必须要发送 RST 不然目标主机会以为你没有收到信息,导致目标主机进行重传 SYN ACK 造成资源浪费

Pasted image 20241218134821
因为此发送并没有完成整个握手过程。所以 -sS 叫做 半连接扫描 或者 半开扫描 SYN扫描

但是此扫描默认需要 sudo 权限
Pasted image 20241218135105

2.4. UDP扫描

udp扫描很慢。因为目标主机一般不会回复没有负载的UDP包。加上防火墙以及限流的诸多因素
建议与一些参数搭配使用 如
--top-ports 100 扫描常用的100个端口

2.5. 主机发现

一般进行主机发现是使用 ping 命令。
nmap可以使用 -sn 命令进行ping扫描。 而且可以用 192.168.0.1-192.168.100.100 表示ip范围

Warning

当遇到windows服务器需要注意,如WindowsServer 2016 2019 2022这样的版本
防火墙默认会屏蔽掉所有的icmp包,如果进行用namp -sn 就会进入死胡同了

此时建议使用 namp -Pn (No Ping)但是此命令非常耗时间,因为nmap会假设目标主机是正在运行的。如果目标主机没有运行会导致namp进行重复探测