首页 文章

与欺骗IP的握手

提问于
浏览
2

我注意到一些合法的连接是这样的:

6221 29.880628 5.4.3.2   1.2.3.4 TCP 61235 > cbt [SYN] Seq=0 Win=8192 Len=0 MSS=1452 SACK_PERM=1
6222 29.880646 1.2.3.4  5.4.3.2 TCP cbt > 61235 [SYN, ACK] Seq=0 Ack=1 Win=16384 Len=0 MSS=1460 SACK_PERM=1
6240 29.984383 5.4.3.2  1.2.3.4 TCP 61235 > cbt [ACK] Seq=1 Ack=1 Win=65340 Len=0
6241 29.989707 5.4.3.2  1.2.3.4 TCP 61235 > cbt [PSH, ACK] Seq=1 Ack=1 Win=65340 Len=267

所以,至少在我的情况下,如果合法总是这样:

Client (Syn,Seq=0)
Server (Syn/Ack, Seq=0, Ack1)
Client (Ack, Seq=1, Ack1)

对于可以欺骗并且能够将套接字提升到应用程序而言,对我来说似乎很弱 . (当然,为了避免使用RST,必须关闭欺骗性IP)

所以我测试了发送带有欺骗IP的SYN然后发送ACK .

SYN到达,但是某些时候ack会被忽略 .

在欺骗SYN之后,服务器发送3个SYN / ACK(当然没有回复) . 几秒后,如果我重新发送确认,它会收到但有一些错误 .

在这种情况下,是否可以与欺骗性IP进行握手?似乎是,但我做错了什么..

1 回答

  • 2

    不,这是不可能的 .

    问题是当服务器发回 SYN-ACK 时 - 因为它将它发送回欺骗的ip,这与消息的实际发起者不匹配 .

    具体来说,你所描述的(伪造ACK)是一个众所周知的TCP sequence prediction attack,现在几乎每个操作系统都会被反击 .

相关问题