2.3.1 端口扫描

2025-06-17 21:28:26 更新

(一)TCP协议数据格式

(1)两个序号

序号

作用

长度

说明

seq

标记

4字节

sequence

标识发送端到目的端字节流的数据

字节流中的每个字节都按顺序编号

(判断是否重复接收,或报文乱序重组)

ack

确认

4字节

期待对方下个报文第一个数据字节序号

当ACK标志位=1时有效;ack=seq+1

(2)六个标志位

ID

标志位

英文

说明

1

URG

urgent

紧急处理位(高优先级,较少用)

(我有紧急数据,请放到最前面,优先速传!)

2

ACK

[ˈæk]

acknowledgement

确认序号有效(通行证有效,允许通行)

ACK=1有效,0无效

3

PSH

push

接收方应尽快向应用层交付(及时响应),不必等待缓存区填满(别在缓冲区排队,快点走)

4

RST

reset

重置连接(错误连接&非法数据包)

(连接有误,请重连)

5

SYN

[sɪn]

synchronous

建立连接,同步序号

(长江,我是黄河,收到请回答)

连接请求报文:SYN=1,ACK=0

同意连接响应报文:SYN=1,ACK=1

6

FIN

[fɪn]

finish

释放连接,发送结束

(发射成功,同志们辛苦了)

(二)TCP三次握手

(三)端口概念

端口由TCP/IP协议定义,是一个16位地址,对应0-65535范围数字。

TCP连接端socket=IP+port用来定位某主机中的进程。

端口与进程是一一对应。如果某进程正在等待连接(监听),就会出现与它相对应的端口。

分类:

(1)0~1023:系统端口(公认端口),只有系统特许的进程才能使用。

(2)1024~65535:用户端口,用于分配给请求通信的进程。

(四)端口复用

(1)定义:指多个套接字绑定到同一个端口

(2)举例:FTP服务器中,使用21端口同时进行木马通信和FTP服务,从而隐藏木马端口并避免被防火墙阻拦

(五)端口扫描方法

原理:入侵者通过扫描端口,就能判断出目标计算机有哪些通信进程正在等待连接。

ID

技术方法

说明

端口开放

端口关闭

1

完全连接扫描

利用TCP/IP协议的三次握手连接机制建立一次完整的连接

(会在被扫描机器留下日志)

建立成功

建立失败

2

半连接扫描

只完成TCP/IP协议的前两次握手,不建立一次完整的连接

(不会留下日志)

返回ACK+SYN

返回RST信息

3

SYN扫描

向目标主机发送连接请求,返回响应后,立即切断连接过程

(不会留下日志)

需要root权限,海量发送=dos攻击(利用TCP协议缺陷,消耗系统资源:服务器重发至超时占用未连接队列)

返回ACK信息

返回RST信息

4

ID头信息扫描(僵尸扫描)

需要1台第三方机器(dumb主机:网络通信量少)配合扫描。

①由源主机A向dumb主机B(网络通信量少,一般是windows主机)发出连续PING数据包,查看主机B返回的顺序数据包的ID头信息(ID头值自增,说明是windows)。

②由源主机A假冒主机B的地址向目的主机C任意端口(1-65535)发送SYN数据包。

③主机C向主机B返回数据包有两种结果:SYN|ACK表示端口处于监听状态,RST|ACK表示非监听状态。

数据包B→A

ID头的值>1

数据包B→A

ID头的值递增1

非常规律

5

隐蔽扫描

能够成功地绕过IDS、防火墙和监视系统等安全机制,取得目标主机端口信息

(%5c暴库:\的16进制)



6

SYN|ACK扫描

向目标主机发送SYN|ACK数据包,而不是先发送SYN数据包

无信息返回

返回RST信息

7

FIN扫描

向目标主机发送FIN数据包

无信息返回

返回RST信息

8

NULL扫描

将源主机发送数据包中的ACK、FIN、RST、SYN、URG、PSH等标志位全部置空

无信息返回

返回RST信息

9

XMAS扫描

原理和NULL扫描相同,将发送数据包中的ACK、FIN、RST、SYN、URG、PSH等头标志位全部置为1(根据RFC793文档,关闭端口的目标系统应返回RST)

无信息返回

返回RST信息

10

ACK扫描

向目标主机发送FIN数据包,查看返回包TTL值和WIN值

返回包TTL值<64(路由器消耗)

返回包WIN值>0

返回包TTL值>64

(怕你收不到)

返回包WIN值=0

(六)ID头信息扫描

(1)原理:扫描者通过僵尸主机回复的ID号来判断目标主机是否存活

(2)目的:利用僵尸主机作为跳板来扫描目标主机,目标主机的日志文件中记录的就是僵尸主机IP地址,能更好隐藏自己

(3)僵尸主机要求:长期闲置且联网,ID值自增

(4)过程

  1. 扫描主机向Zombie发送SYN/ACK包,Zombie(此时产生IPID为x)向扫描主机返回RST,主机得到Zombie的IPID
  2. 扫描主机伪造Zombie的IP(x),向目标主机发送SYN包。目标端口开放,会向Zombie返回SYN/ACK包; Zombie发送RST询问,IPID=x+1;端口并未开放,目标主机向Zombie发送RST包,IPID=x不变
  3. 扫描主机向Zombie发送SYN/ACK包, Zombie回复RST包,Zombie的IPID=x+2