【问题标题】:Raw load found, how to access?找到原始负载,如何访问?
【发布时间】: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,如果我在上面使用打印,我会在屏幕上看到一些乱码,我假设它的数据是我想要的图像,但是我现在需要把它放进去一种可用的格式。

【问题讨论】:

    标签: python scapy payload


    【解决方案1】:

    你可以这样做:

    data = packet[Raw].load
    

    【讨论】:

      【解决方案2】:

      您应该可以通过这种方式访问​​该字段:

      l = packet.getlayer(Raw).load
      

      【讨论】:

      • 我以前尝试过这个,因为我做过的大多数研究都说这就是答案。但是,虽然这不会引发任何错误,但它也什么都不做。也许我错过了存储这个加载的数据,或者写入文件?我现在尝试使用 getlayer 的存储变量,例如我有“print l.load”,它现在可以打印,但是它返回给我这个“@������h?”
      • 我总是能够以这种方式访问​​负载,但通常在我的情况下它只是一个字符串。事实上,原始负载只是一个字符串。你应该想办法把它变成你需要的东西
      【解决方案3】:

      使用 Scapy 的交互式 shell,我成功地做到了:

      pcap = rdpcap('sniffed_packets.pcap')
      s = pcap.sessions()
      
      for key, value in s.iteritems():
      
           # Looking for telnet sessions
           if ':23' in key:
               for v in value:
                   try:
                       v.getlayer(Raw).load
                   except AttributeError:
                       pass
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-12-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-02-23
        • 1970-01-01
        • 2017-07-20
        相关资源
        最近更新 更多