主页 > 网络知识 > 通过GIF图片可对Microsoft Teams用户账户进行劫持(3)

通过GIF图片可对Microsoft Teams用户账户进行劫持(3)

有了“authtoken”和“skypetoken”后,就能通过Teams API接口发起API请求,实现消息发送、读取,创建群组、添加移除新用户或更改群组用户权限等。但还需要一个条件,由于“authtoken”和“skypetoken”只会发送到teams.microsoft.com和其相关子域名中,所以,成功的利用条件是teams.microsoft.com和其相关子域名存在域名劫持。恰巧的是,经过测试,我们发现以下两个teams.microsoft.com的子域名存在可劫持漏洞:

aadsync-test.teams.microsoft.com

data-dev.teams.microsoft.com

如果攻击者劫持了上述两个域名,就能窃取到受害者发往Microsoft Teams服务端的cookie,然后通过其中的“authtoken”生成“skypetoken”,就能对受害者账户数据的窃取。但该利用中还存在:

1、攻击者需要为上述可被劫持的子域名发布一个证书,因为“authtoken”被标记为了secure,只能通过https通道传递。但对于攻击者来说,这并不算是一个问题,因为域名已经可以劫持了,只要能上传相应文件到指定的路径下,证书颁布机构即能发布有效证书;

2、如何利用该漏洞方法实现Microsoft Teams账户劫持,如果可能的话,最好不要用恶意链接的方式,因为这种方法已经被用烂了,稍微有点安全意识的人都不会上当。

为此,我们设计了一种不一样的手法。

构造邪恶的GIF

如前所述,Microsoft Teams在跨域的Teams和Skype账户中进行图片分享或浏览时,用“authtoken” 来验证用户身份然后加载图片,因此,我们可以通过Microsoft Teams群聊,向受害者发送一张“src”属性指向上述两个可被劫持的子域名的图片,当受害者打开该图片后,其浏览器就会向攻击者劫持的子域名发送包括“authtoken”的Cookie。

这样一来,攻击者就能获取受害者的“authtoken”,然后生成“skypetoken”,进而窃取到受害者的所有数据信息。

 

通过GIF图片可对Microsoft Teams用户账户进行劫持

攻击就是如下这么简单:受害者只需在Microsoft Teams账户中浏览一张正常的GIF,即可中招!子域名劫持+Cookie窃取=账户劫持。虽然这种攻击场景大多限于内部,但也会引入外部因素,如邀请第三方人员或局外人加入视频会议等。

 

 

通过GIF图片可对Microsoft Teams用户账户进行劫持

 

形成类似蠕虫的攻击利用(Worm-like Vulnerability)

该漏洞利用最大最可怕的一点就在于能在群组中广泛传播,类似蠕虫一样,受害者看到的是一张经过构造的正常图片,每个受害者账户都会成为一个扩散点,影响所有群组用户,并且,这种图片分享传播也有可能被传播给其它公司群组,形成更快更有效的攻击步骤。POC视频参考:

https://www.cyberark.com/threat-research-blog/beware-of-the-gif-account-takeover-vulnerability-in-microsoft-teams/

除此之外,我们还写了一个脚本,可以跑出受害者的所有会话信息并保存在本地,如下图所示:

 

通过GIF图片可对Microsoft Teams用户账户进行劫持

 

漏洞修复(Mitigation & Response)

在与Microsoft安全团队的沟通协调后, Microsoft 迅速删除了上述两个子域名的DNS错误配置记录,堵塞了域名劫持漏洞,然后在相关应用中加入了更多的安全规则。

2020.3.20  漏洞上报

2020.3.20  微软修复错误配置的DNS记录

2020.4.20  微软释放补丁

说点什么吧
  • 全部评论(0
    还没有评论,快来抢沙发吧!