问题标签 [scapy]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 使用短于 8 位的 PacketField 构建 scapy 数据包
我正在尝试使用 scapy 添加一个新协议,并且在构建存储其他长度小于一个字节的 BitEnumField“数据包”的数据包时遇到了困难。我想知道是否有一种解决方法可以使它工作(没有将数据包捆绑到完整的字节字段中)。这是示例:
现在我可以理解为什么只有 4 位长会Status().show2()
失败。pkt
但是这个也死了(我猜是因为每个数据包都是独立形成的):
TotalStatus().show2()
为您提供冗长的回溯,最终self.post_build()
无法对pkt
元组和有效负载的其余部分进行分类,这是空字符串。IE:>>> TypeError: can only concatenate tuple (not "str") to tuple
有什么方法可以避免将位字段捆绑成完整字节?
python - Scapy:添加具有复杂字段分组的新协议
我正在尝试使用scapy
. 在数据包中有一个项目列表,项目由“分组字段”组成。“分组字段”是指不同类型字段的子序列。我知道在 scapy 中制作“分组字段”的唯一方法是使用Packet
class 并使用FieldLenField
/PacketListField
来引用序列的长度和列表成员的类型。这是要走的路吗?看起来像这样的东西:
这种方法的问题是分组的结构在重新组装数据包时没有保留。在组装时,即使计数字段为 2,第二个实例RepeatedSequence
也被视为原始主体。如何添加RepeatingSequences
这样的结构,以便在重新组装时保留结构?有没有一种方法可以对字段进行分组而不将Packet
其用作列表的存储类型?
python - 从 tcpdump 中剥离有效负载?
是否有一种自动方式(在 tcpdump 中或通过帮助应用程序 Out There)生成仅包含以太网、IP 和第 4 层(在我的情况下为 TCP)标头的 pcap 文件,以便在结果 pcap?我发现由于标头大小经常变化,因此不可能选择不会捕获任何有效负载数据的捕获大小。
python - 如何从 pcap 文件中提取以太网级数据?
我有一些 pcap 文件,之前我使用 tshark 结合 python 来提取源 IP 地址、时间戳等。
但是,现在我在 Wireshark 中打开这些 pcap 文件。它还包含 VLAN 信息,VID 是我现在要提取的东西。
我tshark -r xx.pcap
在终端使用,它只能显示tcp级别信息,我无法获取这个VLAN ID。有谁知道如何在 Python 中做到这一点?使用一些库或工具?
python - 在 Python 中捕获 Scapy 函数输出
我正在尝试将 scapy 函数(traceroute)的输出捕获到 python 脚本中的字符串。我知道我需要将此函数通过管道传输到标准输出(就像您对 subproces.call() 所做的那样,但不确定如何使用 scapy 执行此操作,是否有人能够提供任何帮助?我是 Python 新手。
相关代码如下。
python - 使用 Scapy 解析 PPPoE 标签
我正在尝试使用 Scapy 正确剖析 PPPoE 发现数据包。以下是 Scapy 显示示例 PADI 数据包的方式:
我想解析那个原始有效载荷。这个有效载荷只是一个 PPPoE 标签列表。每个标签由两个字节码字段、两个字节长度字段和一个值组成(当然,它的长度由前一个字段给出)。
这是我代表这一切的尝试:
不太确定这是否是正确和最好的方法。有什么改进的建议吗?
python - 在 scapy 中使用更改的 src/dst 从 pcap 发送数据包
我正在尝试使用 scapy 发送先前记录的流量(以 pcap 格式捕获)。目前我被困在剥离原始以太层。流量是在另一台主机上捕获的,我基本上需要更改 IP 和以太层 src 和 dst。我设法更换 IP 层并重新计算校验和,但以太层给我带来了麻烦。
任何人都有从捕获文件重新发送数据包的经验,并对 IP 和以太网层(src 和 dst)进行了更改?此外,捕获量相当大,只有几 Gb,在如此大的流量下,scapy 性能如何?
scapy - 使用 Scapy 时出错
我正在使用 Python2.5 和 Scapy2.2.0 。当我执行以下代码时:
我收到以下错误:
知道如何纠正这个吗?
python - 带有 Scapy 的不需要的 RST TCP 数据包
为了了解 TCP 的工作原理,我尝试伪造自己的 TCP SYN/SYN-ACK/ACK(基于教程:http ://www.thice.nl/creating-ack-get-packets-with-scapy/ )。
问题是每当我的计算机从服务器接收到 SYN-ACK 时,它都会生成一个 RST 数据包来停止连接过程。
我在 OS X Lion 和 Ubuntu 10.10 Maverick Meerkat 上试过,都重置了连接。我发现了这个: http: //lkml.indiana.edu/hypermail/linux/net/0404.2/0021.html,不知道是不是这个原因。
有谁可以告诉我可能是什么原因?以及如何避免这个问题?
谢谢你。
python - 如何使用 Python/Scapy 开始 EAP 通信
我正在用 Python/Scapy 编写一个应用程序,其行为类似于无线 802.1X 请求者。我希望我的应用程序能够通过 EAP 协议连接到 RADIUS 服务器。如果您在此处查看 EAP 消息流程图:
http://upload.wikimedia.org/wikipedia/commons/8/8a/EAP_message_flow.png
您可以看到,第一条消息(请求身份)从 Authenticator 发送到 Supplicant。但是 Authenticator 是如何知道 Supplicant 想要对自己进行身份验证的呢?Supplicant 到 Authenticator 必须有一些先前的消息,让 Authenticator 知道您要进行身份验证。
我想,这条消息是 EAPOL START 数据包。我试图在 scapy 中伪造 EAPOL START 数据包并将其发送到配置为支持 801.1X + PEAP 的 AP,但我没有得到 AP 的答复。没有请求身份数据包发回给我。
所以我的问题是:谁能告诉我我必须发送到 AP(验证器)以开始 EAP 通信(从请求身份数据包开始)的数据包示例?