我知道不可能使用欺骗的 IP 地址执行成功的 TCP 握手。
但是我想知道:一旦成功执行 TCP 握手,是否有可能欺骗 IP?
例如:
执行握手
使用会话(使用不同的 IP)并发送请求
响应被传递到欺骗的 IP
提前致谢!
我知道不可能使用欺骗的 IP 地址执行成功的 TCP 握手。
但是我想知道:一旦成功执行 TCP 握手,是否有可能欺骗 IP?
例如:
执行握手
使用会话(使用不同的 IP)并发送请求
响应被传递到欺骗的 IP
提前致谢!
一旦成功执行 TCP 握手,是否可以欺骗 IP?
不。
TCP 会话由四个项目定义:
这来自RFC 793:
为了在每个 TCP 中提供唯一地址,我们将标识 TCP 的 Internet 地址与端口标识符连接起来,以创建一个套接字,该套接字在连接在一起的所有网络中都是唯一的。
连接完全由两端的套接字对指定。
如果您要:
- 使用会话(使用不同的 IP)并发送请求
当您更改这四个参数中的任何一个时,例如源 IP,新数据包不再是该 TCP 会话的一部分,并且不会被“传递”,因为它与会话定义不匹配。相反,它将是一个状态外的数据包,并被丢弃或拒绝。
正如 gowenfawr 的回答所解释的,您不能更改 TCP 会话的 IP。但是,在欺骗源 IP 时,有一些选项可以建立 TCP 连接。
IP 欺骗所做的只是更改您发送的数据包的源 IP 地址。这是在网络堆栈的路由 (IP) 层上完成的。服务器将像威胁任何数据包一样威胁这个欺骗数据包,无论是握手的某个数据包还是之后的某个数据包。它将回复源 IP 地址,当您欺骗它时,它可能不是您“拥有”的,因此您将不会收到响应。
那么你怎么还能收到一个不是发给你的数据包呢?我想到了几个选项:
您位于未受保护(或违反保护)的无线网络上,而收件人也位于该网络上。收件人将忽略该数据包,但如果您正在收听网络上的所有数据包,您将看到该数据包,从而能够适当地回复或使用回复的信息。
您可以访问收件人的机器,在这种情况下,您最好从这里发送数据包而不是欺骗它。
您可以沿着数据包将采用的路径访问某些路由器,这将允许您使路由器向您发送副本。但要知道数据包将以何种方式传播并非易事。
虽然理论上可能改变数据包本身的路由以将其发送给您,但在我看来是不可行的。
因此,简短的回答是,如果不采取一些额外措施,您将永远无法收到 IP 欺骗数据包的回复。