深入理解Aireplay-ng各种攻击及其原理

来源:互联网 发布:linux虚拟主机 编辑:程序博客网 时间:2024/06/17 12:24

这里主要讲常用的攻击模式(对于-6,-7攻击并不涉及),深入原理的集中在-2,-4,-5这三种攻击

一.-0攻击

    -0攻击主要是伪造一个disassocate包,让ap断开与客户端的链接,此时客户端会重新连接ap,那么我们从中可能得到的东西有:

        1,假如AP广播ESSID,那么我们可以得到这个ESSID;

        2.如果使用的是WPA/WPA2的加密方式,通过这样做强迫客户端重新验证,我们就能够获得握手包;

        3.再重新连接过程中我们可以获取到ARP数据包,为-3攻击做准备.

二.-1攻击

    之前我一直也没弄明白为什么能够进行伪连接,既然我们并不知道WEP密码,那么如何进行连接?伪连接的伪主要体现在什么地方?这个应该是和AP的工作机制有关.我自己的理解是,在客户端与AP通信的时候,客户端需要在AP那里登记自己的MAC地址,这样AP才会接受这个MAC地址的网卡产生的数据包进行下一步的工作.一般WEP验证过程为:

        1.客户端发给AP认证请求

        2.AP发回挑战字串

        3.客户端利用WEP密码加密字串返回给AP

        4.AP对返回结果进行本地匹配判断是否通过认证. 伪连接实际上就是进行了第1步,此后AP就登记了客户端的MAC地址,此时AP等待的是客户端返回挑战字串的加密包,对于攻击者,此时AP已经能够接受各种伪装生成的数据包并对其作出反应了.这一步对于无客户端的-2,-4,-5攻击相当重要.很明显,这样伪连接并不产生任何ARP包,同时也不会获得正确的WPA/WPA2握手包.

三.-2攻击

    -2攻击实际上是对特定的数据包进行重放,当AP收到这个数据包的时候对这个数据包进行广播,进而我们能够获得更多的iv以达到破解的要求.这个特定的数据包需要满足什么要求,可以看到在数据包的开始位置就是帧控制的数据结构,长度是2字节.第一个字节的结构是{Version:4bit,Type:2bit,Subtype:2bit}对于这部分,我们需要的是一个Type为2,也即是Data frame(数据帧),因为只有是数据帧,那么才有iv,才会用到WEP加密数据.对于flag字节,也就是第二个字节,我们需要设置To DS域为1,To DS域表示To Distribution System的标志,因为数据使用了WEP加密,所以Protected flag也被置为1,此时加上一个FF:FF:FF:FF:FF:FF的目标地址(广播地址)则这个就是我们可以重放的数据包.当AP收到这个数据包时,会对他使用新的IV加密后广播.我们不断的重放这个数据包以达到收集IV的目的.

    这里产生的疑问是,是否我们没有抓到这样的一个数据包我们就不能进行交互注入?答案是否定的.我们常用的是0841注入,通过对一个合法的数据帧进行修改,让他符合上面的条件从而使AP接收并重新广播.我们看一下为什么叫0841,0841的二进制位0000 1000 0100 0001,从刚才的分析看到,1000中的10是Type域,0100中1是Protected flag,0001中的1是To DS,这样合起来便是0841的含义.等待一个AP自然产生的满足条件的数据帧有时候需要等待很久,如果我们对于一个合法的数据帧的帧控制进行修改,改成0841,同时修改目标地址为广播地址(注意帧控制和目标地址等都是以明文形式发送),由于AP并不检查数据内容,只是从控制字段判断,所以AP会对收到的这个我们修改过的数据包进行广播,从而我们也就达到我们的目的--收集IV.当然我们修改的数据帧的长度最好不要太长.

    另外,-2攻击可以配合packetforge-ng产生的伪造数据包进行重放.

四,-3攻击

     ARP请求重放攻击,当抓取到一个ARP请求包的时候对它进行重放,WEP体系允许IV的重复使用因此AP会对重放的ARP请求包进行应答,从而能够收集到足够数量的IV.利用arp请求包的重放效率是最高的.后面的-4,-5攻击在获得XOR文件也即是密钥流之后,也是利用packetforge-ng生成一个arp请求包用以重放.

