Scapy 将 proto 作为 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 从何而来。协议应该是 TCP。任何人都可以在这里帮助我。非常感谢任何帮助。
我不知道您使用的是哪个版本的 Scapy,但这看起来很像我们几个月前修复的错误。您应该尝试使用 Github.
中 Scapy 的当前开发版本
你的代码对我来说工作得很好!
这是我的代码是 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 从何而来。协议应该是 TCP。任何人都可以在这里帮助我。非常感谢任何帮助。
我不知道您使用的是哪个版本的 Scapy,但这看起来很像我们几个月前修复的错误。您应该尝试使用 Github.
中 Scapy 的当前开发版本你的代码对我来说工作得很好!