前年十月安卓的功能做的差不多了,领导安排做 openwrt 上的 WiFi 探针功能,真是什么都不懂,先学 Linux,再看C语言,接着弄虚拟机编译 openwrt 固件,刷机,了解 WiFi 探针信息,了解 802.11 协议,最后发现我们那块 MTK7268 + MTK7612e 的板子根本不能做 WiFi 探针,根本没有进入混杂模式的功能,但是整个过程还是挺有意义的吧,真的各种方法都试过了,找博客,查论文,挺有意义的,现在想想还是写篇博客记录一下吧。

什么是WiFi探针

WiFi探针是一种数据采集功能,拥有无线功能的设备,在探寻周围存在的路由器时,会将自己的一些信息发送出去,这就包括了设备唯一物理地址(mac地址),WiFi探针的存在的目的就是收集这些散布在空间的信息。

这里就存在一个问题,如果有非法分子广泛的使用WiFi探针,它是可以得到大量的唯一的物理地址,加上最近特别火的WiFi某某钥匙之流,窃取用户隐私信息,将手机的物理地址和用户身份信息对应起来,一旦这种对应的数据达到一定数量级,可以做很多违法行为。

例如有的不法分子将WiFi探针放在一些公共场所,只要你路过相应范围,手机的 mac 地址被捕获,不法分子就能知道你的位置,利用多次的数据可以进行时空分析,利用同一时间出现的一系列 mac 地址可以进行伴随分析,公众的隐私完完全全暴露在不法分子眼中,而且这样的案例很多就在我们身边大量使用,防不胜防!

技术本是无罪的,比如我们这个项目WiFi探针的功能就是来探测违法分子的,这大概也是这功能真正能用在有益于大众的地方。

WiFi探针的工作原理

  • 简单叙述

在移动终端接入 WiFi 网络的时候,需要发送Probe request (say hello)探针数据包,而这些数据包中包含了该终端之前接入过的 SSID 名称以及终端的 MAC 地址信息,这种探测模式一般称为主动发现模式。WiFi 通信过程经常会使用 WPA 和 WPA2 的加密方式,以保证终端和 AP 之间的数据包传输的机密性,防止被第三方窃听。然而在终端接入 AP 之前,终端需要去发现 AP 的存在,两者需要发送一些数据包来标识自身的存在,而前期的交互信息是明文,而且包含了终端的 MAC 地址信息和之前接入过的SSID 信息。

MAC 地址信息可以唯一的标识一台终端设备,不同的厂商拥有自己的 MAC 地址段,可以通过 MAC 地址直接查询该 MAC 地址对应的终端设备厂商信息。因此,在手机识别的过程中,MAC 地址可以作为其唯一性的标识,不同的两个手机 MAC地址是不同的。

  • 原理探讨

要深入了解WiFi探针技术,首先先认识WiFi使用的网络协议,WiFi采用的是IEEE802.11协议集,此协议集包含许多子协议。其中按照时间顺序发展,主要有:

(1)802.11a,(2)802.11b, (3)802.11g(4)802.11n。

在网络通信中,数据被封装成了帧,帧就是指通信中的一个数据块。但是帧在数据链路层传输的时候是有固定格式的,不是随便的封装和打包就可以传输,大小有限制,最小46字节,最大1500字节所以我们必须按照这个规则来封装。

下面是 802.11的帧结构:

下面是字段描述

从上面的结构可以知道,前俩个字节为:帧控制字段。 控制字段的前2bit节为:协议类型,目前此值为:0。

  • 帧的类型

    • 控制帧:Control Frame,例如RTS帧、CTS帧、ACK帧)用于竞争期间的握手通信和正向确认、结束非竞争期等;
    • 管理帧:(Management Frame,例如Beacon帧、Probe Request帧)主要用于STA与AP之间协商、关系的控制,如关联、认证、同步等;
    • 数据帧:(Data Frame,承载数据的载体)用于在竞争期和非竞争期传输数据。

下面详细介绍一下各个帧的格式

帧的格式

  1. 管理帧

    BeaconFrame:信标帧,是相当重要的维护机制,主要来宣告某个AP网络的存在。定期发送的信标,可让移动WiFi设备得知该网络的存在,从而调整加入该网络所必要的参数。在基础网络里,AP必须负责发送Beacon帧,Beacon帧所及范围即为基本服务区域。 在基础型网络里,所有沟通都必须通过接入点,因此WiFi设备不能距离太远,否则无法接收到信标。下图是帧格式:

  2. 管理帧

    探测请求帧,WiFi设备将会利用Probe Request帧,扫描所在区域内目前有哪些802.11网络。下图是帧格式:

  3. 数据帧:

    Data数据帧,当接入点要送出一个帧给WiFi设备但是不必确认之前所传送的信息时,就会使用标准的数据帧。标准的数据帧并不会征询对方是否有数据待传,因此不允许接收端传送任何数据。无竞争周期所使用的纯数据(Data-Only)帧和无竞争周期所使用的数据帧完全相同。看了以上的网络知识,我们现在说说WiFi探针是怎么工作的,还是先看张图: 就像图中描述的一样,我们的WiFi探针其实就是一个AP,它定时的向自己的四周广播发送Beacon帧,用来通知附近的WiFi设备,AP是存在的,(好比它一直在向周围喊着,我在这里,大家快来连接我啊)。 我们的WiFi设备,手机,平板电脑等,也不停的发送着probe帧,去寻找附近可用的AP。在probe帧的介绍中就我们可以看到probe帧包含了设备的mac地址,当我们的AP接收到probe帧之后就获取了这个设备的MAC地址,而这个AP就是我们的WIFI探针。因此只要在WiFi探针覆盖区域内的设备打开着WiFi,探针就能收集到他的MAC地址。

