如何通过netfilter queue和scapy更改TCP负载和长度

2024-09-30 00:22:34 发布

您现在位置:Python中文网/ 问答频道 /正文

使用Netfilter队列并scapy更改TCP负载,测试客户端向测试服务器发送消息:

测试服务器中的iptables规则: iptables-A输出-p TCP-d[test client ip]-jnfqueue--queue num 1

在更改TCP有效负载后,如果更改后的长度相同,并且只替换字符串,则所有行为都正确。在

但如果长度不同,则程序异常:

如果有效载荷长度较短: 客户端可以接收修改后的负载,但套接字不能正常关闭,客户端向服务器发送RST连接

如果有效载荷长度较长: 客户端也可以接收修改后的有效负载,但服务器多次重复发送数据包,套接字无法正常关闭,服务器套接字“正在关闭”,客户端套接字为“FIN_WAIT1”或“TIME_WAIT” 系统队列最终为14,正常为6:

cat/proc/net/netfilter/nfnetlink_队列

1   7888     0 2  4016     0     0       14  1

从tcpdump显示,有许多“tcp重传”

谁来帮帮我?谢谢,下面是测试代码:

^{pr2}$

Tags: testip服务器client消息客户端iptables队列
1条回答
网友
1楼 · 发布于 2024-09-30 00:22:34

长度改变了,所以seq,ack num都不一样,导致了关闭socket时出现异常,我还不知道该怎么解决这个问题,但它不影响有效负载的传输

相关问题 更多 >

    热门问题