五,-4攻击

    KoreK的Chopchop攻击,这个攻击的理论是基于对CRC算法的数学分析的基础上,对于数学部分我们这里不深入探讨,只是用到KoreK提到的结论.WEP的核心加密算法是RC4(参考 RC4算法使用的是异或加密(我们用XOR表示异或操作),简单流程这样,我们提供一个40位的密钥,加上IV提供24位,总共64位作为种子,RC4根据这个通过PRGA(伪随机生成算法)产生密钥流,这个密钥流与我们要发送的数据进行异或操作即完成加密.为了保证数据传送过程中的完整性,WEP使用CRC算法在数据后加上4个字节的校验码(这4个校验码也要跟密钥流进行异或加密),我们称这4个字节为ICV(Integrity check value).现在假设我们要发送的数据明文为P,密钥流为KeyStream,那么,加密的数据M=(P + ICV(P)) XOR KeyStream,如果我们知道明文P,那么我们就能够得到KeyStream(=M XOR (P+ICV(P))),有了KeyStream我们就能伪造任意的数据包(如ARP请求包),发送给AP从而收集IV.关键在于如何得到明文P,KoreK的研究发现,当我们把抓取到的数据包M截去最后的一个字节的时候,此时数据包是无效的数据包(ICV错误),但是当与一个掩码进行XOR运算之后,这个数据包将会恢复为有效的数据包.而这个掩码的计算取决于我们截去的那个字节的明文(我们截去的字节已经经过加密),一个字节是8位,通过最多2^8=256次尝试,我们能够确定截去字节的明文.思路如下:

    1,我们抓取一个数据包,然后截去这个数据包加密部分的最后一个字节(注意,数据包包含有用RC4加密的部分和以明文传输的帧控制部分两部分,看上面-2攻击的图).

    2,我们产生256个掩码,每个掩码对应一个明文字节,然后进行异或操作.

    3,将这256个数据包的目标MAC地址改为组播地址,格式如01:00:5E:00:00:XX,XX和明文字节相同.

    4,发送这256个数据包,通过AP的返回的数据包目标地址最后一个字节判断明文是什么,记录下来.

    5,利用返回的数据包重复第1步直到获得所有明文.

    当获得所有明文之后,将其与原始数据包加密部分异或,得到密钥流KeyStream.Aireplay-ng将它保存为一个XOR文件.

原文地址:http://www.xuebuyuan.com/zh-tw/707257.html


0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 孩子语文阅读理解能力差怎么办 5年级数学不开窍怎么办 一年级孩子数学不开窍怎么办 三年级孩子数学成绩差怎么办 孩子三年级数学太差怎么办 三年级孩子数学理解能力差怎么办 教小孩做作业老是发火怎么办 孩子拿笔重写字太黑怎么办 教小孩写不到汉字怎么办 一年级孩子数学理解能力差怎么办 小孩一年级数学学不好怎么办 孩子一年级数学学不好怎么办 小学一年级数学学不好怎么办 孩子一年级数学成绩不好怎么办 成绩差的孩子该怎么办 面对成绩差的孩子该怎么办 六年级数学成绩差该怎么办 孩子数学物理成绩差该怎么办 高三成绩很差该怎么办 孩子学习成绩差家长该怎么办 孩子一年级语文成绩不好怎么办 孩子上网成瘾不听父母话怎么办 10岁数学不开窍怎么办 孩子五年级数学不好怎么办 一岁宝宝难断奶怎么办 2岁宝宝断不了奶怎么办 快2岁宝宝不听话怎么办 2岁半的宝宝不听话怎么办 3岁宝宝哭闹不止怎么办 2岁宝宝爱打人怎么办 两周岁宝宝吃东西就吐怎么办 两周岁宝宝不爱吃饭怎么办 两周岁宝宝反复发烧怎么办 两周岁宝宝咳嗽厉害怎么办 2岁宝宝体内有火怎么办 4岁宝宝数都不会怎么办 两岁宝宝太撅怎么办 儿童晚上发烧白天不发烧怎么办 宝宝晚上睡觉认人怎么办 两岁宝宝尿裤子怎么办 分手了想和好怎么办说