问题标签 [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.

0 投票
1 回答
2432 浏览

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

有什么方法可以避免将位字段捆绑成完整字节?

0 投票
1 回答
4511 浏览

python - Scapy:添加具有复杂字段分组的新协议

我正在尝试使用scapy. 在数据包中有一个项目列表,项目由“分组字段”组成。“分组字段”是指不同类型字段的子序列。我知道在 scapy 中制作“分组字段”的唯一方法是使用Packetclass 并使用FieldLenField/PacketListField来引用序列的长度和列表成员的类型。这是要走的路吗?看起来像这样的东西:

这种方法的问题是分组的结构在重新组装数据包时没有保留。在组装时,即使计数字段为 2,第二个实例RepeatedSequence也被视为原始主体。如何添加RepeatingSequences这样的结构,以便在重新组装时保留结构?有没有一种方法可以对字段进行分组而不将Packet其用作列表的存储类型?

0 投票
3 回答
17567 浏览

python - 从 tcpdump 中剥离有效负载?

是否有一种自动方式(在 tcpdump 中或通过帮助应用程序 Out There)生成仅包含以太网、IP 和第 4 层(在我的情况下为 TCP)标头的 pcap 文件,以便在结果 pcap?我发现由于标头大小经常变化,因此不可能选择不会捕获任何有效负载数据的捕获大小。

0 投票
2 回答
3471 浏览

python - 如何从 pcap 文件中提取以太网级数据?

我有一些 pcap 文件,之前我使用 tshark 结合 python 来提取源 IP 地址、时间戳等。

但是,现在我在 Wireshark 中打开这些 pcap 文件。它还包含 VLAN 信息,VID 是我现在要提取的东西。

tshark -r xx.pcap在终端使用,它只能显示tcp级别信息,我无法获取这个VLAN ID。有谁知道如何在 Python 中做到这一点?使用一些库或工具?

0 投票
2 回答
2365 浏览

python - 在 Python 中捕获 Scapy 函数输出

我正在尝试将 scapy 函数(traceroute)的输出捕获到 python 脚本中的字符串。我知道我需要将此函数通过管道传输到标准输出(就像您对 subproces.call() 所做的那样,但不确定如何使用 scapy 执行此操作,是否有人能够提供任何帮助?我是 Python 新手。

相关代码如下。

0 投票
2 回答
2875 浏览

python - 使用 Scapy 解析 PPPoE 标签

我正在尝试使用 Scapy 正确剖析 PPPoE 发现数据包。以下是 Scapy 显示示例 PADI 数据包的方式:

我想解析那个原始有效载荷。这个有效载荷只是一个 PPPoE 标签列表。每个标签由两个字节码字段、两个字节长度字段和一个值组成(当然,它的长度由前一个字段给出)。

这是我代表这一切的尝试:

不太确定这是否是正确和最好的方法。有什么改进的建议吗?

0 投票
4 回答
42865 浏览

python - 在 scapy 中使用更改的 src/dst 从 pcap 发送数据包

我正在尝试使用 scapy 发送先前记录的流量(以 pcap 格式捕获)。目前我被困在剥离原始以太层。流量是在另一台主机上捕获的,我基本上需要更改 IP 和以太层 src 和 dst。我设法更换 IP 层并重新计算校验和,但以太层给我带来了麻烦。

任何人都有从捕获文件重新发送数据包的经验,并对 IP 和以太网层(src 和 dst)进行了更改?此外,捕获量相当大,只有几 Gb,在如此大的流量下,scapy 性能如何?

0 投票
1 回答
997 浏览

scapy - 使用 Scapy 时出错

我正在使用 Python2.5 和 Scapy2.2.0 。当我执行以下代码时:

我收到以下错误:

知道如何纠正这个吗?

0 投票
3 回答
20641 浏览

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,不知道是不是这个原因。

有谁可以告诉我可能是什么原因?以及如何避免这个问题?

谢谢你。

0 投票
1 回答
2967 浏览

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 通信(从请求身份数据包开始)的数据包示例?