【发布时间】:2020-05-12 03:47:13
【问题描述】:
首先,我在这里阅读了与 scapy 相关的其他原始答案,但是没有一个有用,也许我只是做错了什么,这就是今天把我带到这里的原因。
所以,对于初学者来说,我有一个 pcap 文件,它开始因一些重新传输而损坏,我相信我已经把它恢复到正确的位置。
它包含 Radiotap 标头、IEEE 802.11 (dot11)、逻辑链路控制、IPv4、UDP 和 DNS。
据我了解,正在传输的 udp 数据包包含这些原始数据,但是,由于最近的一些怪癖,可能原始数据位于 Radiotap/raw 中。
使用scapy,我在遍历包,当找到带有Raw层的包时,我使用scapy的.show()函数查看。
因此,我可以看到有可用的原始负载
###[ Raw ]###
\load \
|###[ Raw ]###
| load = '@\x00\x00\x00\xff\xff\xff\xff\xff\xff\x10h?'
所以,我想我的问题是,我怎样才能捕获此有效负载以接收任何可能的内容,据我所知,负载应该是一个图像文件,但是我很难相信这样,所以我假设我走错了某处。
这是我用来实现上述结果的代码
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()
任何帮助或进一步阅读的见解将不胜感激,我是 scapy 的新手,也不是数据包解剖方面的专家。
*旁注,之前我曾尝试(使用单独的代码和服务器)重放数据包并将它们发送给自己,但无济于事。但是我觉得那是由于我缺乏接收 UDP 数据包的知识。
更新 - 我现在已经用一个 scapy 重组器测试了我的 pcap 文件,并且我已经确认我没有碎片数据包或任何类似的东西,所以我认为一切都应该顺利进行。 . 在wireshark中打开我的pcap后,我可以看到有重传,但我不确定这会对我的目标有多大影响,因为没有发生碎片?
另外,我试过getlayer(Raw).load,如果我在上面使用打印,我会在屏幕上看到一些乱码,我假设它的数据是我想要的图像,但是我现在需要把它放进去一种可用的格式。
【问题讨论】: