-->
当前位置:首页 > 实验 > 正文内容

无线WPA/WPA2实验

Luz3年前 (2020-12-11)实验2260

实验目的

  • 认识无线WPA/WPA2安全原理

  • 熟悉传统无线WPA破解方法

实验原理

1.无线网络
  无线网络(wireless network)是采用无线通信技术实现的网络。无线网络既包括允许用户建立远距离无线连接的全球语音和数据网络,也包括为近距离无线连接进行优化的红外线技术及射频技术,与有线网络的用途十分类似,最大的不同在于传输媒介的不同,利用无线电技术取代网线,可以和有线网络互为备份。
  无线网络协议:
  802.11 协议簇是国际电工电子工程学会(IEEE)为无线局域网络制定的标准。虽然 WI-FI 使用了 802.11 的媒体访问数据链路层(DLL)和物理层(PHY),但是两者并不完全一致。在以下标准中,使用最多的应该是 802.11n 标准,工作在 2.4GHz 或 5GHz 频段,可达 600Mbps(理论值)。
  IEEE802.11,1997年,原始标准(2Mbit/s,工作在 2.4GHz)。
  IEEE802.11a,1999年,物理层补充(54Mbit/s,工作在 5GHz)。
  IEEE802.11b,1999年,物理层补充(11Mbit/s工作在 2.4GHz)。
  IEEE802.11c,符合 802.1D 的媒体接入控制层桥接(MAC Layer Bridging)。
  IEEE802.11d,根据各国无线电规定做的调整。
  IEEE802.11e,对服务质量(Quality of Service,QoS)的支持。
  IEEE802.11f,基站的互连性(IAPP,Inter-Access Point Protocol),2006年2月被 IEEE 批准撤销。
  IEEE802.11g,2003年,物理层补充(54Mbit/s,工作在2.4GHz)。
  IEEE802.11h,2004年,无线覆盖半径的调整,室内(indoor)和室外(outdoor)信道(5GHz 频段)。
  IEEE802.11i,2004年,无线网络的安全方面的补充。
  IEEE802.11j,2004年,根据日本规定做的升级。
  IEEE802.11l,预留及准备不使用。
  IEEE802.11m,维护标准;互斥及极限。
  IEEE802.11n,2009年9月通过正式标准,WLAN 的传输速率由 802.11a 及 802.11g 提供的 54Mbps、108Mbps,提高到 350Mbps 甚至到 475Mbps。
  IEEE802.11p,2010年,这个通讯协定主要用在车用电子的无线通讯上。它设定上是从 IEEE802.11 来扩充延伸,来符合智慧型运输系统(Intelligent Transportation Systems,ITS)的相关应用。应用的层面包括高速率的车辆之间以及车辆与5.9千兆赫(5.85-5.925千兆赫)波段的标准 ITS 路边基础设施之间的资料数据交换。
  IEEE802.11k,2008年,该协议规范规定了无线局域网络频谱测量规范。该规范的制订体现了无线局域网络对频谱资源智能化使用的需求。
  IEEE802.11r,2008年,快速基础服务转移,主要是用来解决客户端在不同无线网络 AP 间切换时的延迟问题。
  IEEE802.11s,2007年9月,拓扑发现、路径选择与转发、信道定位、安全、流量管理和网络管理。网状网络带来一些新的术语。
  IEEE802.11w,2009年,针对 802.11 管理帧的保护。
  IEEE802.11x,包括 802.11a/b/g 等三个标准。
  IEEE802.11y,2008年,针对美国 3650–3700 MHz 的规定。
  IEEE802.11ac,802.11n 之后的版本。工作在 5G 频段,理论上可以提供高达每秒 1Gbit 的数据传输能力。
  WEP:IEEE802.11b 标准规定了一种称为有线等效保密(或称为 WEP)的可选加密方案,提供了确保无线 LAN 数据流的机制。WEP 利用一个对称的方案,在数据的加密和解密过程中使用相同的密钥和算法。
  WPA:有WPA和WPA2两个标准,是一种保护无线网络安全的系统,它是应研究者在前一代的系统有线等效加密(WEP)中找到的几个严重的弱点而产生的。WPA 实作了 IEEE802.11i 标准的大部分,是在 802.11i 完备之前替代 WEP 的过渡方案。WPA 的设计可以用在所有的无线网卡上,但未必能用在第一代的无线取用点上。WPA2 具备完整的标准体系,但其不能被应用在某些老旧型号的网卡上。
  设备类型:
  在无线局域网里,常见的设备有无线网卡、无线网桥、无线天线等。

