问题标签 [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 回答
1208 浏览

python - Python Scapy 并以反向模式读取 pcap

我正在使用以下函数读取pcap文件:rdpcap

我想知道如何反转s:它应该是一个列表,但我尝试过:

它不起作用:它给了我SyntaxError: invalid syntax错误。

任何人都可以帮助我吗?

0 投票
4 回答
20845 浏览

python - Scapy 和 rdpcap 函数

我正在使用rdpcapScapy 的功能来读取 PCAP 文件。我还使用了Scapy 中的 HTTP 支持链接中描述的模块,这在我的情况下是必需的,因为我必须检索所有 HTTP 请求和响应以及它们的相关数据包。

我注意到解析大型 PCAP 文件时,该rdpcap函数需要花费太多时间来读取它。

有没有pcap更快读取文件的解决方案?

0 投票
1 回答
3473 浏览

windows - 是否可以使用 Python/Scapy for Windows 编写简单的防火墙?

我正在寻找一个可以拦截HTTP流量的“小型”防火墙,然后它应该根据其IP地址和数据包的内容(文本)修改或丢弃数据包。

在我创建这个问题之前,我用谷歌搜索了几次。恐怕需要很长时间,而且我没有开发驱动内核模式的经验。

不过最近,我遇到了一个 python (scapy)库,从文档中,它能够嗅探和伪造流量。

但是我有几个关于 scapy 的问题:

“伪造网络数据包”是什么意思?它会伪造数据包的副本吗?

提前致谢。

PS:另外,由于我没有在内核模式下开发驱动程序的经验,在用户模式下是否有任何替代库?使用的编程语言不是我的目标,我的目标是在短时间内完成这项任务,并且尽可能简单。

0 投票
6 回答
18336 浏览

wifi - Scapy - 从 WiFi 数据包中检索 RSSI

我正在尝试从 WiFi 数据包中获取 RSSI 或信号强度。我还想要来自“WiFi 探测请求”的 RSSI(当有人在搜索 WiFi 热点时)。

我设法从 kismet 日志中看到它,但这只是为了确保它是可能的——我不想一直使用 kismet。

对于“全时扫描”,我使用的是 scapy。有谁知道我在哪里可以从用 scapy 嗅探的数据包中找到 RSSI 或信号强度(以 dBm 为单位)?我不知道整个数据包是如何构建的——而且有很多我不知道如何解析/解释的“十六进制”值。

我正在嗅探这两个接口 - wlan0(检测何时有人连接到我的热点)和 mon.wlan0(检测何时有人搜索热点)。我使用的硬件(WiFi 卡)基于 Prism 芯片组(ISL3886)。然而,Kismet 的测试是在 Atheros (AR2413) 和 Intel iwl4965 上运行的。

编辑1:

看起来我需要以某种方式访问​​存储在 PrismHeader 中的信息: http ://trac.secdev.org/scapy/browser/scapy/layers/dot11.py 第 92 行?

有人知道如何输入这些信息吗?packet.show() 和 packet.show2() 不显示该类/层中的任何内容

编辑2:

经过更多挖掘后,似乎接口设置不正确,这就是它没有收集所有必要标题的原因。如果我运行 kismet 然后使用 scapy 从该接口嗅探数据包,则数据包中会包含更多信息:

现在我只需要正确设置界面而不使用kismet。

0 投票
2 回答
5226 浏览

tcp - 使用 Scapy 发送 tcp 有效负载:为什么要吃掉一个字节?

我的问题如下:我想用scapy实现一个listen服务来刺激蜜罐(因为蜜罐使用的是假ip,所以不能使用OS sockets),我选择了scapy。

我实现了一个非常简单的 TCP 握手过程,但是有件事让我很沮丧:我使用 PSH 发送的数据包的一个字节被吃掉了。

例如,我将“abc”发送给客户端,但客户端的套接字(例如 netcat 或 wget)只接收“bc”。另一个例子是“HTTP/1.1 200 OK”变成“TTP/1.1 200 OK”。我捕获了数据包,wireshark 可以正确地将我的手工数据包识别为 HTTP,但客户端套接字仅缺少 1 个字节。我不知道为什么。

代码如下:192.168.1.100代表server(my) ip addr,9999是端口。例如,我在 192.168.1.100 上运行这个 python 脚本,然后我使用“nc 192.168.1.100 9999”。我希望得到“abc”,但我只能得到“bc”,但是在Wireshark中数据包似乎没有问题。太奇怪了。

0 投票
1 回答
1501 浏览

python - 没有收到所有 ICMP 超时消息:为什么?

我正在使用 Scapy 重放一些我更改 TTL 值的转储数据包。即使 TTL=1,我也得到了非常奇怪的结果。

当我彼此分开运行测试时间时,大约有 40% 到 95% 的数据包回复了 ICMP 超时消息。然后我可以递归地重放未应答的数据包,并且每次都或多或少地获得与以前相同百分比的已应答数据包。

这是为什么?

我一直在以 0.1 秒的间隔发送数据包。这应该没问题吧?我的超时值是10s,应该很保守。

这里有什么问题?

0 投票
1 回答
5655 浏览

hex - scapy hexdump()

我想知道哪个hexdump()scapy 使用,因为我想修改它,但我根本找不到任何东西。

我发现的是:

但这只是 的替代方法pkt.hexdump(),它pkt.summary()具有以下功能hexdump(pkt)

谁能告诉我在哪里可以找到hexdump(pkt)源代码?

我想要的是十六进制数据包,几乎就像str(pkt[0])(我可以通过 逐字节检查str(pkt[0])[0]),但除了十六进制值之外别无其他,就像显示在hexdump(pkt).

也许你们可以帮我解决这个问题:)

0 投票
6 回答
8630 浏览

python - python中的原始套接字和sendto

我正在努力将 scapy 与 twisted 集成,但我在 OSX 上遇到了这个我似乎无法弄清楚的非常奇怪的错误。

基本上我无法通过原始套接字发送有效的 TCP 数据包(包括 IP 标头)。这就是我正在做的事情:

当我运行它时,我收到以下错误:

outs.sendto(spkt1, ('127.0.0.1', 0)) socket.error: [Errno 22] Invalid argument

如果您没有 scapy 不想使用它,这是 base64 编码的数据包:

非常奇怪的是,一个几乎相同的数据包似乎被正确发送:

这是两个数据包的样子:

通过在wireshark中检查它们,它们仅在TCP部分有所不同。

我做了很多不同的实验,最后我能够通过设置某些特定的 TCP 选项来发送数据包,但是这样的数据包不应该工作是没有意义的。

有人知道为什么会发生这种情况吗?

编辑:

此数据包似乎确实有效:

如果您不添加零,则它不起作用。

0 投票
2 回答
2054 浏览

android - SL4A 在我的 android 的终端 ide 中不起作用

我有 HTC One X,Android 4。我已经在我的智能手机上安装了 sl4a、python、scapy 和终端 IDE。一切都好,终端 IDE 中的 python 在 scapy 作为 root 下运行良好。

问题发生在我使用 SL4A 时。

当我运行脚本时没有错误,但是在解释 makeToast() 时程序停止并且没有任何反应。

任何人都可以帮助我在终端中使用 SL4A 以 root 身份运行 python 脚本吗?

0 投票
1 回答
8252 浏览

python - 没有找到scapy

我已经用 macport 安装了 scapy 2.2.0。我按照这些说明(来自 scapy.all import *)将它导入到我的 python 代码中,并且在运行我的 python 代码时,我有

但是当我在命令行中运行 scapy 时,它会正常启动。

有什么线索吗?