赛门铁克邮件网关身份验证绕过漏洞(CVE-2018-12242)分析

2018-11-01 11:31:169041人阅读

前言

在一些信息安全评估工作中,有时很难清楚地了解目标网络的外围情况,作为不得已的手段,我们可能会对目标网络相关曝露在网的应用服务进行安全测试,这种情形下往往会有所突破,就像我在这里要分享的赛门铁克(Symantec)邮件网关授权绕过漏洞(CVE-2018-12242)一样。

1.jpg

发现漏洞

2.jpg

赛门铁克邮件网关(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中的请求和响应如下所示:

3.jpg

当然,其中生成的Cookie消息就是一个有效的管理员会话:

有效的管理员会话总结

这个漏洞利用的前提是,需要赛门铁克邮件网关开启了密码重置功能。

漏洞危害程度为:高

利用场景:远程

CVSS得分:7.1

影响版本:赛门铁克邮件网关10.6.6之前的所有版本

2018.7.11   上报漏洞

2018.7.11    分类漏洞

2018.9.12   修复漏洞,发布安全公告和补丁


参考来源:artkond,clouds编译


0
现金券
0
兑换券
立即领取
领取成功