1. 测试的环境

接收端使用的环境是Linux操作系统,使用的服务是wpa_supplicant
无线网络的搭建,使用了多种无线网络,包括:

  • Cisco服务器搭建的专用测试网络(包括普通网络与企业级网络)
  • 办公场所的公开网络和内部网络(包括普通网络与企业级网络)
  • 多个普通个人使用路由器网络(包含隐藏网络)
  • 手机热点

2. 扫描到网络展示

因为扫描到的网络中存在bssidssid的信息,下面为了将这些信息脱敏,均使用了一对一名称的替换。
使用wpa_cli来扫描(wpa_cli scan)和展示相应(wpa_cli scan_results)的网络,展示如下:

bssid / frequency / signal level / flags / ssid
00:00:00:00:5c:5a   5180    -43 [ESS]   NETTESTAR34-5G
00:00:00:00:5c:5b   2422    -39 [WPA2-PSK-CCMP][ESS]    \x00\x00\x00\x00\x00\x00\x00\x00
00:00:01:00:85:50   2462    -59 [WPA-EAP-TKIP][WPA2-EAP-CCMP][ESS]  TEST-Net2
00:00:01:00:85:51   2462    -58 [WPA2-PSK-CCMP][ESS]    TEST-Net
00:00:02:00:8c:50   2462    -62 [WPA2-PSK-CCMP][ESS]    TEST-PSK
00:00:02:00:8c:54   2462    -63 [WPA2-EAP-CCMP][ESS]    TEST-TLS
00:00:02:00:8c:51   2462    -63 [WPA2-EAP-CCMP][ESS]    TEST-PEAP
00:00:02:00:68:b0   2412    -61 [WPA2-PSK-CCMP][ESS]    TEST-PSK
00:00:02:00:68:b3   2412    -59 [WPA2-EAP-CCMP][ESS]    TEST-TTLS
00:00:02:00:68:b4   2412    -60 [WPA2-EAP-CCMP][ESS]    TEST-TLS
00:00:02:00:68:b1   2412    -61 [WPA2-EAP-CCMP][ESS]    TEST-PEAP
00:00:02:00:68:b2   2412    -62 [WPA2-PSK-CCMP][ESS]    TEST-admin
00:00:02:00:68:b6   2412    -62 [WPA2-EAP-CCMP][ESS]    TEST-802.11r-peap
00:00:02:00:68:bb   5765    -59 [WPA2-EAP-CCMP][ESS]    TEST-TLS
00:00:02:00:68:bf   5765    -59 [WPA2-PSK-CCMP][ESS]    TEST-PSK
00:00:02:00:68:be   5765    -60 [WPA2-EAP-CCMP][ESS]    TEST-PEAP
00:00:02:00:68:bd   5765    -60 [WPA2-PSK-CCMP][ESS]    TEST-admin
00:00:02:00:68:bc   5765    -59 [WPA2-EAP-CCMP][ESS]    TEST-TTLS
00:00:03:00:a1:6f   5805    -75 [WPA-EAP-TKIP][WPA2-EAP-CCMP][ESS]  TEST-Net2
00:00:02:00:68:b9   5765    -60 [WPA2-EAP-CCMP][ESS]    TEST-802.11r-peap
00:00:03:00:a1:6e   5805    -75 [WPA2-PSK-CCMP][ESS]    TEST-Net
00:00:04:00:24:fe   5180    -74 [WPA2-PSK-CCMP][ESS]    TEST-Net
00:00:04:00:31:a0   2437    -69 [WPA-EAP-TKIP][WPA2-EAP-CCMP][ESS]  TEST-Net2
00:00:04:00:31:a1   2437    -67 [WPA2-PSK-CCMP][ESS]    TEST-Net
00:00:05:00:7b:c1   2437    -75 [WPA2-PSK-CCMP][ESS]    TEST-Net
00:00:05:00:7b:c0   2437    -77 [WPA-EAP-TKIP][WPA2-EAP-CCMP][ESS]  TEST-Net2
00:00:04:00:24:ff   5180    -74 [WPA-EAP-TKIP][WPA2-EAP-CCMP][ESS]  TEST-Net2
00:00:06:00:20:c1   2437    -87 [WPA2-PSK-CCMP][ESS]    TEST-Net
00:00:04:00:31:ae   5320    -54 [WPA2-PSK-CCMP][ESS]    TEST-Net
00:00:02:00:8c:5c   5320    -56 [WPA2-EAP-CCMP][ESS]    TEST-TTLS
00:00:02:00:8c:5d   5320    -56 [WPA2-PSK-CCMP][ESS]    TEST-admin
00:00:02:00:8c:5e   5320    -55 [WPA2-EAP-CCMP][ESS]    TEST-PEAP
00:00:02:00:8c:5f   5320    -55 [WPA2-PSK-CCMP][ESS]    TEST-PSK
00:00:02:00:8c:5b   5320    -54 [WPA2-EAP-CCMP][ESS]    TEST-TLS
00:00:04:00:31:af   5320    -56 [WPA-EAP-TKIP][WPA2-EAP-CCMP][ESS]  TEST-Net2
00:00:02:00:8c:59   5320    -55 [WPA2-EAP-CCMP][ESS]    TEST-802.11r-peap
00:00:02:00:8c:52   2462    -63 [WPA2-PSK-CCMP][ESS]    TEST-admin
00:00:02:00:8c:53   2462    -63 [WPA2-EAP-CCMP][ESS]    TEST-TTLS
00:00:02:00:8c:56   2462    -63 [WPA2-EAP-CCMP][ESS]    TEST-802.11r-peap
00:00:01:00:85:5e   5180    -40 [WPA2-PSK-CCMP][ESS]    TEST-Net
00:00:01:00:85:5f   5180    -40 [WPA-EAP-TKIP][WPA2-EAP-CCMP][ESS]  TEST-Net2
00:00:07:00:e2:94   2437    -54 [WPA-PSK-CCMP+TKIP][WPA2-PSK-CCMP+TKIP][WPS][ESS]
00:00:06:00:20:c0   2437    -86 [WPA-EAP-TKIP][WPA2-EAP-CCMP][ESS]  TEST-Net2
00:00:05:00:7d:81   2462    -85 [WPA2-PSK-CCMP][ESS]    TEST-Net
00:00:03:00:a1:60   2462    -85 [WPA-EAP-TKIP][WPA2-EAP-CCMP][ESS]  TEST-Net2

