找到原始负载,如何访问?

Col*_*ino 7 python scapy payload

首先,我已经阅读了有关 scapy 的其他原始答案,但是没有一个有用,也许我只是做错了什么,这就是今天让我来到这里的原因。

所以,对于初学者来说,我有一个 pcap 文件,它开始因一些重传而损坏,我相信我已经把它正确地恢复了。

它包含 Radiotap 标头、IEEE 802.11 (dot11)、逻辑链路控制、IPv4、UDP 和 DNS。

据我了解,正在传输的 udp 数据包保存了这些原始数据,但是,对于最近的一些怪癖,可能原始数据在 Radiotap/raw 中。

使用scapy,我在遍历数据包,当找到一个带有Raw层的数据包时,我使用.show()scapy的功能来查看它。

因此,我可以看到有可用的原始负载

###[ Raw ]###
 \load      \
  |###[ Raw ]###
  |  load      = '@\x00\x00\x00\xff\xff\xff\xff\xff\xff\x10h?'
Run Code Online (Sandbox Code Playgroud)

所以,我想我的问题是,我怎样才能捕获这个有效载荷来接收它可能是什么,据我所知,负载应该是一个图像文件,但是我很难相信这一点,所以我假设我在某个地方出错了。

这是我用来实现上述结果的代码

from scapy.all import *
from scapy.utils import *


pack = rdpcap('/home/username/Downloads/new.pcap')
for packet in pack:
    if packet.getlayer(Raw):
        print '[+] Found Raw' + '\n'
        l = packet.getlayer(Raw)
        rawr = Raw(l)
        rawr.show()
Run Code Online (Sandbox Code Playgroud)

任何帮助或进一步阅读的见解将不胜感激,我是 scapy 的新手,并且不是数据包解剖方面的专家。

*旁注,以前我曾尝试(使用单独的代码和服务器)重放数据包并将它们发送给自己,但无济于事。但是我觉得那是因为我缺乏接收 UDP 数据包的知识。

更新- 我现在已经用一个 scapy 重组器测试了我的 pcap 文件,我已经确认我没有碎片包或任何类似的东西,所以我认为一切都应该顺利......在wireshark中打开我的 pcap 后,我可以看到有重传,但我不确定这会对我的目标产生多大影响,因为没有发生碎片?

另外,我已经尝试过getlayer(Raw).load,如果我在上面使用打印,我会在屏幕上出现一些乱码,我假设它的数据是我想要的图像,但是我现在需要将其转换为可用的格式。

Yoh*_*dia 6

你可以做:

data = packet[Raw].load
Run Code Online (Sandbox Code Playgroud)


reb*_*rid 0

您应该能够通过以下方式访问该字段:

l = packet.getlayer(Raw).load
Run Code Online (Sandbox Code Playgroud)