【问题标题】:ICMP destination unreachable error scapyICMP目的地不可达错误scapy
【发布时间】:2014-05-02 23:57:16
【问题描述】:

我正在测试 ICMP 响应:
当我使用 Scapy 将 UDP 段/数据包发送到端口时,它会被发送到目的地,说格式错误的数据包(未知操作),并且目的地会回复正确的 ICMP 端口不可达消息。 任何人都可以对此有所了解,还是我在这里犯了一个愚蠢的错误? 这是我这样做的脚本;

# Generate packet
pkts3 = IP(dst="10.0.0.2")/UDP()/Raw(RandString(size=120))
#print pkts
pkts3[UDP].flags = "S"

pktList3 = []
for pktNum3 in range(0,5):
    pktList3.extend(pkts3)
    pktList3[pktNum3][UDP].dport = 520 # Pkt has Ran PortNo.
    print pktList3[pktNum3].summary()
    #print len(pktList[pktNum])
    #wrpcap('tcp-packets.pcap',pktList[pktNum])

# Send the list of packets send(pktList)
start_time3=time.time()
send(pktList3)
totalTime = time.time()-start_time3
totalBytes=(5*120)/totalTime
#print pktList3[0].show()
print pktList3[0].show2()
print totalBytes,"Seconds"

【问题讨论】:

标签: python python-2.7 packet scapy traffic


【解决方案1】:

您可以执行以下操作 (Scapy 2.2.0)

1) 使用 Scapy 的 ICMP 数据包(好像你的数据包不正确)

from scapy.layers import inet, inet6
icmpPacket = inet.ICMP()

然后像往常一样使用运算符/ 连接。 ICMP 在 IPv4 上运行。

2) 除了上一点之外,您还需要使用 Scapy 修改数据包中的 Ethernet 部分。您可能需要发送者和接收者的正确 MAC 地址才能获得正确的回复。

例子:

【讨论】:

  • 问题是我使用的模拟器 mininet 不允许 UDP 数据包,但它适用于 TCP。我怎样才能允许 UDP 数据包在模拟器中流动
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多