0x00 前言上月,受邀在C-SEC上海快递行业安全会议上做了关于无线安全威胁的议题分享。介绍了家庭级的无线网络薄弱环节及攻击方法,同时列举了乌云上因无线边界被突破,造成内网沦陷的诸多例子。后半部分,简要的介绍了企业级无线网络安全,可能因为受众人群及时间的关系,观众情绪不太高,所以我也没有展开。 家庭级的无线安全已是老生常谈了,而针对于企业级的802.1X,在我检索时发现中文网页内的相关安全文章只有寥寥数篇,大多只是讲述了攻击过程,对于其缺陷原因、防护方法、对于802.1X中EAP的诸多扩展协议并未提及。这无疑对新入研究者帮助甚少。于是便有了此文,也是我对知识的梳理,希望能对大家有所帮助。 0x01 无线网络的历史WEP是无线网络中最早最被广泛使用的安全协议,使用了基于共享加密密钥的 RC4 对称加密算法。因为加密算法不够强壮,收集足够多的密文数据便可直接算出密钥,同时由于数据完整性检验算法也不够强壮,导致整个破解过程可在几分钟内完成。 WEP有2种认证方式:开放式认证(open system)和预共享密钥认证(shared key)。 WPA针对WPE出现的问题,IEEE推出了 802.11i 标准。但由于时间紧迫,短时间内无法将标准全部实现,于是在2003年 WPA 被推出,用以作为 802.11i 完备之前替代 WEP 的过渡方案。
WPA2WPA寿命很短,2004年便被实现了完整 IEEE 802.11i 标准的 WPA2 所取代。WPA2中使用更强的AES(Advanced Encryption Standard)加密算法取代WPA中的RC4,也使用了更强的完整性检验算法CCMP。 到现在,一共有三种认证方法:开放式认证、预共享密钥(PSK)认证、802.1X认证。 现在,在路由器设置的加密方式里看到wpa-personal、wpa2-personal、wpa-enterprise、wpa2-enterprise时就不会晕了,personal指的PSK认证,enterprise指的便是802.1X认证。 0x02 802.1XIEEE 802.1X 是 IEEE 制定关于用户接入网络的认证标准,它为想要连接到 LAN 或 WLAN 的设备提供了一种认证机制,通过EAP协议(Extensible Authentication Protocol)进行认证,控制一个端口是否可以接入网络。 802.1X工作在二层,加上EAP只是一个框架,可以由厂商实现具体的认证方法,因此具有非常好的扩展性,在办公网络的很多方案中得到应用。不同的厂商也衍生出一大堆LEAP、PEAP、EAP-TLS、EAP-MD5等等具体的认证协议。
802.1X 最初为有线接入而设计,因连接需要物理接触,所以在安全方面考虑较少。而无线网络的出现,使设备接入变得容易,需要对802.1X的安全性进行加强,即增强EAP协议的安全性。除了验证用户外,用户也需要去确保正在连接的是合法热点。 需求便是:强健的加密方式及双向认证。 基于 IETF 的 TLS 标准可以较好的实现这两点需求,三种基于TLS的EAP协议就被研制了出来:EAP-TLS、EAP-TTLS、EAP-PEAP。 EAP-TLS基于Client和Server双方互相验证数字证书。因为EAP-TLS需要PKI系统为客户端签发证书的缺点,所以设计出了TTLS和PEAP,这两个协议可以在TLS隧道内部使用多种认证方法。 因为PEAP与Windows操作系统的良好协调性,以及可以通过Windows组策略进行管理的特性,使得PEAP在部署时极其简单。同时,由于PEAP可以兼容几乎全部厂商的全部设备,因此对于企业来说,PEAP是一个最佳的验证协议。 0x03 PEAPPEAP 与 PKIPEAP是可扩展的身份验证协议 (EAP) 家族的一个成员。它使用 TLS 为进行PEAP验证的客户端和服务器间创建加密隧道。PEAP没有指定具体的认证方法,可搭配选择多种认证方式如 EAP-MSCHAPv2 、EAP-TLS等。 PEAP的认证过程分为两个阶段:
认证方法:
PKIPEAP 使用 PKI 来确保用户验证过程不会被黑客或恶意人员截获和破解,这与SSL采用PKI来确保网站或其它敏感网络应用在数据交换过程不被截获并破解的目的是一样的。
目前所有主流操作系统中,都预装了包含可信CA根证书的CTL,这也就是为什么诸如 VeriSign 等公司有权利给全球的服务器颁发证书。采用VeriSign这样具有公信力的认证 机构来建立PKI是一件非常简单的事情,因为该证书已经被几乎所有的电脑及移动设备所接受,但是服务器证书的费用每年可能会有数百美元。采用EAP-TLS和CA结合的办法成本更高,因为还需要每年为每个客户支付60美元的数字证书费用。 于是很多企业采用自签名数字证书的方式来实现无线局域网的部署。 3.1 PEAP Weakness企业部署无线网,一般会选择采用PEAP-MSCHAP v2、使用AD认证(域账户)的架构。 通过上面的介绍可以了解到,PEAP通过类似SSL机制为认证提供传输层的安全,需要企业去向CA购买证书,或者自建PKI系统,签署用于无线的证书,同时将根证书部署到每个客户端。 “将根证书部署到每个客户端”这个要求实现起来比较麻烦,大部分企业直接忽视,客户端直接面对未经认证的证书,便留下了隐患:
3.2 PEAP Attack那么针对PEAP的攻击手法就很明确了:
工具可以使用FreeRadius-WPE,这是一款针对开源FreeRADIUS服务器的补丁程序。 使用方法可参考知识库上mickey写的《破解使用radius实现802.1x认证的企业无线网络》一文,这里便不再赘述。 不过 FreeRadius-WPE 项目已经在14年停止维护,OpenSecurityResearch 制作了一个替代品 hostapd-wpe,可直接为hostapd打补丁支持 PEAP/MSCHAPv2、EAP-TTLS/MSCHAPv2等攻击。 Hostapd-WPE项目地址: https://github.com/OpenSecurityResearch/hostapd-wpe 官方文档: 建立成功后,用手机连上此热点,输入账号密码就可观察到被记录hash值(Challenge/Response),被记录在hostapd-wpe.log Asleap & John the Ripper有两个工具可以使用,一个是著名的John the Ripper,hostapd-wpe.log文件里有直接生成了NETNTLM格式的hash,提交给John the Ripper就行了 这里以asleap为例: MS-CHAP v2 Vulnerability在Defcon 20上,有研究人员展示了破解 MS-CHAPv2 的方法。
在获取了MS-CHAP v2握手数据包后,使用chapcrack工具解析该握手数据包中相关的凭证信息,被提交给CloudCracker网站,该网站为渗透测试人员和网络审计员提供在线的密码破解服务,在一天内返回破解的MD4哈希值。 0x04 总结虽然我们可以通过上面讲述的方法对PEAP进行攻击,同时MS-CHAP v2还包含漏洞可被暴力破解,但这并不意味着PEAP已经被攻破了。当配置合理时,PEAP 是安全的,因为黑客根本没机会接触到在TLS隧道中的MS-CHAPv2。 应该做到:
由于涉及较多的协议知识,如有纰漏欢迎指正。 有少量的参考内容未使用引用(考虑到排版),还请谅解。 最后感谢Sweeper、Sanr对本文的指导和帮助 0x05 参考
|
Powered by Discuz!
© 2003-2024 广州威思信息科技有限公司