如何在TCP会话期间实现源伪造?

如何在TCP会话期间实现源伪造?,tcp,nat,Tcp,Nat,其思想是两台不同的机器(在两个不同的NAT后面)连接到公共服务器 他们试图与这样的公共服务器建立TCP连接。。。 然后,在代理数据流的过程中,可能会发生神奇的事情! 在此会话期间更改整个tcp/ip堆栈上的源和目标地址 目标-将第三部分作为代理从进一步的通信中排除…首先,您需要一台服务器,对等方将向其发送数据或其他信息,以便让其知道服务器需要向其发送syn ack 首先,Peer-A用低TTL值发送一个数据包到对等B的地址,使其被丢弃在中间,并且不到达B的NAT。它将继续发送此数据包,直到服务器

其思想是两台不同的机器(在两个不同的NAT后面)连接到公共服务器

他们试图与这样的公共服务器建立TCP连接。。。 然后,在代理数据流的过程中,可能会发生神奇的事情! 在此会话期间更改整个tcp/ip堆栈上的源和目标地址


目标-将第三部分作为代理从进一步的通信中排除…

首先,您需要一台服务器,对等方将向其发送数据或其他信息,以便让其知道服务器需要向其发送syn ack

首先,Peer-A用低TTL值发送一个数据包到对等B的地址,使其被丢弃在中间,并且不到达B的NAT。它将继续发送此数据包,直到服务器的一个数据包通过包含B的源地址(源伪造)的syn ack到达它。A会和服务器握手,但A会认为他在和B握手

B也会发生同样的情况。B将与服务器握手,但会认为是与A握手。握手完成后,两端数据传输将以A和B之间的P2P连接开始


这是源代码伪造,因为服务器正在与两个对等方握手,假装其中一个对等方。这是两个对等NAT相互打开的方式。

您要做的是TCP打孔: