破解WIFI密码方法(AIRCRACK-NG,REAVER)

开篇:

这不是step by step教程,很多基础知识这里略去不表,有兴趣的可以自行学习。
raspberry

硬件环境:

Respberry Pi
Fast FW300U USB WIFI (rtl8192cu)

软件环境:

Debian Jessie
Aircrack-ng 1.2 rc2
Reaver v1.4

说明:

硬件方面,不是所有的无线网卡都可以,首先必须支持Monitor Mode,有外置天线的最好;软件方面,推荐我这个版本的Aircrack-ng或者之后的,如果源上没有,可以自己编译的。

这里编译安装过程不表。其中Aircrack-ng是破解无线802.11WEP及WPA-PSK加密的工具,Reaver是破解WPS Pin码,并进而计算出WPA Passpharse的工具。

破解一个WIFI,主要看以下几个方面,加密方式WEP的话,那么分分钟即可破解,WPA/WPA2的话,需要捕获握手包,通过字典破解,亦或是如果路由支持PIN码登录,那么可以通过Reaver穷举出来。

另外Rapsberry的8192cu的驱动问题很多,如果你不幸也想用这个组合来弄的话,我之后会补篇文章,介绍曲折的修复路。

准备工作:

需要先把无线网卡切换到Monitor模式,如果你的网卡是wlan0的话


airmon-ng start wlan0

注意会有一些提示,来提示你一些进程会阻碍破解过程,如果发现你多出个 mon0 或者 wlan0mon网卡,说明已经启动了Monitor模式,然后运行


airodump-ng --wps wlan0mon

OK,列出了目前可以监控到的WIFI热点,那么开始选择你的目标,着重几个方面

1.选择Beacons在变化的,起码热点活着
2.选择信号比较好的(PWR绝对值比较小)总是比较好的
3.如果选用WEP或者WPA/WPA2的破解方式,那么一定需要现在有人使用它才可以捕获包
4.WEP的话,只要有人用,那么首选就是它,因为几乎不耗时。
5.开启WPS,而且信号比较好的(PWR绝对值比较小)适合做PIN穷举,差的就算了,具体最好用wash命令,详见PIN码破解。

好,有目标了吗?开动,现在着重介绍三种破解方式,WEP破解、WPA/WPA2破解、PIN码破解。
先假设,我们crack目标的ESSID为 MyTarget,BSSID为01:02:03:04:05:06,channel为6,有一些和他通讯的机器,譬如 99:98:97:96:95:94。

WEP破解

WEP(Wireless Encryption Protocol)是1999年9月通过的IEEE 802.11标准的一部分,加密算法实际上是利用 RC4 流密钥算法作为伪随机数产生器,将初始化向量 IV 和 WEP 密钥组合而成的种子密钥输入到该随机数产生器中生成 WEP 密钥流,再由该密钥流与 WEP 帧数据负载进行异或运算来完成加密的。其中, RC4 流密钥算法是将种子密钥进行某种置换和组合运算来生成 WEP 密钥流的,由于 WEP 帧中数据负载的第一个字节是 LLC 头,这个头信息对于每个 WEP 帧都是相同的,攻击者利用猜的第一个明文字节和 WEP 帧数据负载密文进行异或运算就可得到 PRNG 生成的密钥流中的第一字节,此外,种子密钥中的 24 比特初始化矢量 IV 是以明文形式传送的,攻击者可以将其截获,分析可知, 224 个数据包后肯定会出现重复的 IV 值,而且在实际实现中 IV 值重复的概率远远大于 224 ,那么根据生日悖论,大约 212 个数据包后出现相同的 IV 值的概率将大于 0.5 ,假设处于繁忙工作状态下的 AP 每秒钟可以发送 1000 个数据包,则在 5 秒后相同的 IV 值出现的概率就大于 0.5 ,即使 IV 采用累加的方式,隔几个小时也会出现重复的 IV 值,重复出现 IV 值的现象叫做初始化向量碰撞,这种现象对数据的机密性有极大的危害,假设我们知道发生初始化向量碰撞的两段密文值 Ciphertext1 、 Ciphertext2 ,由于明文是有统计规律的语言 ,结合字典攻击,就能够以极大概率猜测到明文 Plaintext1 、 Plaintext2 的值,并可以使用明文的 CRC 校验值来判断得到的猜测值是否正确。许多攻击实例证明:利用已知的初始化向量 IV 和第一个字节密钥流输出,并结合 RC4 流密钥算法的特点,可以通过计算确定 WEP 密钥。
此外, WEP 的 CRC 校验算法也存在攻击缺陷,首先, CRC 检验和是有效数据的线性函数(针对异或操作而言,即 C(x + y)=C(x) + C(y) ),利用这个性质,攻击者可篡改明文 P 的内容,若攻击者知道要传送的明文 Plaintext 的具体内容(已知明文攻击),就可算出 RC4PRGA (Seed) , RC4PRGA (Seed)= Plaintext + (Plaintext + RC4PRGA (Seed)) ,然后可构造自己的加密数据 Ciphertext ‘=( Plaintext ‘,CRC32(Plaintext ‘)) + RC4PRGA (Seed) 和原来的 IV 一起发送给接收者 (802.11 允许 IV 重复使用 ) 。
Aircrack-ng默认采用PTW方法(Pyshkin, Tews, Weinmann),也可以用字典方式。这里只介绍默认方法也是最有效的方法。
假设MyTarget用的是WEP加密。
首先开始捕获包,

airodump-ng --ivs –w MyTarget.ivs -c 6 wlan0mon

–ivs 这里的设置是通过设置过滤,不再将所有无线数据保存,而只是保存可用于破解的IVS数据报文,这样可以有效地缩减保存的数据包大小;
-c 这里我们设置目标AP的工作频道,通过刚才的观察,我们要进行攻击测试的无线路由器工作频道为6;
-w 后跟要保存的文件名。

无线抓包现在开始,若连接着该无线路由器/AP的无线客户端正在进行大流量的交互,比如使用迅雷、电骡进行大文件 下载等,则可以依靠单纯的抓包就可以破解出WEP密码。但是无线黑客们觉得这样的等待有时候过于漫长,于是就采用了一种称之为“ARP Request”的方式来读取ARP请求报文,并伪造报文再次重发出去,以便刺激AP产生更多的数据包,从而加快破解过程,这种方法就称之为 ArpRequest注入攻击。


aireplay-ng -3 -b 01:02:03:04:05:06 -h 99:98:97:96:95:94 wlan0mon

-3 指采用ARPRequest注入攻击模式;
-b 后跟AP的MAC地址;
-h 后跟客户端的MAC地址

当抓取到一定时候,可以另开一个shell,用aircrack-ng来破解了,


aircrack-ng -b 01:02:03:04:05:06 MyTarget-0xx.ivs

如果失败,可以继续等待一段时间,让airodump-ng再捕获一些包,然后再运行一次aircrack-ng,直到出现 KEY FOUND,那么密码就出来了。
WEP密码有多不安全呢,在2005年,美国联邦调查局的一组人展示了用公开可得的工具可以在三分钟内破解一个用WEP保护的网络,可以理解成仅用于吓唬外行吧。

WPA/WPA2破解

WPA只是802.11i的草案,但是明显芯片厂商已经迫不及待的需要一种更为安全的算法,并能成功兼容之前的硬件。而通过简单的固件升级,WPA就能使用在之前的WEP的产品上。WPA采用了TKIP算法(其实也是一种rc4算法,相对WEP有些许改进,避免了弱IV攻击),还有MIC算法来计算效验和。目前能破解TKIP+MIC的方法只有通过暴力破解和字典法。暴力破解所耗的时间应该正常情况下用正常的PC机是算一辈子也算不出来的。而字典法破解利用的字典往往是英文单词、数字、论坛ID(有些论坛把你的ID给卖了)。目前为止还没有人能像破解WEP一样“点杀”WPA密码。如果破解者有本好字典,同时受害者取了个“友好”的名字除外。因此往WPA密码中加一些奇怪的字符会有效的保证安全。
WPA2是WPA的升级版,现在新型的网卡、AP都支持WPA2加密。WPA2则采用了更为安全的算法。CCMP取代了WPA的MIC、AES取代了WPA的TKIP。同样的因为算法本身几乎无懈可击,所以也只能采用暴力破解和字典法来破解。暴力破解是“不可能完成的任务”,字典破解猜密码则像买彩票。可以看到无线网络的环境如今是越来越安全了,同时覆盖范围越来越大,速度越来越快,日后无线的前途无量。
这里有个测试密码安全度的网站,可以上去玩玩,有个感性的认识。

假设MyTarget用的是WPA加密方式。
首先为了更好地识别出无线网络设备及环境,最好对airodump-ng的OUI库进行升级,先进入到Aircrack-ng的安装目录下,然后输入命令如下

airodump-ng-oui-update

然后开始抓取数据包了,

airodump-ng –w MyTarget -c 6 wlan0mon

看出来了吧,和WEP比缺少了-ivs,也就是什么包都抓,但实际上WPA破解需要的仅仅是握手验证的整个完整数据包。但是问题是握手包只在开始连接的时候会发出,等握手包那得多看运气,所以这里又有Deauth攻击,发送一种称之为“Deauth”的数据包来将已经连接至无线路由器的合法无线客户端强制断开,此时,客户端就会自动重新连接无线路由器,也就有机会捕获到包含WPA-PSK握手验证的完整数据包了。


aireplay-ng -0 1 –a 01:02:03:04:05:06 -c 99:98:97:96:95:94 wlan0mon

