TCP确认欺骗

TCP确认欺骗,tcp,spoofing,spoof,Tcp,Spoofing,Spoof,我正在编写一个程序,伪造TCP请求并收集数据以存储在本地缓冲区中。为此,在连接到客户端的系统中,我配置了iptables,以便在路由之前将所有传入的数据包保留在队列中。然后我使用netfilter库从队列中读取数据包。在使用原始套接字之后,我将假TCP数据包发送到客户端。有了这个,我就能够伪造SYN/ACK数据包来响应来自客户端的SYN请求 但是,当我试图向客户机伪造一个ACK以响应传入的数据时,问题就发生了。在这种情况下,源的真实ip位于数据包中,而不是伪造的数据包。请参阅下面标有“>>>”的

我正在编写一个程序,伪造TCP请求并收集数据以存储在本地缓冲区中。为此,在连接到客户端的系统中,我配置了iptables,以便在路由之前将所有传入的数据包保留在队列中。然后我使用netfilter库从队列中读取数据包。在使用原始套接字之后,我将假TCP数据包发送到客户端。有了这个,我就能够伪造SYN/ACK数据包来响应来自客户端的SYN请求

但是,当我试图向客户机伪造一个ACK以响应传入的数据时,问题就发生了。在这种情况下,源的真实ip位于数据包中,而不是伪造的数据包。请参阅下面标有“>>>”的第7道。在此情况下,源ip显示为192.168.10.10,其中as必须为212.58.246.81。在第四个记录道(即SYN/ACK数据包)中,其显示为良好

3  0.073852000  192.168.10.100  212.58.246.81  TCP  38307 > http [SYN] Seq=0 Win=5840 Len=0 MSS=1460 TSV=502233100 TSER=0 WS=6
4  0.103102000  212.58.246.81  192.168.10.100  TCP  http > 38307 [SYN, ACK] Seq=0 Ack=1 Win=31744 Len=0
5  0.103147000  192.168.10.100  212.58.246.81  TCP  38307 > http [ACK] Seq=1 Ack=1 Win=5840 Len=0
6  0.103349000  192.168.10.100  212.58.246.81  HTTP  GET /go/rss/int/news/-/sport2/hi/tennis/9519762.stm HTTP/1.1
>>> 7  1.118729000  192.168.10.10  192.168.10.100  TCP  http > 38307 [ACK] Seq=1 Ack=1 Win=31744 Len=0
8  1.118788000  192.168.10.100  192.168.10.10  TCP  38307 > http [RST] Seq=1 Win=0 Len=0
9  3.102627000  192.168.10.100  212.58.246.81  HTTP  [TCP Retransmission] GET /go/rss/int/news/-/sport2/hi/tennis/9519762.stm HTTP/1.1
10  3.148590000  192.168.10.10  192.168.10.100  TCP  [TCP Dup ACK 7#1] http > 38307 [ACK] Seq=1 Ack=1 Win=31744 Len=0
11  3.148606000  192.168.10.100  192.168.10.10  TCP  38307 > http [RST] Seq=1 Win=0 Len=0
我还尝试了下面的“sendip”命令来发送一个假的TCP确认

sendip -p ipv4 -p tcp -is 212.58.246.81 -id 192.168.10.100 -ts 80 -td 4567 -tfa 1 -tfs 0 -d "Data" 192.168.10.100
这里tfa和tfs分别代表ack和syn标志。 这也没有像预期的那样起作用,它显示为起源于192.168.10.10,而不是212.58.246.81。但是,如果我将两个标志(syn和ack)都设置为1,那么工作正常


操作系统是Ubuntu。谁能告诉我哪里出了问题。非常感谢您的帮助。

您通过向http客户端伪造ACK来解决什么问题?我正在尝试将端到端TCP连接拆分为多个连接。一个像上面一样被拆分,数据和连接细节将存储在缓冲区中。然后使用另一个传输协议(如SCTP)将数据和连接详细信息传输到另一台机器,最后这台机器打开到真实Web服务器的TCP连接,获取数据并发送回。有点低于TCP SCTP TCPI我不确定是不是ip标识字段导致了问题。wikipedia摘录,“一些实验性工作建议将ID字段用于其他目的,例如向数据报添加数据包跟踪信息,以帮助跟踪具有伪造源地址的数据报。”通过SCTP代理如何解决问题?您用什么语言编写代码?我们有一个高延迟通道(短波无线链路),计划在该通道上使用SCTP,因为它比TCP(希望:)好…程序是用C编写的。。