【问题标题】:Is it possible to hijack TCP connections on remote hosts?是否可以劫持远程主机上的 TCP 连接?
【发布时间】:2014-06-08 14:12:54
【问题描述】:

例如,假设Person A 连接到Server 并且已经启动了TCP 连接。没有数据包被加密。假设Person A 的IP 地址为99.99.99.1

是否可以让另一个用户Person B 连接到同一个Server 并发送一个数据包,使Server 认为它来自Person A

我知道TCP Spoofing

Person B 可以使用 TCP 欺骗来实现这一点吗? 'spoof'目的IP,猜测目的端口(目的端口常用的端口只有5000个左右,60000到2^16-1)

如果Person BPerson A's IP 地址,他们是否只需要猜测远程端口即可实现此目的?还是 TCP 数据包中的其他字段阻止了这种情况?

例如,发送 5000 个数据包,每个数据包都带有欺骗性 IP,端口从 60000 到 2^16-1 以及数据 Person B 是否希望 Server 认为已被 Person A's current TCP connection 接收?

【问题讨论】:

  • 在 TCP 的情况下这没有什么意义,因为你(作为 B 人)可以完美地“从 A 人”发送一个数据包,但是服务器的回复将发送给真人 A,造成混乱。这在无连接的情况下更有意义,当一个数据包到达服务器时会产生一些影响。

标签: sockets tcp


【解决方案1】:

TCP 在建立连接时创建一个随机的 32 位序列号 (TCP-SYN)。如果序列号不匹配,TCP 堆栈将丢弃数据包。仅欺骗 IP 和端口无济于事,您还需要 TCP 连接的序列号。

【讨论】:

    猜你喜欢
    • 2011-08-11
    • 2020-07-21
    • 2017-05-05
    • 2015-07-16
    • 1970-01-01
    • 2012-07-01
    • 2012-04-04
    • 1970-01-01
    • 2013-09-08
    相关资源
    最近更新 更多