2017-08-08 46 views
0

這裏是我的代碼是Scapy的Scapy的發送原由於IPv6對IPv4數據包

#! /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。任何人都可以在這裏幫我。任何幫助是極大的讚賞。

回答

0

我不知道你正在使用哪個版本的Scapy,但這看起來很像我們幾個月前修復的bug。您應該嘗試使用Scapy目前的開發版本Github

你的代碼適合我!

+0

完美,工作!非常感謝 ! –

+1

不幸的是,我現在無法對它進行調整。它不會讓我這樣做抱歉。 –