2.WPA加密
  WPA 加密算法有两个版本,一个是WPA,一个是WPA2,后者为前者的增强版本。其算法结构如下所示:
  WPA = 802.1x + EAP + TKIP + MIC = Pre-shared Key + TKIP + MIC
  WPA2(802.11i) = 802.1x + EAP + AES + CCMP = Pre-shared Key + AES + CCMP
  这里 802.1x + EAP,Pre-shared Key 是身份校验算法(WEP 没有设置有身份验证机制);TKIP 和 AES 是数据传输加密算法(类似于 WEP 加密的 RC4 算法);MIC 和 CCMP 是数据完整性编码校验算法(类似于 WEP 中 CRC32 算法);EAP 称为扩展认证协议,是一种架构,而不是算法。常见的有 LEAP,MD5,TTLS,TLS,PEAP,SRP,SIM,AKA。其中的 TLS 和 TTLS 是双向认证模式,这个认证方式是不怕网络劫持和字典攻击的。而 md5 是单向认证的,无法抵抗网络劫持和中间人攻击。这里我们只讨论家用级 WPA-PSK 的破解。
  WPA 目前没有加密体制的缺陷可被利用,破解 WPA 密码使用的是常规的字典攻击法。所以在破解方式上 WEP 和 WPA 有很大差异。
  WPA认证方式:
  802.1x + EAP (工业级的,安全要求高的地方用。需要认证服务器)
  Pre-shared Key (家庭用的,用在安全要求低的地方。不需要服务器)

3.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的破解目前唯一有实际价值的只有弱密码字典攻击。

实验环境

1.操作系统
  操作机:Linux_Kali(在本地windows7或更高版本环境下实验,使用VMware虚拟机安装Kali系统)

2.实验工具
  (1)带有芯片的无线网卡

  内置无线WIFI芯片的网卡,并通过USB接口传输的网卡,连接电脑USB接口,安装完成驱动以后,电脑网卡列表中会出现新的无线网卡设备。

  (2)VMware 虚拟机
  VMWare虚拟机软件是一个"虚拟PC"软件,它使你可以在一台机器上同时运行二个或更多Windows、DOS、LINUX系统。与"多启动"系统相比,VMWare采用了完全不同的概念。多启动系统在一个时刻只能运行一个系统,在系统切换时需要重新启动机器。
  主要功能:
  1)不需要分区或重开机就能在同一台PC上使用两种以上的操作系统。
  2)完全隔离并且保护不同OS的操作环境以及所有安装在OS上面的应用软件和资料。
  3)不同的OS之间还能互动操作,包括网络、周边、文件分享以及复制贴上功能。
  4)有复原(Undo)功能。
  5)能够设定并且随时修改操作系统的操作环境,如:内存、磁碟空间、周边设备等等。

  (3)Fern WiFi Cracker
  Fern Wifi Cracker 是一种无线安全审计和攻击软件编写的程序,使用 Python 编程语言和 Python 的 Qt 图形界面库,该程序是能够破解和恢复 WEP、WPA、WPS 键和无线或以太网上运行其他基于网络的攻击基于网络的。
  Fern Wifi Cracker 支持以下功能:WEP 破解 Fragmentation,Chop-Chop,Caffe-Latte,Hirte,ARP 请求重播或 WPS 攻击;WPA/WPA2 裂化用字典或 WPS 攻击;自动保存在数据库中的成功破解的关键;自动访问点攻击系统;会话劫持(被动和以太网模式);接入点 MAC 地址地理位置追踪;内部 MITM 引擎;猜解攻击(HTTP,HTTPS,FTP,TELNET)等。

  (4)WiFite
  WiFite 是一款自动化 WEP、WPA 以及 WPS 破解工具,不支持 Windows 和 OSX。WiFite 的特点是可以同时攻击多个采用 WEP 和 WPA 加密的网络。WiFite 只需简单的配置即可自动化运行,期间无需人工干预。目前支持任何 Linux 发行版、Backtrack 5 R1、BlackBuntu、BackBox、Kali(默认自带)、CDLinux 等。