需要注意的是,必须存在一个客户端此时正在访问这个热点,否则的话没辙╮(╯_╰)╭。另外,deauth如果没捕获到也不要频繁的攻击,有些路由会自我保护。

如过成功的捕获了握手包,那么airodump-ng的抓取里会有WPA handshake的提示,提示你已经捕获到握手包了。

在成功获取到无线WPA-PSK验证数据报文后,就可以开始破解:


aircrack-ng -w dictionary.txt -l key.txt MyTarget-01.cap

-w dictionary.txt txt是字典文件,这里有个好的字典文件至关重要。
-l key.txt 破解成功后,输出到key.txt文件

能否破解成功与否取决于电脑的速度和字典文件,最好把cap文件复制到一个速度快点儿的电脑,事半功倍。另外如果你抓取的时间太长,cap文件会很大,实际上你本身不需要那么大的cap文件,只需要握手包,这里可以用 wireshark 过滤下,过滤器为 eapol.type == 3 or wlan.fc.type_subtype == 0x08,前面是保留key信息,后面是保留beacon frame。

PIN码破解

WPS(Wi-Fi Protected Setup)是Wi-Fi保护设置的英文缩写。WPS是由Wi-Fi联盟组织实施的认证项目,主要致力于简化无线局域网安装及安全性能的配置工作。WPS并不是一项新增的安全性能,它只是使现有的安全技术更容易配置。对于一般用户,WPS提供了一个相当简便的加密方法。通过该功能,不仅可将都具有WPS功能的Wi-Fi设备和无线路由器进行快速互联,还会随机产生一个八位数字的字符串作为个人识别号码(PIN)进行加密操作。省去了客户端需要连入无线网络时,必须手动添加网络名称(SSID)及输入冗长的无线加密密码的繁琐过程。

WPS安全漏洞究竟存在着什么样的设计缺陷呢?首先,在WPS加密中PIN码是网络设备间获得接入的唯一要求,不需要其他身份识别方式,这就让暴力破解变得可行。其次,WPS PIN码的第8位数是一个校验和(checksum),因此黑客只需算出前7位数即可。这样,唯一的PIN码的数量降了一个级次变成了10的7次方,也就是说有1000万种变化。再次,在实施PIN的身份识别时,接入点(无线路由器)实际上是要找出这个PIN的前半部分(前4位)和后半部分(后3位)是否正确即可。Viehbock称当第一次PIN认证连接失败后,路由器会向客户端发回一个EAP-NACK信息,而通过该回应,攻击者将能够确定的PIN前半部或后半部是否正确。换句话说,黑客只需从7位数的PIN中找出一个4位数的PIN和一个3位数的PIN。这样一来,级次又被降低,从1000万种变化,减少到11000(10的4次方+10的3次方)种变化。
因此,在实际破解尝试中,黑客最多只需试验11000万次,平均只需试验大约5500次就能破解。这也证实了在2小时内破解PIN码的可行性。

Reaver1.4下有新的指令,可以检测对方WPS状态

wash -i wlan0mon -C -s

注意,如果wash长时间不出结果,可能是一个bug,创建一个 /etc/reaver 空目录试试
假设MyTarget开启了WPS,那么我们就可以开工了


reaver -i wlan0mon -b 01:02:03:04:05:06 -c 6 -o MyTarget.log -s MyTarget.session -a -D -S –d9 –t9 -l60 -r10:5 -v


-c 频道
-o 日志输出文件
-s session文件,保证即便破解中途推出,也可以下次继续破解
-a 自动检测目标AP的最先进的选项,不过我还是推荐自己选择参数
-D 后台守护进程
-d 尝试每次测试pin后的延时
-t 超时时间
-v 日志详细程度,-vv更为详细
-l AP锁定时的等待时间
-x 10次意外后休息时间
-r 每次尝试x次后休息y秒
-S 使用小DH密钥,提高破解速度
-n 总是向目标AP发送一个NACK

这些是常用的,更多详细的可以看reaver帮助,然后就慢慢等待就行了。
值得注意的有几点:
1.如果提示can’t associate,那么可能是信号太弱或者网卡驱动有问题
2.如果一段时间AP被锁,那么建议延长-l时间,如果一直被锁,那么可能是AP的安全策略,需要管理员解锁,没办法了。

如果破解成功,那么恭喜,pin码、SSID、密码被连锅端了。。。

结语

知己知彼,百战不殆,知道了破解方式,那么如何防护呢,很明显,启用WPA2加密,用一个高强度的密码,关掉QSS和WPS。如果可能,同时隐藏SSID不失为一个不错的先手。

Leave a Reply

Your email address will not be published.

Time limit is exhausted. Please reload CAPTCHA.

This site uses Akismet to reduce spam. Learn how your comment data is processed.