TCP端口扫描

# TCP三次握手
第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;
第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;
第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。
完成三次握手,客户端与服务器开始传送数据。
 
# 端口扫描类型
## TCP connect扫描
全连接扫描,此扫描与每个TCP端口进行3次握手通信。成功建立连接,则证明端口开放,否则为关闭。准确度很高,但是容易被防火墙和IDS检测到,并且在目标主机日志会有记录。
 
## TCP SYN扫描
端口开放:client发送SYN,server端回复SYN/ACK,client发送RST断开
端口关闭:client发送SYN,server端回复RST
 
## 秘密扫描
秘密扫描是一种不被审计工具所检测的扫描技术。它通常用于在通过普通的防火墙或路由器的筛选时隐藏自己。秘密扫描能躲避IDS、防火墙、包过滤器和日志审计,从而获取目标端口的开放或关闭的信息。由于没有包含TCP3次协议的任何部分,所以无法被记录下来,比半连接扫描更为隐藏。但是这种扫描的缺点是扫描结果的不可靠性会增加,而且扫描主机也需要自己构造IP包。
 
TCP FIN扫描
端口开放:client发送FIN,server没有响应
端口关闭:client发送FIN,server回复RST
 
TCP ACK扫描
端口开放:client发送ACK,server回复RST数据包TTL<=64
端口关闭:client发送ACK,server回得RST数据包TTL>64
 
NULL扫描
端口开放:client发送NULL,server没有响应
端口关闭:client发送NULL,server回复RST
 
TCP XMAS扫描
端口开放:client发送USG/PSH/FIN,server没有响应
端口关闭:client发送USG/PSH/FIN,server回复RST
 
SYN/ACK扫描
## 其他扫描
UDP扫描
IP头信息dump扫描
IP分段扫描
慢速扫描
乱序扫描
 
## TCP FLAGS
SYN(synchronous建立联机) SYN表示建立连接
FIN(finish结束) FIN表示关闭连接
ACK(acknowledgement 确认) ACK表示响应
PSH(push传送) PSH表示有DATA数据传输
RST(reset重置) RST表示连接重置
URG(urgent紧急)
Sequence number(顺序号码)
Acknowledge number(确认号码)
 
当FIN之后出现RST=1时,表示的是连接重置
当出现FIN包或RST包时,我们便认为客户端与服务器端断开了连接
当出现SYN和SYN+ACK包时,我们认为客户端与服务器建立了一个连接
当出现SYN=ACK=1时,表示的就是建立连接之后的响应
当出现PSH=1时,表示的是有真正的TCP数据包内容被传递
SYN与FIN是不会同时为1的,因为SYN表示建立连接,而FIN表示断开连接
 



posted @ 2018-10-16 16:49  bigcat47  阅读(2862)  评论(0编辑  收藏  举报