Scapy的 - 从无线网络的数据包获取RSSI(Scapy - retrieving RSSI f

2019-06-24 23:53发布

我试图让RSSI或无线网络的数据包的信号强度。 我也想从RSSI“的WiFi探测请求”(当有人寻找一个WiFi热点)。

我设法把它从天命日志,但也仅仅以确保它是可能的 - 我不想使用天命所有的时间。

对于“全时扫描”我使用Scapy的。 有谁知道我在哪里可以找到从包中RSSI或信号强度(DBM)嗅探与Scapy的? 我不知道整个包是如何构建的 - 有很多,我不知道如何分析/解释“十六进制”的值。

我嗅探两个接口 - 为wlan0(检测,当有人连接到我的热点),并mon.wlan0(当有人搜索热点检测)。 硬件(无线网卡),我用的是基于棱镜芯片组(ISL3886)。 然而,随着天命测试跑的Atheros(AR2413)和英特尔iwl4965。

EDIT1:

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

任何人都知道如何进入这个信息? packet.show()和packet.show2()不会从这个类/图层显示任何东西

EDIT2:

更多挖后看来该接口仅仅设置不正确,这就是为什么它不能收集所有必要的标头。 如果我运行天命,然后用Scapy的从该接口的数据包嗅探中存在数据包的详细信息:

###[ RadioTap dummy ]###
  version= 0
  pad= 0
  len= 26
  present= TSFT+Flags+Rate+Channel+dBm_AntSignal+Antenna+b14
  notdecoded= '8`/\x08\x00\x00\x00\x00\x10\x02\x94\t\xa0\x00\xdb\x01\x00\x00'
  ...

现在我只需要正确设置界面,而无需使用天命。

Answer 1:

这是提高一个有价值的Scapy的扩展scapy.layers.dot11.Packet目前没有解码领域的解析。

https://github.com/ivanlei/airodump-iv/blob/master/airoiv/scapy_ex.py

只需使用:

import scapy_ex

和:

packet.show()

它会是这样的:

###[ 802.11 RadioTap ]###
  version   = 0
  pad       = 0
  RadioTap_len= 18
  present   = Flags+Rate+Channel+dBm_AntSignal+Antenna+b14
  Flags     = 0
  Rate      = 2
  Channel   = 1
  Channel_flags= 160
  dBm_AntSignal= -87
  Antenna   = 1
  RX_Flags  = 0


Answer 2:

总结:

  • 信号强度是不可见的,因为什么是错在“监控模式”设置的方式(不是所有的头被传递/用嗅探器解析)。 该显示器接口是由hostapd创建。

  • tcpdump的,Scapy的表演theese额外的头 - 我现在在接口airmon-NG设置监控模式。

编辑:使用Scapy的2.4.1+(或GitHub的开发版本)。 最新版本现在可以正确解码«notdecoded»部分



Answer 3:

出于某种原因,数据包结构发生了变化。 现在dBm_AntSignal是notdecoded第一要素。

我不知道这个解决方案的100%,但我用sig_str = -(256 - ord(packet.notdecoded[-2:-1]))达到第一个元素,我得到这似乎是值dBm_AntSignal

我使用OpenWRTTP-Link MR3020与extroot和爱德华Keeble无源无线上网的监测项目有一些修改。

我用scapy_ex.py,我有这样的信息:

802.11 RadioTap

  version   = 0

  pad       = 0

  RadioTap_len= 36

  present   = dBm_AntSignal+Lock_Quality+b22+b24+b25+b26+b27+b29

  dBm_AntSignal= 32

  Lock_Quality= 8


Answer 4:

如果有人仍然有同样的问题,我想我已经找到了解决办法:

我相信这是RSSI值右切:

sig_str = -(256-ord(packet.notdecoded[-3:-2]))

而这一次是针对噪音水平:

noise_str = -(256-ord(packet.notdecoded[-2:-1]))


Answer 5:

它说:“RadioTap”的事实表明,该设备可提供Radiotap头 ,没有棱镜头,即使它有一个棱镜的芯片组。 在P54司机似乎是一个“SoftMAC驱动程序”,在这种情况下,它可能会提供Radiotap头; 您使用的是P54驱动程序或旧prism54驱动程序?



Answer 6:

我已经类似的问题,我设置的监视模式与airmon-NG,我可以看到在tcpdump的dBm的水平,但每当我尝试sig_str = -(256-ord(packet.notdecoded[-4:-3]))我获得-256,因为返回的值从notdecoded 0中的报文结构如下所示。

 version   = 0
 pad       = 0
 len       = 36
 present   = TSFT+Flags+Rate+Channel+dBm_AntSignal+b14+b29+Ext
 notdecoded= ' \x08\x00\x00\x00\x00\x00\x00\x1f\x02\xed\x07\x05 
 .......


文章来源: Scapy - retrieving RSSI from WiFi packets
标签: wifi scapy rssi