簡體   English   中英

Scapy將原型作為ipv6發送給ipv4數據包

[英]Scapy sending proto as ipv6 for a ipv4 packet

這是我的代碼是SCAPY

#! /usr/bin/env python
from scapy.all import *

source_port = 25000
dest_port = 23
ip = IP(src="192.168.21.146",dst="192.168.21.168")
num_seq=10
SYN=TCP(sport=source_port,dport=dest_port,flags="S",seq=num_seq)
SYNACK=sr1(ip/SYN)
payload1="/etc/passwd"
num_ack=SYNACK.seq + 1
num_seq=num_seq=1
ACK=TCP(sport=source_port,dport=dest_port,flags="A",ack=num_ack,seq=num_seq)
send(ip/ACK)
PUSH = TCP(sport=source_port,dport=dest_port,flags="PA",ack=num_ack)
PUSH.seq=num_seq
first=fragment(ip/PUSH/payload1,fragsize=24)
send(first)

因此,正如您所看到的,我正在嘗試啟動3向握手,然后發送/ etc / passwd(分段)。 但是,在檢查wireshark之​​后,一切正常,直到3種方式,當我發送有效負載/ etc / passwd時,數據包顯示如下

1 0.000000000 192.168.21.146 → 192.168.21.168 TCP 54 25000 → 23 [SYN] Seq=10 Win=8192 Len=0
2 0.000282483 192.168.21.168 → 192.168.21.146 TCP 60 23 → 25000 [SYN, ACK] Seq=2859111682 Ack=11 Win=29200 Len=0 MSS=1460
3 0.074613619 192.168.21.146 → 192.168.21.168 TCP 54 25000 → 23 [ACK] Seq=1 Ack=2859111683 Win=8192 Len=0
4 0.166245933 192.168.21.146 → 192.168.21.168 IPv4 58 Fragmented IP protocol (proto=IPv6 Hop-by-Hop Option 0, off=0, ID=0001)
5 0.167909879 192.168.21.146 → 192.168.21.168 IPv4 41 IPv6 Hop-by-Hop Option (0)

因此,如果您在數據包4和5看到這里,我不確定逐跳和原始ipv6來自何處。 Proto應該是TCP。 任何人都可以在這里幫助我。 任何幫助是極大的贊賞。

我不知道您使用的是哪個版本的Scapy,但這看起來很像我們幾個月前修復的錯誤。 您應該嘗試使用Github的 Scapy當前開發版本。

您的代碼對我來說很好!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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