LEAP

WiFi认证已经第三弹了。LEAP是企业版WiFi常用的认证方式,是EAP的一种,而且没有正式的协议。但是LEAP就像WEP一样不是很安全,ASLEAP就是一个攻击工具。LEAP基本要被PEAP代替。本来是想直接实验PEAP的,没想到我的系统默认用的是LEAP,索性就从简单的开始。

leap
图片来自etutorials

由上图可以看出LEAP的基本认证过程。认证服务器RADIUS通过AP发送给用户一个Challenge,就是一个随机字符串。用户使用特定算法(密码+MD4+DES)处理字符串,返回给RADIUS。同时用户也要对该RADIUS进行认证,步骤相同,但是加密算法不同。


Wireshark分析

通过Wireshark分析我的认证过程。(请不要尝试破解我的密码。。。如果你需要测试,可以联系我)。截图中显示前两步,一个是PC,8 bytes,一个是PR 24bytes。而且Cisco也提醒我这个协议是不安全的,牛!所以有了PC和PR之后就可以开始测试了。
LEAP
查看LEAP协议,有以下约定:

  • PC是RADIUS发送给用户的Challenge
  • PR是用户发送给RADIUS的Response
  • APC是用户发送给RADIUS的Challenge
  • APR是RADIUS发送给用户的Response

那么根据协议,得出:

我去,NtPasswordHash是个什么?搞了半天,这是Microsoft PPP CHAP Extensions,还有Version2.我看着蛋碎,其实就两句话。还有MPPEHASH,原理一样。

然后Challenge的构造是使用DES加密算法。因为出来的NtPW和MPPEHASH都是要补成21字节长,然后分成3段,分别使用这3段作为密钥加密Challenge,然后合并后产生24 bytes的Response。坑爹的是21/3 = 7 bytes。DES要8 bytes密钥,所以首先要扩展密钥。这实在说不清,而且补的那位是奇偶校验位,大多数时候被忽略,看代码。

完整代码和实验数据见github,我的测试结果就不放了。不要告诉我到这份上了,还不知道怎么破解LEAP密码。关于无线还有两部分,一个是PEAP,一个是Reaver。

链接:

  1. LEAP攻击
  2. Cisco官方文档
  3. PPTPKIT
  4. EAP各种代码