Nmap 基本端口扫描
Nmap 基本端口扫描
上面介绍了nmap扫描的前三个步骤,枚举目标,发现存活主机,反向DNS查找。
下面将介绍端口信息的扫描。
Nmap考虑以下六种状态:
- Open:表示服务正在监听指定端口。
- Closed:表示没有服务在监听指定端口,尽管该端口可以访问。可访问是指该端口可以访问,并且未被防火墙或其他安全设备/程序阻止。
- Filtered:表示Nmap无法确定端口是打开还是关闭,因为端口无法访问。此状态通常是由于防火墙阻止Nmap到达该端口。Nmap的数据包可能被阻止到达端口;或者响应被阻止到达Nmap的主机。
- UnFiltered:表示Nmap无法确定端口是打开还是关闭,尽管该端口可以访问。使用 ACK 扫描时会遇到此状态
-sA
。 - Open|Filtered:这意味着Nmap无法确定该端口是开放的还是被过滤的。
- Closed|Filtered:这意味着Nmap无法决定端口是否关闭或被过滤。
下图是RFC793 定义的tcp表头
第一行是源端口号和目标主机端口号。
第二行和第三行是序列号和确认号。每行分配了32位(4字节),总共6行,共24字节。
TCP标头标志为:
- URG:紧急标志表示紧急指针字段很重要。紧急指针表示传入数据是紧急的,并且设置了 URG 标志的TCP段会立即处理,而无需考虑等待先前发送的TCP段。
- ACK:确认标志,表示确认号是有效的。它用于确认收到TCP段。
- PSH:推送标志,要求TCP及时将数据传递给应用程序。
- RST:重置标志用于重置连接。其他设备(例如防火墙)可能会发送该标志以断开TCP 连接。当数据发送到主机并且接收端没有服务可以应答时,也会使用此标志。
- SYN:同步标志用于启动TCP三次握手并与其他主机同步序列号。序列号应在TCP连接建立期间随机设置。
- FIN:发送方没有更多数据可发送。
tcp扫描连接
nmap -sT ip 扫描tcp端口
已关闭的TCP端口会使用 RST/ACK 响应 SYN 数据包,以表明它未打开。当我们尝试与所有已关闭的端口发起TCP三次握手时,此模式将重复出现。
tcp三次握手
nmap进行tcp端口的一个探测
-F
快速扫描 从1000个端口减少到扫描100个常用的端口。
-r
还可以添加选项以按连续顺序而不是随机顺序扫描端口。当测试端口是否以一致的方式打开时(例如,当目标启动时),此选项很有用。
tcp SYN扫描
nmap利用syn对端口进行扫描
nmap -sS IP
使用SYN进行端口扫描时,不需要进行三次握手。
UDP扫描
UDP是一种无连接协议,因此它不需要任何握手即可建立连接。我们无法保证监听UDP端口的服务会响应我们的数据包。但是,如果将UDP数据包发送到已关闭的端口,则会返回 ICMP 端口不可达错误(类型 3,代码 3)。您可以使用该选项选择UDP扫描 -sU
;此外,您还可以将其与另一个TCP扫描结合使用。
如果是开启的端口,发送UDP数据包的话,就不会返回icmp不可达,而是无返回结果。
udp端口开启
udp端口关闭
微调范围和性能
-p-:扫描所有的端口信息。
-p80-100: 将扫描80到100这中间的端口,包括80和100
如果想扫描最常见的100个端口加 -F
使用--top-ports 10
将检查十个最常见的端口。
可以使用-T<0-5> 来控制扫描时间
- paranoid (0)
- sneaky (1)
- polite (2)
- normal (3) //正常
- aggressive (4) //攻击性
- insane (5) //疯狂
为了避免IDS(入侵检测)警报,您可以考虑使用-T0
或-T1
。例如,-T0
一次扫描一个端口,并在发送每个探测之间等待 5 分钟,因此您可以猜测扫描一个目标需要多长时间才能完成。如果您不指定任何时间,Nmap将使用正常-T3
。请注意,-T5
在速度方面是最快的;但是,由于数据包丢失的可能性增加,这会影响扫描结果的准确性。请注意,-T4
通常在 CTF 期间和学习扫描练习目标时使用,而-T1
通常在隐身更重要的实际交战中使用。
--min-rate
--max-rate
--max-rate=10
意思就是每秒发送的数据包不得超过10
--min-parallelism
--max-parallelism
--min-parallelism=512
表示 nmap至少保持512个并行探测,这512个并行探测与主机存活和端口扫描有关。
概括
这个房间涵盖了三种类型的扫描。
端口扫描类型 | 示例命令 |
---|---|
TCP连接扫描 | nmap -sT 10.10.17.29 |
TCP SYN 扫描 | sudo nmap -sS 10.10.17.29 |
UDP扫描 | sudo nmap -sU 10.10.17.29 |
选项 | 目的 |
---|---|
-p- |
所有端口 |
-p1-1023 |
扫描端口 1 至 1023 |
-F |
100 个最常见的端口 |
-r |
按连续顺序扫描端口 |
-T<0-5> |
-T0 最慢,T5 最快 |
--max-rate 50 |
速率 <= 50 数据包/秒 |
--min-rate 15 |
速率 >= 15 数据包/秒 |
--min-parallelism 100 |
至少 100 个并行探针 |