在上述列表中,可以观察到没有重复的bssidssid可以在不同的频率上对应多个bssid
每个bssid对应的是明确的ssid
对于隐藏网络,ssid要么是由多个\x00组成,要么不存在。

3. 已知的隐藏网络的bssid与ssid对应关系

3.1 取分析样本

在上述列表中,取出一个隐藏网络进行分析,取如下的网络:

00:00:07:00:e2:94    2437    -54 [WPA-PSK-CCMP+TKIP][WPA2-PSK-CCMP+TKIP][WPS][ESS]

3.2 设置隐藏网络

通过对wpa_supplicant中设置其对应的ssid(例如,叫TEST-A-PSK)以及相关的配置。
再次展示相应的网络,观察存在如下网络:

00:00:07:00:e2:94    2437    -55 [WPA-PSK-CCMP+TKIP][WPA2-PSK-CCMP+TKIP][WPS][ESS] TEST-A-PSK

可以看到与之前隐藏网络的bssid是相同的,这个是同一个网络。

3.3 隐藏网络中bssid的展示

这个时候,如果连接网络等,返回的连接事件中包含有bssid信息,需要通过bssid在上述扫描结果中找到对用的ssid
已知,此bssid00:00:07:00:e2:94,使用如下命令:

wpa_cli scan_results | grep 00:00:07:00:e2:94

展示的结果如下:

00:00:07:00:e2:94    2437    -54 [WPA-PSK-CCMP+TKIP][WPA2-PSK-CCMP+TKIP][WPS][ESS]
00:00:07:00:e2:94   2437    -55 [WPA-PSK-CCMP+TKIP][WPA2-PSK-CCMP+TKIP][WPS][ESS] TEST-A-PSK

这时候在结果列表中,将会存在同一个bssid对应存在两个网络,其中一个是没有ssid的,另一个展示真正的ssid。这个情况并没有多次尝试观察,只是表明存在这种状况。

找到真正对于的ssid的方法
分析每行的展示的结果,排除ssid为空的行,这样就能够获得真正对应的ssid

