如果TCP程序A和B之间存在TCP连接,并且攻击者知道其源IP地址/端口和目标IP地址/端口,则攻击者现在想要向A发送TCP重置数据包以结束TCP连接。
现在,让我们假设,对于A,其TCP堆栈刚刚发送了序列号为1000且确认号为5000的TCP Ack数据包。
复位数据包上的序列号和确认号是否有任何要求?
如果重置数据包使用 seq: 5000 and ack:1000
,它肯定会被A的TCP堆栈接受,并且TCP连接在A上结束。
以下组合怎么样?
1 seq: 5000, ack_seq: 0
2 seq: 5000, ack_seq: 999 ( this ack_seq is obsolete, namely <1000)
3 seq: 5000, ack_seq: 1002 ( this ack_seq is proactive, namely >1000)
4 seq: 5001, ack_seq: 1000 ( the seq is not consistent)
5 seq: 5001, ack_seq: 999 ( both seq and ack_seq are not consistent)
在我看来,这 1
是否可以杀死连接?