Chinaunix首页 | 论坛 | 博客
  • 博客访问: 56769
  • 博文数量: 9
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 164
  • 用 户 组: 普通用户
  • 注册时间: 2015-03-04 18:49
文章分类
文章存档

2015年(9)

我的朋友

分类: 网络与安全

2015-03-26 20:47:30

WPA加密算法有两个版本:
    WPA = 802.1x + EAP + TKIP + MIC 
WPA-PSK = Pre-shared Key + TKIP + MIC
    WPA2 (802.11i) = 802.1x + EAP + AES + CCMP
  (WPA2-PSK = Pre-shared Key + AES + CCMP
    这里802.1x + EAPPre-shared Key是身份校验算法(WEP没有设置有身份验证机制)

    TKIP和AES是数据传输加密算法(类似于WEP加密的RC4 算法)

    MIC和CCMP是数据完整性编码校验算法(类似于WEPCRC32算法)

WPA 认证方式:

    802.1x + EAP (工业级的,安全要求高的地方用。需要认证服务器)

    Pre-shared Key (家庭用的,用在安全要求低的地方。不需要服务器)

    EAP 扩展认证协议,是一种架构。而不是定义了算法。常见的有LEAPMD5TTLS
TLSPEAPSRPSIMAKA 。其中的TLS TTLS 是双向认证模式。这个和网络银行的安全方式差不多。这个认证方式是不怕网络劫持和字典攻击的。而MD5 是单向认证的。无法抵抗网络劫持,中间人攻击。
WPA-PK
的破解:
    不像WEP一样抓很多的包就能够破解出密码,目前WPA-PSK的破解几乎还是靠字典,而且要先捕捉到握手包(4way-handshake 四次握手包,其中包含了SSID, AP_MAC, STATION_MAC, ANonce, SNonce, MIC)。为什么会有这样一个包呢,我们先来看看WPA-PSK验证的四次握手:通信过程如图


    初始化:使用 SSID 和PSK,使用以下算法产生PMK(Pairwise Master Key)
            在WPA-PSK 中,PMK = SHA1(passphraseSSIDSSID length4096)

            注:在认证阶段中,计算PMK的过程开销比较大,是我们破解时长的关键,所以我们可以采用以空间换时间的策略,把PMK 事先生成好,这个事先生成好的表就是常说的HASH表(生成PMK的算法是一种哈希),这个工作是用airlib-ng这个工具来完成的。
    第一次握手:AP广播SSID和自身MAC地址,即AP_MAC STATION,STATION 端使用接收到的SSIDAP_MACPSK,使用同样算法产生PMK
    第二次握手:STATION 发送一个随机数SNonce 和自身的MAC地址给AP,即STATION_MAC AP,AP端接受到SNonce和STATION_MAC后产生一个随机数ANonce,然后用PMKAP_MACSTATION_MACSNonceANonce 以下算法产生PTKPairwise Temporary Key):
    PTK=SHA1_PRF(PMK, Len(PMK), "Pairwise key expansion", MIN(AP_MAC, STATION_MAC) || MAX(AP_MAC, STATION_MAC) || 
            MIN(ANonce, SNonce) || MAX(ANonce, SNonce))

    提取这个PTK 16 个字节组成一个MIC_KEYMessage Integrality Check

    第三次握手:AP发送上面产生的ANonceSTATION,即ANonce STATION,STATION 端用接收到ANonce 和以前产生的PMKSNonceAP_MACSTATION_MAC用同样的算法产生PTK。提取这个PTK 16 个字节组成一个MIC_KEY并使用以下算法产生MIC值:给定MIC_KEY 和一个802.1x data 数据帧,有:MIC = HMAC_MD5(MIC Key,16802.1x data)

     第四次握手:STATION 端用上面那个准备好的802.1x 数据帧在最后填充上MIC值和两个字节的0(十六进制)让后发送这个数据帧到AP,即802.1x dataMIC APAP端收到这个数据帧后提取这个MIC。并把这个数据帧的MIC部分都填上0(十六进制)这时用这个802.1x data 数据帧,和用上面AP产生的MIC_KEY 使用同样的算法得出MIC’。如果MIC’等于STATION 发送过来的MIC。那么第四次         握手成功。若不等说明则AP STATION 的密钥不相同,或STATION 发过来的数据帧受到过中间人攻击,原数据被篡改过,握手失败。

破解实例(模拟环境,仅供学习!)

    环境:Kali Linux

    工具:Aircrack-ng

    STEP 1:将网卡设置为监听状态,命令如下:

(注:在wlan0后面加上个数字可指定无线网卡监听的频道,如,这样在后续操作中就不会遇到频道不匹配的问题。但是,我们怎么知道攻击目标工作在哪个频道呢?所以,我们可以先用不指定工作频道的命令查看目标频道后,再用带频道参数的命令重新设置监听状态)

这时利用ifconfig –a命令查看网络状态,可发现新增了一个mon0

    STEP 2:查看当前无线网络的状态,我们的攻击目标为ESSID为YY的无线网络,命令如下:

    STEP 3:开始抓包(目标是抓到四次握手包),命令如下:

    参数解释:-c:监听频道    -w:保存监听事件的文件名

    STEP 4:使用Deauth攻击,使我们尽快抓到“四次握手包”。命令如下:


    参数解释:-0:采用Deauth攻击     5:进行5次攻击    -aAPMAC地址    -c:已连接该AP的客户端的MAC地址

    当捕获到“四次握手包后”,执行STEP 3的终端窗口的右上角会显示如下信息:

 

    STEP 5:通过捕获到的“四次握手包”和字典(我这里用的是metasploit自带的字典)破解密码。输入命令并按回车,输入要破解的那个无线网络的索引后,即可开始破解。命令如下:

    参数解释:-w:设置字典,后跟字典路径    hac-05.capSTEP 3中设置的文件名

    如果密码包含在字典文件中,则破解迟早会成功(只是时间问题,示例用的密码是12345678,是弱口令,包含在字典文件中,所以很快就破解成功了),否则破解失败。所以,如果不是弱口令的话,WPA是很难很难破解的。


参考资料:

    1、深入解析无线WEPWPA密码及破解原理

     

阅读(8990) | 评论(0) | 转发(0) |
0

上一篇:没有了

下一篇:无线网络的几种模式

给主人留下些什么吧!~~