基于802.11协议的wifi探针的研究与学习

来源:互联网 发布:咸鱼质量问题淘宝介入 编辑:程序博客网 时间:2024/06/07 05:18

基于wifi探针的研究与学习

1.关于802.11协议帧的解析

Management frame(管理帧:Type=00)

  • 0000 Association request(关联请求)
  • 0001 Association response(关联响应)
  • 0010 Reassociation request(重新关联请求)
  • 0011 Reassociation response(重新关联响应)
  • 0100 Probe request(探测请求)
  • 0101 Probe response(探测响应)
  • 1000 Beacon(信标)
  • 1001 ATIM(通知传输指示消息)
  • 1010 Disassociation(取消关联)
  • 1011 Authentication(身份验证)
  • 1100 Deauthentication(解除身份验证)
  • 1101~1111 Reserved(保留,未使用)

Control frame(控制帧:Type=01)

  • 1010 Power Save(PS)- Poll(省电-轮询)
  • 1011 RTS(请求发送)
  • 1100 CTS(清除发送)
  • 1101 ACK(确认)
  • 1110 CF-End(无竞争周期结束)
  • 1111 CF-End(无竞争周期结束)+CF-ACK(无竞争周期确认)

Data frame(数据帧:Type=10)

  • 0000 Data(数据)
  • 0001 Data+CF-ACK
  • 0010 Data+CF-Poll
  • 0011 Data+CF-ACK+CF-Poll
  • 0100 Null data(无数据:未传送数据)
  • 0101 CF-ACK(未传送数据)
  • 0110 CF-Poll(未传送数据)
  • 0111 Data+CF-ACK+CF-Poll
  • 1000 Qos Data c
  • 1000~1111 Reserved(保留,未使用)
  • 1001 Qos Data + CF-ACK c
  • 1010 Qos Data + CF-Poll c
  • 1011 Qos Data + CF-ACK+ CF-Poll c
  • 1100 QoS Null(未传送数据)c
  • 1101 QoS CF-ACK(未传送数据)c
  • 1110 QoS CF-Poll(未传送数据)c
  • 1111 QoS CF-ACK+ CF-Poll(未传送数据)c

2.关于网卡的监听模式

网卡的监听模式,很多网卡设备并不支持。因此我们需要一张支持监听模式的网卡设备。

Linux下使用iw list命令查看自己网卡是否支持监听模式,如果不支持自行准备一张支持monitor模式的网卡

如果支持,使用ifconfig查看当前设备数,找到支持monitor模式的网卡使用命令:

   1.关闭网卡 ifconfig wlan1 down   2.设置监听模式 iwconfig wlan1 mode monitor   3.开启网卡 ifconfig wlan1 up

至此网卡监听模式开启

3.关于如何用Python实现监听并获取到所需信息

关于实现probe帧的监听,需要用到一下模块。

    1.scapy模块    2.Manuf模块 (通过Wireshark’s OUI database来进行mac地址匹配)    3.Pcapy模块    4.multiprocessing模块

其余模块可有可无。

关于安装模块就不细说了。有一点需要讲一下,关于manuf模块的安装。通过pip install manuf安装成功后,其实是无法调用成功的。

Import manuf.manuf后会报错(会说manuf没有这个文件或者文件夹),是模块自身的缺陷导致manuf的缺失,需要手动下载manuf模块并找到manuf OUI database文件手动添加到python site-packet/manuf文件下。

并在文件夹下的manuf.py的86行修改为io.open(path.join(path.dirname(file),manuf_name),’r’,encode(‘utf-8’))即可成功调用manuf.macparser()

这里写图片描述

安装完成后即可开始监听。

根据前边对帧的了解,我们知道probe request帧是手机,电脑,平板等设备发出的请求帧,这个帧属于管理帧的分组。

