簡體   English   中英

如何通過Scapy發送FIN數據包關閉連接?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM