实验环境
kali,由于个人是虚拟机,须要再外接一块网卡html
无线网卡的四种工做模式
- 被管理模式:当无线客户端直接与无线接入点链接时,就是用这个模式
- ad hoc模式:当网络有相互直连的设备组成时,使用这个模式
- 主模式:这个模式永续无线网卡使用特制的驱动程序和软件工做
- 监听模式:使得网卡专心监听空气中的数据包
下图是四种模式的图示,来自《wireshark 数据包分析实战 第二版》
WPA—PSK破解原理
咱们都知道破解 WPA-PSK 不是和 WEP 同样抓不少包就能破解的,这跟抓多少数据包一点关系也没有。破解的关键是要获取握手包,这个握手包叫4way-handshake四次握手包。
WPA 四次握手过程:
WPA-PSK 初始化工做:
使用SSID和passphares使用如下算法产生PSK。
在WPA-PSK中PMK=PSK,PSK=PMK=pdkdf2_SHA1(passphrase,SSID,SSID length,4096)
第一次握手:
AP广播SSID,AP_MAC(AA)→STATION
STATION 端使用接受到的SSID,AP_MAC(AA)和passphares使用一样算法产生PSK
第二次握手:
STATION 发送一个随机数SNonce,STATION_MAC(SA)→AP
AP端接受到SNonce,STATION_MAC(SA)后产生一个随机数Anonce,而后用PMK,AP_MAC(AA),STATION_MAC(SA),SNonce,ANonce 用如下算法产生PTK
PTK=SHA1_PRF(PMK, Len(PMK), "Pairwise key expansion",MIN(AA,SA) ||Max(AA,SA) || Min(ANonce,SNonce) || Max(ANonce,SNonce))
提取这个PTK 前16 个字节组成一个MIC KEY
第三次握手:
AP发送上面产生的ANonce→STATION
STATION 端用接收到ANonce 和之前产生PMK,SNonce,AP_MAC(AA), STATION_MAC(SA),用一样的算法产生PTK。提取这个PTK 前16 个字节组成一个MIC KEY,使用如下算法产生MIC值,用这个MIC KEY 和一个802.1x data 数据帧使用如下算法获得MIC值。
MIC = HMAC_MD5(MIC Key,16,802.1x data)
第四次握手:
STATION 发送802.1x data ,MIC→AP
STATION 端用上面那个准备好的802.1x 数据帧在最后填充上MIC值和两个字节的0(十六进制)让后发送这个数据帧到AP。
AP端收到这个数据帧后提取这个MIC。并把这个数据帧的MIC部分都填上0(十六进制)这时用这个802.1x data 数据帧,和用上面AP产生的MIC KEY 使用一样的算法得出MIC’。若是MIC’等于STATION 发送过来的MIC。那么第四次握手成功。若不等说明则AP 和STATION 的密钥不相同,或STATION 发过来的数据帧受到过中间人攻击,原数据被篡改过。握手失败了。
综上所述:
WPA-PSK安全体系是十分强大和完善的。但他始终是用一个密码保护的,对于这种用密码保护的安全体系,通常状况下咱们均可以用一种叫字典攻击的常规攻击手段。针对WPA-PSK的破解,目前也就只有字典攻击这一种方式了。原理是经过截取WPA-PSK的四次握手包中包含的和密码有联系的信息,再依靠这个信息进行字典暴破。
总之,想要破解WPA-PSK这种强大的加密算法,必须符合如下条件:
需要有合法客户端,而且存在合法的通讯流量,经过抓取数据包进行破解的概率为0,惟一的破解方法是抓取WPA-PSK的四次握手包而后进行字典破解。抓到四次握手包以后,最后破解的关键是字典的好坏程度,有必定的运气成分了。若是碰到强口令时千万不要钻牛角尖,趁早放弃,由于WPA-PSK的破解目前惟一有实际价值的只有弱密码字典攻击。
linux
抓取无线数据的方法
也能够参考
https://www.cnblogs.com/linkr/p/4502161.html
http://www.javashuo.com/article/p-zhdzevxd-km.html
其实在Linux下按照第一个链接中的linux的方法简单可行,但我想抓取特定的包,便于我本身分析查看,因此还用到了Aircrack-ng这个工具,工具的使用能够参照https://www.jianshu.com/p/fd16236057df下面是个人步骤
算法
步骤
查看个人网卡
airmon-ng start wlan0使用工具将个人网卡激活至监听模式
airodump-ng wlan0mon,探测周围的wifi,其中IRM为咱们宿舍的wifi,它的mac为50:FA:84:3E:05:AC,信道为13
用wireshark开始抓包,根据上步获得的bssid进行过滤
802.11包有3种类型,分别为管理、控制、数据
Beacon是一种管理数据包,选择一个进行分析
能够看到:
路由器的物理地址和厂商
timestamp为该包发送的时间戳
ssid parameter set wap广播的ssid,这里为IRM确实是咱们宿舍的
supported rates wap支持的数据传输率
ds parameter wap广播使用的信道,这里为13与开始工具探测的一致
并能看到wpa,rsn的版本,采用加密方式等属性信息
接着我让个人手机链接wifi
开始个人手机发送了请求包,接着wifi进行了回应
接着进行了认证与关联
接下来是四次握手过程
以后就能够进行数据传输
安全