摘要:2.2.1TCP扫描主机间建立TCP连接分三步(也称三次握手):(1)请求端发送一个SYN包,指明打算连接的目的端口。(2)观察目的端返回的包:返回SYN/ACK包,说明目的端口处于侦听状态;返回RST/ACK包,说明目的端口没有侦听,连接重置。(3)若返回SYN/ACK包,则请求端向目的端口发送ACK包完成3次握手,TCP连接建立。根据TCP
2.2.1 TCP扫描
主机间建立TCP连接分三步(也称三次握手):
(1)请求端发送一个SYN包,指明打算连接的目的端口。
(2)观察目的端返回的包:
返回SYN/ACK包,说明目的端口处于侦听状态;
返回RST/ACK包,说明目的端口没有侦听,连接重置。
(3)若返回SYN/ACK包,则请求端向目的端口发送ACK包完成3次握手,TCP连接建立。
根据TCP连接的建立步骤,TCP扫描主要包含两种方式:
(1)TCP全连接和半连接扫描
全连接扫描通过三次握手,与目的主机建立TCP连接,目的主机的log文件中将记录这次连接。而半连接扫描(也称TCP SYN扫描)并不完成TCP三次握手的全过程。扫描者发送SYN包开始三次握手,等待目的主机的响应。如果收到SYN/ACK包,则说明目标端口处于侦听状态,扫描者马上发送RST包,中止三次握手。因为半连接扫描并没有建立TCP连接,目的主机的log文件中可能不会记录此扫描。
(2)TCP隐蔽扫描
根据TCP协议,处于关闭状态的端口,在收到探测包时会响应RST包,而处于侦听状态的端口则忽略此探测包。根据探测包中各标志位设置的不同,TCP隐蔽扫描又分为SYN/ACK扫描、FIN扫描、XMAS(圣诞树)扫描和NULL扫描四种。
SYN/ACK扫描和FIN扫描均绕过TCP三次握手过程的第一步,直接给目的端口发送SYN/ACK包或者FIN包。因为TCP是基于连接的协议,目标主机认为发送方在第一步中应该发送的SYN包没有送出,从而定义这次连接过程错误,会发送一个RST包以重置连接。而这正是扫描者需要的结果—只要有响应,就说明目标系统存在,且目标端口处于关闭状态。
XMAS扫描和NULL扫描:这两类扫描正好相反,XMAS扫描设置TCP包中所有标志位(URG、ACK、RST、PSH、SYN、FIN),而NULL扫描则关闭TCP包中的所有标志位。
2.2.2 UDP端口扫描
UDP协议是数据包协议,为了要发现正在服务的UDP端口,通常的扫描方式是构造一个内容为空的UDP数据包送往目的端口。若目的端口上有服务正在等待,则目的端口返回错误的消息;若目的端口处于关闭状态,则目的主机返回ICMP端口不可达消息。因为UDP端口扫描软件要计算传输中丢包的数量,所以UDP端口扫描的速度很慢。
2.3 0S探测
OS探测有双重目的:一是探测目标主机的0S信息,二是探测提供服务的计算机程序的信息。比如OS探测的结果是:OS是Windows XP sp3,服务器平台是IIS 4.0。
2.3.1二进制信息探测
通过登录目标主机,从主机返回的banner中得知OS类型、版本等,这是最简单的0S探测技术。
图1 二进制信息
从图l可以看出,在telnet连上FTP服务器后,服务器返回的banner已经提供了server的信息,在执行ftp的syst命令后可得到更具体的信息。
2.3.2 HTTP响应分析
在和目标主机建立HTTP连接后,可以分析服务器的响应包得出OS类型。比如响应包中可能包含如下信息:
图2 响应包分析
从图2中对响应包中的数据分析,可以得到server的信息。
通信工程师备考资料免费领取
去领取