[英]How can I close a connection via scapy sending a FIN packet?
我需要發送FIN數據包以關閉具有IP和端口信息(以及之前數據包中的其他信息)的連接。
我已經看到可以通過三向握手(請參閱Scapy中的三向握手 )來建立新的連接,但是在關閉連接時什么也沒有。
如RFC所述,您需要發送FIN段,然后等待端點的確認(ACK)+ FIN段,然后為其發送最后一個ACK段。
這是一個使用Scapy的簡單示例:
from scapy.all import *
conf.L3socket=L3RawSocket
sport=10000
dport=45000
pkt=IP(src="1.2.3.4", dst="4.5.6.7")
SYN=pkt/TCP(sport=sport, dport=dport, flags="S")
SYNACK=sr1(SYN)
ACK=pkt/TCP(sport=sport, dport=dport, flags="A", seq=SYNACK.ack, ack=SYNACK.seq + 1)
send(ACK)
# ...
FIN=pkt/TCP(sport=sport, dport=dport, flags="FA", seq=SYNACK.ack, ack=SYNACK.seq + 1)
FINACK=sr1(FIN)
LASTACK=pkt/TCP(sport=sport, dport=dport, flags="A", seq=FINACK.ack, ack=FINACK.seq + 1)
send(LASTACK)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.