【问题标题】:Scapy - send packets from pcap file with changed ip addressesScapy - 从更改 IP 地址的 pcap 文件发送数据包
【发布时间】:2021-03-20 00:11:37
【问题描述】:

我已从网络收集数据包并将其保存到文件 *.pcap 我想更改 src 和 dst ip 地址并将其发送到网络。 我写了一个简单的脚本:

#! /usr/bin/env python

from scapy.all import *
from scapy import *
from scapy.utils import rdpcap
from scapy.utils import wrpcap

packets = rdpcap("/root/Desktop/500000pkt.pcap", 1000)

for pkt in packets:
    if pkt.haslayer(IP) == 1:
        pkt[IP].src = "10.0.1.2"
        pkt[IP].dst = "10.0.1.1"

#for pkt in packets:
#   pkt.display()

wrpcap("/root/Desktop/500000pkt_changed.pcap", packets)
sendpfast(packets)

我正在使用 eth1 接口。 执行此脚本后,我看到了:

WARNING: No route found for IPv6 destination :: (no default route?)
sending out eth1 
processing file: /tmp/scapylUGae4
Actual: 1000 packets (627010 bytes) sent in 0.09 seconds.       Rated: 6966778.0 bps, 53.15 Mbps, 11111.11 pps
Statistics for network device: eth1
    Attempted packets:         1000
    Successful packets:        1000
    Failed packets:            0
    Retried packets (ENOBUFS): 0
    Retried packets (EAGAIN):  0

在wireshark 中,我观察到网络流量,但没有任何反应。它的沉默。 从电脑Ping到路由器是成功的。

我做错了什么?任何人都可以帮忙吗?

【问题讨论】:

  • 我不了解自己,但我认为scapy 在信息更改时不会重写校验和。这可能是导致您出现问题的原因。

标签: networking network-programming scapy


【解决方案1】:

删除 chksum 字段以强制 scapy 重新计算它。

del pkt[IP].chksum

【讨论】:

    猜你喜欢
    • 2013-12-04
    • 1970-01-01
    • 2012-09-08
    • 1970-01-01
    • 1970-01-01
    • 2014-08-04
    • 2011-03-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多