探测到无线网中bssid与ssid的多对一关系相关推荐

  1. Linux 编程中的API函数和系统调用的关系【转】

    转自:http://blog.chinaunix.net/uid-25968088-id-3426027.html 原文地址:Linux 编程中的API函数和系统调用的关系 作者:up哥小号 API: ...

  2. 【Groovy】自定义 Xml 生成器 BuilderSupport ( setParent 方法中设置父节点与子节点关系 )

    文章目录 一.setParent 方法中设置父节点与子节点关系 二.完整代码示例 1.MyBuilderSupport 生成器代码 2.使用 MyBuilderSupport 生成器创建 Xml 代码 ...

  3. 图像处理:图像中噪声分布和概率密度函数的关系

    学习笔记:数字图像处理--图像中噪声分布和概率密度函数的关系 学习的时候,看到各种噪声,高斯.锐利.伽马.均匀等.每个分布有概率密度函数,而这个和噪声有啥具体的连接的关系,我不是很懂,稍微研究了一下, ...

  4. mysql表中的多对多关系表_「一对多」关系型数据库中一对多,多对一,多对多关系(详细) - seo实验室...

    一对多 在关系型数据库中,通过外键将表跟表之间联系在了一起. 一个班级有很多学生,外键维护在学生的一方,也就是多的一方.(在做页面设计的时候,需要把两个表连接到一块查询信息) 建立一个student和 ...

  5. 数据库设计中,多对多关系使用使用逗号分割关联讨论

    进公司一个月,发现公司很多人喜欢用逗号分割,去存储其它表的主键,做多对多关联,但存在很多乱用现象.这里对这种方式做了下总结. 在传统数据库设计中,多对多关系存储通常都是用一张中间表来简历两张表的关系. ...

  6. Django框架(5.django中模型类建立关系和多表关系查询)

    1.建立好模型类: from django.db import models# 设计和模型对应的类,(模型类) # Create your models here.# 一类 # 图书类 class B ...

  7. hibernate中*.hbm.xml配置文件的各种映射关系配置方法(多对一,多对多)

    多对一: 多个用户对应一个部门,是多对一的关系,要在多方配,即在用户的hbm.xml文件中配 <many-to-one name="department" class=&qu ...

  8. java中的 31 和左移右移的关系简述

    java中的 31 和左移右移的关系简述 任何数乘以31 等于 这个数左移 五位 减去这个数 ​ n * 31 == (n << 5) - n " << " ...

  9. sql语句和java的关系_java中Statement 与 PreparedStatement接口之间的关系和区别

    Statement 和 PreparedStatement之间的关系和区别. 关系:PreparedStatement继承自Statement,都是接口 区别:PreparedStatement可以使 ...

最新文章

  1. C#代码像QQ的右下角消息框一样,无论现在用户的焦点在哪个窗口,消息框弹出后都不影响焦点的变化,那么有两种方法...
  2. 前端windows下常用的CMD 命令归纳
  3. 【youcans 的 OpenCV 例程200篇】152. 边缘检测之 LoG 算子
  4. 消息中间件--RabbitMQ ---TTL队列/消息
  5. 安装jdk时更改java安装路径_JDK下载安装步骤
  6. java组合与继承始示例_Java 8特性与示例
  7. 把一个字符串分割成数组 php_php explode 将字符串分割为数组
  8. mongoose 常用数据库操作 更新
  9. VC6保姆级图文教程
  10. crt软件(crt软件安装)
  11. matlab hist函数的使用
  12. Cocos Creator 计时器错误 cc.Scheduler: Illegal target which doesn't have uuid or instanceId.
  13. jvm:ObjectMonitor源码
  14. 青春,让人想念,却再也闻不到了
  15. 接口与继承系列教材 (十)- Java 内部类详解
  16. 分析的环绕声,它的功能如何
  17. 用python写出各种三角形
  18. opencv中puttext()函数的使用
  19. Android 俄罗斯方块
  20. win10电脑黑屏,只有鼠标能动,并且只能打开任务管理器

热门文章

  1. js调用百度地图API,实现地图标注位置
  2. Javashop B2C系统助力企业打造独立电商
  3. php aec 解密sha1,PHP加密解密实例分析 - sha1
  4. 如何把事情做到最好读书笔记5
  5. Windows系统安装jdk1.5
  6. 极其简单的最短路问题
  7. 路径规划之PRMRRT类算法分析
  8. 利用phpstudy导入mysql文件
  9. 9.2 sobel算子及其函数使用
  10. python hack js_飘逸的python - hack输出流便于调试