实验步骤

步骤1:配置实验用无线网络

  1.1因为无线路由器型号不同,所以配置界面会不相同,此处介绍一些必须的配置信息。
  无线网络的 IP 类型要选择固定 IP 地址,即静态 IP 地址。
  如下图所示:

 

图 1

  1.2路由器的 MAC 地址要选择 MAC 地址克隆的相关选项。
  如下图所示:

 

图 2

  1.3此处为设置无线网络的名称(SSID)、密码、线道和模式,要开启无线广播(SSID 广播)。
  如下图所示:

 

图 3

  1.4开启 DHCP 服务,并设置地址池。
  如下图所示:

 

图 4

  1.5在此路由器上连接几个设备。
  如下图所示:

 

图 5

步骤2:配置无线网卡

  2.1将无线网卡连接到 PC 机,开启的 Linux_Kali 虚拟机,并在 VMware 中依次选择"虚拟机"->"可移动设备",可查看到连接的无线网卡设备,点选此设备,并选择"连接"选项。
如下图所示:

 

图 6

  2.2在 Linux_Kali 虚拟机中,点击左侧任务栏中的"终端"按钮,开启终端窗口(也可以右键点击桌面空白处,在右键菜单中选择"打开终端"选项,开启终端窗口)。在终端窗口中,输入指令查看无线网卡的配置信息。
  输入指令:

  • ifconfig

  如下图所示:

 

图 7

  2.3输入如下指令,激活无线网卡并开启无线网卡监听模式。
  输入指令:

  • 激活无线网卡:ifconfig wlan0 up

  • 开启无线网卡监听模式:airmon-ng start wlan0

  如下图所示:

 

图 8

步骤3:使用 Fern WiFi Cracker 工具破解 WiFi 密码

  3.1在 Linux_Kali 虚拟机中,点击左上角的"应用程序"按钮,选择"无线攻击"选项下的"fern wifi cracker",弹出 Fern WiFi Cracker 工具窗口。
  如下图所示:

 

图 9

  3.2在工具窗口最上方的下拉选单中选择无线网卡,并双击工具界面空白处,在弹出的选框中可以选择扫描的无线网络的信道,因为我们已知实验用 WiFi 的线道为:11,所以此处可直接选择"11",并点击"OK"确认。
  如下图所示:

 

图 10

  3.3设置完毕后,点击"Scan for Access points"按钮,开启 WiFi 扫描。
  如下图所示:

 

图 11

  3.4经过扫描后,可在下方看见扫描到的 WiFi 类型及数量,此处指扫描到了 WPA 加密 WiFi,点击此"WPA"按钮,查看详情。
  如下图所示:

 

图 12

  3.5在弹出的窗口中,可见所有扫描到的 WPA 加密的 WiFi。
  如下图所示:

 

图 13

  3.6选择我们开启的实验用 WiFi,这里选择的是"hongya",在右下角选择需要使用的密码字典,并填入一个连接此 WiFi的设备的 MAC 地址。设置完毕后,点击右上角的"WiFi Attack"按钮,开始破解。
  如下图所示:

 

图 14

  3.7破解完毕后,窗口下方显示出了此 WiFi 的密码信息。
  如下图所示:

 

图 15

步骤4:使用 WiFite 工具破解 WiFi 密码

  4.1在 Linux_Kali 虚拟机中,点击左上角的"应用程序"按钮,选择"无线攻击"选项下的"wifite",弹出的终端窗口中显示了 WiFite 工具的指令信息。
  如下图所示:

 

图 16

  4.2在终端窗口中,输入"wifite --wpa",启动 WiFite 工具,并自动扫描周围"WPA"加密的 WiFi。
  如下图所示:

 

图 17

  4.3扫描到目标 WiFi 后,按"Ctrl+C"组合键停止扫描,并输入目标 WiFi 的"NUM"代号,按下回车键开启破解。
  如下图所示:

 

图 18

  4.4此时已开启自动破解,只要等待一段时间,便可得到破解的 WiFi 密码。
  如下图所示:

 

图 19

 


发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。