我已经在圈子中运行了以下场景:
客户端发送GET请求,请求几个完整的MSS 1460字节TCP数据包大小的资源,让我们说6。 如何在服务器传递所有数据包之前强制scapy发送带有FIN标志的TCP段。包1,2,3,4,5之后
尝试简单的curl请求/循环和python / scapy脚本的组合:
from scapy.all import * from time import sleep
os.system("iptables -I OUTPUT -p tcp --tcp-flags ALL RST,ACK -j DROP")
os.system("iptables -I OUTPUT -p tcp --tcp-flags ALL RST -j DROP")
def packet(pkt):
if pkt[TCP].flags == 16:
print('ACK packet detected port : ' + str(pkt[TCP].sport) + ' from IP Src : ' + pkt[IP].src)
send(IP(dst=pkt[IP].src, src=pkt[IP].dst)/TCP(dport=pkt[TCP].sport, sport=pkt[TCP].dport,ack=pkt[TCP].seq + 1, flags='F')) sniff(iface="ens160", prn=packet, filter="host 1.1.1.1",count=10)
但是包含FIN标志的段总是迟到并且超出TCP seq / ack sync。