灯火互联
管理员
管理员
  • 注册日期2011-07-27
  • 发帖数41778
  • QQ
  • 火币41290枚
  • 粉丝1086
  • 关注100
  • 终身成就奖
  • 最爱沙发
  • 忠实会员
  • 灌水天才奖
  • 贴图大师奖
  • 原创先锋奖
  • 特殊贡献奖
  • 宣传大使奖
  • 优秀斑竹奖
  • 社区明星
阅读:3256回复:0

深入解析无线WEP和WPA密码及破解原理(四)

楼主#
更多 发布于:2013-01-31 14:41
4.1.4 面向于四次握手包的字典攻击。
字典攻击,就是把密码的可能性罗列起来组成一个密码字典。然后把字典里的密
码和SSID,AP_MAC,STATION_MAC,SNonce,ANonce,802.1x data,这些信息元
素。通过pdkdf2_SHA1,SHA1_PRF,HMAC_MD5 这些算法最后生成MIC’(具体过程看
上面MIC派生图)。当在字典里找到一个密码他的MIC’等于握手包中的MIC。这时字
典破解成功。这就是我们要的那个密码。如果把字典里的所有密码都找遍了还有没有符
合上述条件的。那么破解失败。
4.2 WPA-PSK 密码规范和可能的密码空间
4.2.1 HEX 模式
64 个的十六进制数字。
4.2.2 ASCII模式
密码至少8位最大不能超过63位。字符要求a~z,A~Z,任意字符包括空格。所
以一共可是使用的字符个数为95 个。
这两种模式的密码的穷举字典(罗列所有的可能性)是超乎想象的大(不包括那
想象特别大的人)。我们就拿HEX 模式的穷举打个比方吧。如果用一个水分子比作是一
个密码的话。那么穷举字典里的密码组成一个圆球。这个球的直径是2.4光年。而ASCII
模式密码空间,你别逗了!我们可能观察到的最广阔宇宙空间的直径只可能在150亿光
年这样的范围之内。这样水球都还需要在那个基础上在大上百万倍。密码空间有时会形
成超天文数字的。当然我们不需要尝试像上面一样如此多的数值。因为MIC值只有128
位,我们只需要上面的球和月亮这么大的尝试就能找到一个符合的MIC。但是这个找到
的值可能可以成功握手。但不一定能正常通讯。这样的值可能就是一个MIC的碰撞值。
他的MIC 是相同的但是PMK 是不同的。所以需要尝试所有PMK 的可能性,而256 位
PMK 的穷举组成的水球直径还是2.4 光年。根据WPA的密码规范,使用字典攻击法,
如此大的密码空间足以让人类计算机的总和望而却步。
4.3 弱密码字典
WPA-PSK的密码空间用浩瀚来形容一点不为过,所以直接进行字典攻击是傻子的行为。
但是作为一个密码对字典攻击来说有强密码和弱密码的区别。强密码就是破解希望极其渺茫
的密码。弱密码是很有希望破解的密码。当然强弱也是个相对概念,他也是依赖于加安全制
的。银行的密码一般都为6 位。像这样密码空间如此小的密码。普通情况下都为弱密码。但
是银行的ATM 一天只让你试三次。三次密码不对锁卡。有这样的机制。6 位的就不再是弱
密码了。由弱密码组成的字典叫弱密码字典。当然一般的弱密码有以下几种。
4.3.1 密码空间太小的密码
什么叫密码空间。密码可能字符个数为n 密码的位数为p 那么n 的p 次幂就是密
码空间,例如一个6 位数子的的密码他的密码空间6M=10^6。密码空间的大小也是个相
对概念,这个和安全体制有关系的。还有就是尝试密码的速度。在WPA-PSK 的破解中。
我们可以无限次的尝试。尝试密码的速度也和设备有关系。WPA-PSK 分布式破解无疑
是用速度来换取同等时间里更大的密码尝试空间。在下面的攻击预算里会对这一部分内
容做详细的补充。
4.3.2 社会工程学的弱密码
就是密码中带有一定的社会工程学属性。也就是说密码中带有和个人有关系的信
息。这里列出一个mm做的社会工程学字典方便理解。
19602008.txt 1960-2008 年的生日组合
mydic.txt 自己弄的常用字典
abc-birth.txt 任意三字母+所有的生日组合;
shouji10.txt 10位的手机
shouji11.txt 11 位的手机号
shouji.txt 上海的手机号
8-af16.txt 8位的abcdef和123456 的任意组合
8-qrafzv.txt qwerasdfz
当然你可以看到社会工程学字典中穷举法的影子。WPA-PSK 破解中一般情况下我
们没有办法知道设置密码的人的具体信息。所以WPA-PSK 破解就没法生成针对性很强
的社会工程学字典。
4.3.3 有一定联系性规律性弱密码
例子:有人曾破如此一个WPA-PSK 密码IX1V7051242。如果你不了解这个密码的
背景你肯能会觉得很神奇,这么强的密码也能破。这样的密码是在西班牙的tele2 这样
的AP 上有,而且这样AP_ESSID 里都有tele2 字段。这样的密码后面的8 位是相同的有
真正的密码只有四位。四位密码其密码空间很小很容易被字典攻击出来。这个也是AP
的默认密码。所以这个密码被破解是因为AP本身产生的随机密码就是个弱密码。是AP
的厂家自己降低了安全性的做法。
4.3.4 暴露过的强密码
密码这个名字就告诉我们他是不能见光的。见光即死。见光的方式很多被***了,
被窃听了等。这里讲个典型点的例子:有些人具备一定的安全知识的。知道要设置一个
密码空间很大的强密码如acdess!@#$%,这个密码破之实在不易。但是这个AP 的密码
还是被破解了。原因何在。因为这个人比较懒,他在任何地方都是使用的这个强密码。
由此他注册了一个论坛。习惯性的输入自己的强密码。但是那个不怀好意的论坛的后台
有个密码收集工具。他的密码被收录进字典。用这样的字典破他的WPA-PSK 不是很容
易吗。你是不是这样的人啊?至少我碰到一个就是他的blog密码和银行卡是一个密码。
《剑鱼行动》中那个黑客是如何在一分钟进入国家安全信息网的啊。就是网络上工作着
为他收集密码的程序。而他就是通过这样的字典迅速破解的。而这样的字典真正的黑客
也是不愿意发布出来的。原因还是那句话密码见光即死。
4.4 强密码
看名字你就应该知道破解强密码的希望是十分渺茫的。怎么样的密码算一个强密码,第
一肯定不能有上面弱密码的属性。第二是需要足够的密码空间。关于WPA-PSK 中什么
形式的密码可以被称之为强密码了,在下面的攻击预算里会指出来的。

