基于 Wi-Fi 探针的移动终端定位系统

  • A+
所属分类:安全博客

前言

Wi-Fi探针技术是指基于Wi-Fi探测技术来识别AP、附近已开启Wi-Fi的终端,无需用户接入Wi-Fi,Wi-Fi探针就能够识别用户的信息。

当我们走进探针信号覆盖区域内且我们的Wi-Fi设备打开,我们的设备就能被探针探测出来,并且可以获取设备的相关信息,例如硬件地址MAC。

若探针部署的较广的情况下,那么收集的信息能更多,从而提供更多的分析价值,可以做一些大数据的分析,甚至通过收集设备硬件地址MAC实现目标人物的定位和轨迹跟踪。

基于Wi-Fi探针定位系统由节点系统和中心服务器组成,节点系统负责前端用户设备数据收集,中心服务器负责后端数据的处理与分析,同时对前端各节点系统实现统一控制功能。

软硬件构成

一个节点系统的软硬件构成如下

硬件:
全志开发板(板载RJ45和Wi-Fi)
USB无线网卡(2.4G/5G)
USB有线网卡
大功率AP(2.4G/5G)
全向天线(2.4G/5G)*2
TF存储卡16g
3G/4G卡托(可选)
供电电源

软件:
数据嗅探端
采集工具:horst、tcpdump、wireshark、kismet

采集AP信息

被动扫描:USB无线网卡设置为 monitor 模式,不断循环调整频道,使用采集工具抓取AP广播的 Beacon Frame ,提取其中的 SSID、MAC、RSSI ,根据 RSSI 计算得到AP到采集端的大致距离。

主动扫描:USB无线网卡设置为 monitor 模式,不断循环调整频道,在不同频道里广播发送一个不包含SSID的 Probe Request ,使用采集工具抓取AP回应的 Probe Response Frame,等待回应时间一般在10ms左右,提取其中的 SSID、MAC、RSSI ,根据RSSI计算得到采集端到AP的大致距离。

采集Station信息

(包含曾经连接的AP信息)

USB无线网卡设置为 monitor 模式,不断循环调整频道,使用采集工具抓取 Station 广播的 Probe Request Frame ,提取其中的 SSID、MAC、RSSI ,根据RSSI计算得到采集端到 Station 的大致距离。

处理采集数据

SSID、MAC、距离数据分表存放至数据库,统计SSID出现次数,并记录采集时间。

综合采集数据,我们可以计算得到AP和Station上下线时间,移动轨迹等有用数据。

动态接入端

使用 hostapd 建立多个不同SSID的开放AP,SSID列表选用数据库统计次数最大的。每隔一段时间,对SSID列表进行更新检测,有可用更新则进行更新并重启 hostapd 服务。使用同样的方式,可以得到接入客户端的 SSID、MAC、RSSI ,根据RSSI计算得到接入端到接入客户端的大致距离。

使用 nginx 搭建本地服务器,开启本地转发服务,将接入客户端的HTTP流量转发至本地服务器。编写脚本或读取服务器日志,获得接入客户端的设备信息(如User-Agent)。

处理接入端数据

SSID、MAC、距离数据分表存放至数据库,并追加接入客户端的设备信息,对设备信息进行分类存放。

数据传输

默认使用板载RJ45、Wi-Fi联网通讯,可选外接3G/4G卡托接入移动数据网络。

RJ45:一般情况下,使用交换机连接一个地区所有节点系统的RJ45,再接入网络。
Wi-Fi:接入公共Wi-Fi网络,接入互联网。
3G/4G卡托:使用SIM卡,接入移动数据网络。

节点系统定时与中心服务器同步系统时间,各节点设置不同的时间点,每隔一段时间自动增量同步数据至服务器,错开同步时间。

安全性

使用防火墙对动态接入端进行隔离,禁止访问本地网络服务。

为了实现对节点的远程配置和管理,启用本地 SSH/SFTP 服务,并绑定至板载RJ45、Wi-Fi,或使用端口转发服务。 SSH/SFTP 服务禁止密码登录,禁止 root 用户登录,允许私钥登录,私钥加密保存于中心服务器。

所有数据暂存本地MySQL数据库,数据库配置高强度密码访问,密码加密保存于中心服务器。

节点系统与中心服务器使用对称加密通讯,若两者未确定一致的密钥或密钥过期,将会使用非对称加密进行密钥协商。非对称加密密钥默认存放在节点系统中,若密钥遭到泄露或存在潜在风险,中心服务器可以主动对密钥进行过期处理,对节点系统存放的密钥进行更换。

各节点均使用不同的高强度随机生成密钥,并且设立密钥定期过期更换机制。

非对称加密使用RSA-2048密码套件,对称加密使用AES或ECC密码套件。

中心服务器部署环境

密钥管理系统

统一加密存放管理各节点系统的 SSH/SFTP 服务密钥和通讯密钥,定期对节点系统密钥进行过期处理,协商出新的密钥,更新密钥系统原有密钥。

MySQL数据库

用于存放各节点系统的同步数据。单独加密存放各节点系统数据库的访问密码。

授时系统

用于各节点系统的授时工作。中心服务器的系统时间定期与国家授时中心的系统时间进行同步。

基于分布式缓存的内容收集网络

由于节点系统众多、遍布范围广,对于高并发、大流量的应用,单一链路有可能影响数据传输速度和稳定性,产生数据包丢失和链路高延迟的现象,可能导致信息同步的滞后,不利于节点系统与中心服务器的同步工作。

针对这种情况,提出分布式缓存内容收集网络。在网络边缘部署众多节点服务器,使节点内容能够更快地、更稳定地同步至节点服务器,中心服务器实现对节点服务器的管理,各节点服务器与中心服务器定时同步数据,各节点系统起到缓存作用。

分布式缓存内容收集网络可轻松应对数十万节点系统的访问请求,在远端网络访问中起到桥梁的作用。

Source: impakho.com | Author:impakho

相关推荐: PHP Hash 漏洞之 Magic Hash

今天的XUSTSEC的CTF比赛中web第七题,给的源码如下 意思就是,能够有一个字符串的MD5值等于0就可以得到FLAG。但是,众所周知,MD5值都是32位,所以很难为0。不过,我们可以发现,这里使用的比较是==而不是全等于===。关于这两种比较方式的区别,…

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: