创建格式错误的以太帧?

多汁的

我希望这是微不足道的,但我无法使其正常工作。

我想在Python中使用Scapy发送伪造的ARP,但在这种情况下,我也需要欺骗源MAC地址(vmac,vip,rip都是有效值)

op = 1
who_has_router = Ether(src=vmac)/ARP(op=op,psrc=vip,pdst=rip,hwsrc=vmac)
send(who_has_router)

上面的内容在Wireshark中显示为格式错误的数据包,并且网络上的所有人都将其忽略。

如果我删除该Ether()层,它将正常工作(但随后它不会欺骗源mac,因此在这种情况下还不够好):

# This works exactly as expected
op = 1
who_has_router = ARP(op=op,psrc=vip,pdst=rip,hwsrc=vmac)
send(who_has_router)

如何Ether()在Python / Scapy中添加图层而又不会导致格式错误的数据包?

在此处输入图片说明

约尔

send功能用于在第3层发送数据包,而您的数据包是第2层数据包。您应该使用该sendp功能。

有关更多信息,请参见scapy的文档

send()功能将在第3层发送数据包。也就是说,它将为您处理路由和第2层。sendp()功能将在第2层起作用。由您选择正确的接口和正确的链路层协议。

官方的API文档指出这个问题,以及:

send(pkts, inter=0, loop=0, verbose=None)

使用conf.L3socket超级套接字在第3层发送数据包

sendp(pkts, inter=0, loop=0, iface=None, iface hint=None, verbose=None)

使用conf.L2socket超级套接字在第2层发送数据包。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

NIC的以太网帧

错误的以太坊交易格式需要多少钱?(例如,错误的账户随机数)

Python:从长格式熊猫数据帧创建嵌套列表

创建以太坊合约(以太坊)

以太坊:Pyethereum错误

PHP datetime 从格式创建返回错误结果

创建错误:无效的日期时间格式:1292

以太网帧传输层识别

PySpark 创建带有浮点类型错误的数据帧

为什么Spark在创建csv格式的数据帧的同时创建多个csv文件?

如何创建以太币钱包?

MetaMask 地址与以太坊格式的地址

如何使用 Spark scala 从字符串格式的复杂 JSON 创建数据帧

如何基于R中的长格式数据帧创建具有不同列长的Markdown表?

spark数据帧解析带有非美国格式奇怪错误的csv

如何在将格式错误的 JSON 读入数据帧之前使用 pyspark 修复它

在数据帧中将 unixtimestamp 转换为日期时间格式的 scala 代码错误

XSL密钥,从格式错误的数据中创建密钥

UIImagePickerController“创建未知类型的图像格式是错误”

JsonWebTokenError:jwt格式错误(在ExpressJs中创建API)

用数组作为值创建对象时,json格式错误

为什么CriteriaBuilder为“在” CollectionTable中创建格式错误的查询?

无法创建应用:格式错误的config.xml

尝试创建跨堆栈引用时,Yaml 格式错误

Linux:在发送以太网帧时,正在重写以太类型

从 r 中的 Search() 弹性创建的数据帧,但在使用结果数据帧时收到错误“conn 必须是弹性连接对象”

Python第2层以太网帧->接收数据

巨型以太网帧可以标记VLAN吗?

EUI-64和以太网帧头的混淆