5 攻击预算
拿分布式攻击来说。开始破解一个WPA-PSK 包。我们知道他是8位的全字符一个密码。
然后我们征集到万人自愿参加这个工作。可是一破破解了一周这个密码没有任何动静。这时
人数减少了50%,之后又破了一月,人数减少到10%。这个10%是很好的支持者,他们坚
持数月。密码还是没有出现。这下就剩下5%的绝对拥护者了。但是花开花又落密码还是没
有出来。这时没有人在坚持了。这个密码最后还是没有被破解出来。那么我们的时间精力是
不是都白花了呢。的确是这样。但是如果有这些人开始这个巨大的工程前,如果我们进行了
预算。我们就会知道这1 万个人即使进行全速破解这个密码,而且都是使用的4 核心的处理
器。那么他们也需要花上27 年。看到这样的预算我想当时的1 万人会有99.9% 。还有10
个人为什么不放弃。这还用问吗,他们都是愚公的子孙。很厉害的,山都能铲平。还搞不定
你一个密码了。只要你的密码有限,而我的子子孙孙无穷匮也。攻击预算的意义就在此,提
前让我们知道做这件事所需要的代价和所能获得的意义。不行进预算也是一种不成熟的表
现。当然搞分布式计算的人可能知道这一点。他们早就强调分布式破解只是思路。不是破解
方案。破不出来也没有关系。这样的人最可气,自己知道不可行也不说,害人误入歧途。空
欢喜。
5.1 攻击预算的意义
预算运用的地方很广。迅雷下个大的电影他都会预算一下大概需要花多少时间完成这个
任务。做大的工程预算更加不能少。字典攻击这样的常规攻击,理论上是能可行的但实际上
不一定可行的。而攻击预算要解决的问题就是:在均衡了攻击代价后,攻击是否具有实际可
行性?一般情况下攻击的代价主要是时间和资源。有强大的资源支持就可以节省时间(分布
式破解就是走的这条路线)。当时间合适的话。而使用的资源远大于攻击带来的意义。那么
这样的攻击也不具备现实意义。当然在一开始我用会使用极值的方式评估攻击方案的可行性
的问题。即考虑最佳情况,如果还不行可以直接放弃。最差的情况,如果亦有可能值得深入。
5.2 WPA-PSK 中攻击预算
WPA-PSK 中的攻击预算是很容易的事。Aircrack 软件会告诉你详细的数据。让你进行
攻击预算的。无论是你直接字典攻击还是建库都会明确的告诉你他的效率和所花的时间。而
且他的数据是比较准确的。破解WPA 是最好要在纯命令行下进行。在破解WEP 的时候,
由于现在计算机的速度比较快,你很难比较纯命令行模式和图形界面的执行的效率差异。但
是WPA字典攻击是及其耗费资源的。在命令行模式下会执行的更快。他们的速度差异是:
命令行最快398.24 k/s,windows 下次之264.93 k/s, xwindwos 下最慢158.95 k/s。像linux
这么难用又ugly的系统,要不是他有惊人的执行效率。他早就淘汰了。所以破解WPA 在纯
命令行模式下有更高效的优势。下面是我在纯命令行模式下实测数据。
密码尝试数度398.24key/s
产生PMK 的速度是193PMK/s PMK 库的增长数度是24.6kb/s
(没有想到吧PMK 库的增长速度这么慢。还不如宽带快。)
直接PMK 库尝试密码的速度为57136.97key/s
也许你会说这是我计算机的上速度对其他计算机没有用。当然要通过上面的值换算成其他计
算机的精确值是不行的。但作为估算是不需要进行精确换算的。那么性能不同的计算机一般
是按什么指标换算其运算能力的呢?是按GFLOPS(10 亿次扩展双精度能力/秒)。那些超级
计算机等于多少台普通台式机不是实测出来的。也是通过上面的值进行换算出来的。我的计
算机的这个数值是10.3GFLOPS。如果你想转化成其他计算机的数值,只需要下载我提供的
EXCEL表格他是会自动给你计算的。
5.3 WPA-PSK 中的隐蔽规则
上面你也看到我的密码尝试数度只有398.24key/s。WPA-PSK 中曾经提及过设计者是知
道字典攻击是唯一有效进攻WPA-PSK的手段。为此他也是在允许条件下对这一点严加防范。
导致我的计算机尝试密码的速度只有这么点。他是如何防范的,四次握手生成PMK 的函数
PSK=PMK=pdkdf2_SHA1(passphrase,SSID,SSID length,4096),在这个函数里的输入值都
很明了除了这个4096。这就是设计者加入的防范。他的意思让函数迭代4096次。主要目的
就是大大的降低字典攻击的效率。同时也增加了函数的复杂性。这个函数的消耗的时间占派
生一个MIC 的总时间的99.3%。也就是SHA1_PRF,HMAC_MD5 这两个函数消耗的时间只
占不到总时间的0.7%。看到这里你也该明白所谓的建库破解是怎么回事了。就是先完成时
间上99.3%的任务。产生一个PMK 库。破解时只要完成时间上0.7%的工作了。这也就解释
了为什么建库比较慢。这里我们建的库叫PMK 库。或叫HMAC 预运算库。根本不是什么
叫Rainbow Hash表。而且PMK 的值还要经过那两个非线性的HMAC函数才是MIC值。我
们建立的库怎么会有线性的特点。虽然建立了PMK库是提高了速度。但不要说线速破解。
线速只有在按线性值排列了Rainbow Hash表里有。PMK 值根本没有按线性排列,也没有这
个必要。排列他只会浪费时间,而起不到任何作用。如果要线速破解你还是去建立MIC 值
的线性库吧。这样能实现线速了。就是这个库只能对一个握手包有用。建立这样的线性库有
意思吗。下面这个网站用java 实现了派生PMK 的过程,和教程里的PMK 相同吧。
http://www.xs4all.nl/~rjoris/WPAPSK.html

图片:3152139_1268105399232_1024x1024.jpg






产生PMK 如此费时,为什么硬件条件差的AP 在握手时如此的迅速。实际是在你选择用
WPA-PSK 模式后。AP 就开始用密码和ESSID 产生PMK(WPA-PSK 初始化)以后他都保
存了这个PMK值。除非你改ESSID或密码否则AP都不会花时间去生产PMK。所以STATION
和AP 握手如此的快速。所以增大上面算法中4096 的值只会增加初始化时间而,不会对握
手和传输数据有任何时间上的影响。但是对攻击者就不同了,如果增大10 倍那么字典攻击
的速度就只有原来的1/10 了。

喜欢0 评分0
游客

返回顶部