采集数据类型

WiFi探针可采集数据包括设备MAC地址、设备的类型、WiFi信号强度、WiFi信号频道、信号帧类型,设备类型的 AP/Client 可以从数据帧中得出,PC 还是移动设备可以从 mac 地址中得出,WiFi信号频道中可以分辨出AP设备是 2.4G 还是 5. 8G。

存在问题

苹果手机向外发送无线数据的时候,使用的是假的 mac 地址,我们这不太好去解决。

结语

原理部分就讲到这里,这些东西不是没有用,而是非常有用,写的清楚一些是留着查看的。
下面是我在 openwrt 中实习 WiFi 得博客,希望对各位有帮助。

https://blog.csdn.net/lfq88/article/details/116571200

end

完美撒花

WiFi探针信息了解相关推荐

  1. Openwrt WIFI探针开发【一】

    2017.9.26 公开源码(Apache2.0协议) https://github.com/769484623/WiFiProbe --------------------------------- ...

  2. ESP8266 WiFi探针 MAC

    当一个设备给另外一个设备通过无线传输技术发送信息时,周围的其他同类设备都是能够收到这些信息的,WiFi探针技术就是基于这个原理.具体来说,只要一个WiFi设备在WiFi探针的侦听范围内,当这个WiFi ...

  3. Wi-Fi 探针 - 智能探针 - 探针盒子 -> 危害用户信息安全

    Wi-Fi 探针 - 智能探针 - 探针盒子 -> 危害用户信息安全 Wi-Fi 探针 - 智能探针 - 探针盒子自动收集消费者信息,危害用户信息安全.一定要注意关闭手机 Wi-Fi,不要轻易信 ...

  4. 中科爱讯WiFi探针在客流分析统计的应用

    基于WiFi探针的特性,可以在顾客无感知的情况下采集到手机的MAC地址,用于线下商业统计人流量.客流量. 在客流统计应用方面,WiFi探针可以作为一个独立的产品存在,同时也可以配合视频客流作为视频客流 ...

  5. WiFi探针的工作原理及采集的数据?

    WiFi探针在商业.公共安全领域的大放异彩,更多的人想了解什么是WiFi探针,WiFi探针是怎么工作的? WiFi探针的工作原理? 要深入了解WiFi探针技术,首先先认识WiFi使用的网络协议,WiF ...

  6. 中科爱讯WiFi探针在贵宾客户提醒领域的应用

    很多人很难理解为什么WiFi探针可以应用到贵宾客户提醒领域.在我们收到的诸多需求中,贵宾客户提醒功能是需求中提及较多的. 中科爱讯Wi-Fi探针通过精准的识别贵宾客户的MAC地址,帮助企业快速的知晓贵 ...

  7. 【转】wifi探针的工作原理详解

    wifi探针是什么 WiFi探针技术是指基于WiFi探测技术来识别AP(无线访问接入点)附近已开启WiFi的智能手机或者WiFi终端(笔记本,平板电脑等),无需用户接入WiFi,WiFi探针就能够识别 ...

  8. wifi探针Android系统下的实现思路

    原理 WiFi 探针技术是指基于WiFi探测技术来识别AP(无线访问接入点)附近已开启 WiFi 的智能手机或者WiFi终端(笔记本,平板电脑等),无需用户接入WiFi,WiFi探针就能够识别用户的信 ...

  9. WIFI探针初体验,我们的隐私是如何泄露的

    初入探针 仅供参考,禁止用于违法途径!! 今年315曝光的无线探针盒子,博主很感兴趣,于是托朋友关系买了一块(实际上就一esp+),到手之后却完全不知道如何下手,于是经过一番打听发现这玩意是有后台管理 ...

最新文章

  1. XLNet:公平PK,BERT你已经被超过!
  2. 数论基础之快速幂(详细教程)
  3. 计算机网络是由一组结点组成吗,分布式数据库系统是由一组数据组成的,这组数据分布在计算机网络的不同计算机上,网络中的每个结点_考题宝...
  4. Python-学生信息管理系统.exe
  5. 前两年在MSDN里找到的HTC示例,一直没用过,先在这里存个备份
  6. Python面试题之“猴子补丁”(monkey patching)指的是什么?这种做法好吗?
  7. LOJ10155数字转换
  8. POJ 3262 Protecting the Flowers 贪心(性价比)
  9. 60秒ICO募资2.35亿,AI+区块链概念,这个风口上的公司有点怪
  10. 诱导系统服务器,交通诱导及信息发布系统
  11. android recycleView嵌套recycleView下拉二级列表显示(带动画)
  12. 矛与盾:黑客攻防命令大曝光
  13. 【Spring Security】Spring Boot + Spring Security 实现自动登录功能
  14. 用C语言实现移位密码加密与解密
  15. Oracle 10g RAC 维护工具完全详解
  16. 各种图片编码格式详解
  17. 使用stream将List转换为用逗号拼接的字符串
  18. 优惠券和让利哪种营销方式更好?
  19. 2019年终总结——我度过了幸福的一年
  20. 揭示未来方向:2018中国TMT行业“领秀榜”盛典直击

热门文章

  1. 今天终于下决心删除了McAfee,受不了了!
  2. Word 2010双栏文档插入跨栏图片(或表格或公式)后的文字阅读顺序问题
  3. OpenCV——几何变换
  4. 联想笔记本win10/win11相机打开显示灰色相机 无法进行人脸识别 怎么办
  5. 数据存储和界面展现总结
  6. spring urlencode、urldecode
  7. 数据结构例程——插入排序之希尔排序
  8. 白话机器学习的数学学习笔记(-)
  9. 前缀和、二维前缀和与差分的小总结
  10. 【Tools】PLSQL Developer 13安装教程详解