通过分析请求帧我们可知道,请求帧的subtype == 0x04,其中包括mac地址信息。设备搜索热点时发送的探求信号,在一些新设备中,为了隐藏自己的真实mac地址,采用的是发送伪mac地址的探求信号,所以在探求帧中是无法获取真实的mac地址。一些老设备中没有此类功能,所以可以采集到真实的mac地址。

响应帧subtype==0x05,同样包含mac地址信息。同样如此,基站向伪mac地址回应设备,所以统一无法获得真实的mac地址信息。

Probe Request(探测请求)帧

这里写图片描述

在设备接入基站的过程中,需要进行关联请求也可称为认证,在此过程中,设备所发射的帧中所包含的mac头地址中真实的mac地址,因此我们可以在此过程中获取真实的mac信息。
通过分析请求帧我们可知道,请求帧的subtype == 0x00,其中包括mac地址信息。同样还存在一个关联响应帧,subtype==0x01.

Association Request(关联请求)帧

这里写图片描述

到此为止我们可以获取到的信息有限mac为主
缺失RSSI

RSSI基本概念

RSSI:Received Signal Strength Indication接收的信号强度指示,无线发送层的可选部分,用来判定链接质量,以及是否增大广播发送强度。RSSI经研究不属于802.11g协议帧的内容。但是802.11给出了RSSI的描述。

RSSI是进过物理层是加入帧中的。

802.11将PHY进一步划分为两个组成元件:

1.物理层收敛程序(Physical Layer ConvergenceProcedure,简称PLCP)负责将MAC帧对映到传输介质;
2.实际搭配介质Physical Medium Dependent,简称PMD),负责传送这些帧。

这里写图片描述

MSDU(MAC层业务数据单元。这是最原始的待发数据信息)经过封装变成MPDU(MAC层协议数据单元),MPDU传到PLCP子层变成PSDU(PLCP子层业务数据单元),PSUD经过封装变成PPDU(PLCP子层协议数据单元)。

可看出RadioTap帧中的成员信息

这里写图片描述


附录

参考资料

究竟什么是RSSI

贴上部分源码

from scapy.all import *import manuf.manuf as manufdef PacketHandler(pkt):    addr,addrT,addrD,target=None,None,None,None    if pkt.haslayer(Dot11AssoReq): #Dot11AssoReq为关联请求帧        addrT=pkt.getlayer(Dot11).addr1        addrD=pkt.getlayer(Dot11).addr2        target=pkt.getlayer(Dot11AssoReq).info or b'Unkonwn'        addr=[addrT,addrD]        manuf = parser.get_all(addr[1]) or 'Unkonwn' # 获取mac地址的信息        pass    elif pkt.haslayer(Dot11ProbeReq): #Dot11probeReq为探求帧        addrT=pkt.getlayer(Dot11).addr1        addrD=pkt.getlayer(Dot11).addr2        target=pkt.getlayer(Dot11ProbeReq).info or b'Unkonwn'        addr = [addrT, addrD]    if addr:        if addr not in ap_list:            ap_list.append(addr)            manuf = parser.get_all(addr[1]) or 'Unkonwn' # 获取mac地址的信息        passparser=manuf.MacParser()sniff(iface="wlan0", prn=PacketHandler)
阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 给妈妈洗脚 父母洗脚 月子洗脚 月子里洗脚 洗脚作文 怎么洗脚 洗脚的图片 洗脚好处 洗脚英语 洗脚的 洗脚店 洗脚多少钱 附近洗脚店 洗脚足疗盆 伺候洗脚 老人洗脚盆 团购洗脚 给母亲洗脚 艾叶洗脚 帮妈妈洗脚 足疗洗脚盆 醋洗脚 艾草洗脚 洗脚方法 女王洗脚 美妙洗脚盆 洗脚婢 茶叶洗脚 洗脚的价格 普通洗脚盆 硫磺皂洗脚 冷水洗脚 鼎泰洗脚盆 洗脚皂 足浴洗脚盆 按摩洗脚 给女人洗脚 生姜洗脚 用冷水洗脚 为父母洗脚 喝洗脚水