Nmap 基本端口扫描

Nmap 基本端口扫描

上面介绍了nmap扫描的前三个步骤,枚举目标,发现存活主机,反向DNS查找。

下面将介绍端口信息的扫描。

Nmap考虑以下六种状态:

  1. Open:表示服务正在监听指定端口。
  2. Closed:表示没有服务在监听指定端口,尽管该端口可以访问。可访问是指该端口可以访问,并且未被防火墙或其他安全设备/程序阻止。
  3. Filtered:表示Nmap无法确定端口是打开还是关闭,因为端口无法访问。此状态通常是由于防火墙阻止Nmap到达该端口。Nmap的数据包可能被阻止到达端口;或者响应被阻止到达Nmap的主机。
  4. UnFiltered:表示Nmap无法确定端口是打开还是关闭,尽管该端口可以访问。使用 ACK 扫描时会遇到此状态-sA
  5. Open|Filtered:这意味着Nmap无法确定该端口是开放的还是被过滤的。
  6. Closed|Filtered:这意味着Nmap无法决定端口是否关闭或被过滤。

下图是RFC793 定义的tcp表头

https://tryhackme-images.s3.amazonaws.com/user-uploads/5f04259cf9bf5b57aed2c476/room-content/79ca8e4acbd573a27cee413cde927769.png

第一行是源端口号和目标主机端口号。

第二行和第三行是序列号和确认号。每行分配了32位(4字节),总共6行,共24字节。

TCP标头标志为:

  1. URG:紧急标志表示紧急指针字段很重要。紧急指针表示传入数据是紧急的,并且设置了 URG 标志的TCP段会立即处理,而无需考虑等待先前发送的TCP段。
  2. ACK:确认标志,表示确认号是有效的。它用于确认收到TCP段。
  3. PSH:推送标志,要求TCP及时将数据传递给应用程序。
  4. RST:重置标志用于重置连接。其他设备(例如防火墙)可能会发送该标志以断开TCP 连接。当数据发送到主机并且接收端没有服务可以应答时,也会使用此标志。
  5. SYN:同步标志用于启动TCP三次握手并与其他主机同步序列号。序列号应在TCP连接建立期间随机设置。
  6. FIN:发送方没有更多数据可发送。

tcp扫描连接

nmap -sT ip 扫描tcp端口

已关闭的TCP端口会使用 RST/ACK 响应 SYN 数据包,以表明它未打开。当我们尝试与所有已关闭的端口发起TCP三次握手时,此模式将重复出现。

https://tryhackme-images.s3.amazonaws.com/user-uploads/5f04259cf9bf5b57aed2c476/room-content/8390020a13d6f22f49233833f6265de6.png

​ tcp三次握手

img

​ nmap进行tcp端口的一个探测

-F 快速扫描 从1000个端口减少到扫描100个常用的端口。

-r还可以添加选项以按连续顺序而不是随机顺序扫描端口。当测试端口是否以一致的方式打开时(例如,当目标启动时),此选项很有用。

tcp SYN扫描

img

​ nmap利用syn对端口进行扫描

nmap -sS IP

使用SYN进行端口扫描时,不需要进行三次握手。

UDP扫描

UDP是一种无连接协议,因此它不需要任何握手即可建立连接。我们无法保证监听UDP端口的服务会响应我们的数据包。但是,如果将UDP数据包发送到已关闭的端口,则会返回 ICMP 端口不可达错误(类型 3,代码 3)。您可以使用该选项选择UDP扫描 -sU;此外,您还可以将其与另一个TCP扫描结合使用。

如果是开启的端口,发送UDP数据包的话,就不会返回icmp不可达,而是无返回结果。

img

​ udp端口开启

img

​ 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 个并行探针

Nmap 基本端口扫描
http://example.com/2024/07/09/Nmap 基本端口扫描/
作者
FSRM
发布于
2024年7月9日
更新于
2024年7月9日
许可协议