深入分析CVE-2021-27075漏洞
2023-1-20 00:2:58 Author: 白帽子(查看原文) 阅读量:24 收藏

STATEMENT

声明

由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,雷神众测及文章作者不为此承担任何责任。

雷神众测拥有对此文章的修改和解释权。如欲转载或传播此文章,必须保证此文章的完整性,包括版权声明等全部内容。未经雷神众测允许,不得任意修改或者增减此文章内容,不得以任何方式将其用于商业目的。

NO.1 前言

在这篇文章中,我们不仅会为读者详细解释(Microsoft Azure Virtual Machine(VM)扩展的工作原理,同时,还会介绍我们是如何在影响Azure VM Linux系统的扩展运行机制中发现致命安全漏洞的。作为负责任的披露策略的一部分,我们已经向Microsoft安全响应中心(MSRC)报告了该漏洞。他们很快就完成了修复工作,并分配了相应的漏洞编号:CVE-2021-27075。

这个漏洞允许无权限用户泄漏Azure VM扩展的私有数据。结合VMAccess扩展的设计,我们将演示如何借助它来实现权限提升以及横向移动。VMAccess扩展是为帮助系统管理员而构建的官方Azure扩展。

Poc代码运行效果

NO.2 关于Azure VM扩展

Azure VM为开发人员和管理员提供了一个集成的插件系统,以便在其机器上安装额外的组件。实际上,许多的第一方应用程序(如Microsoft Azure Diagnostics和Microsoft Azure Network Watcher)和第三方应用程序(如Datadog Agent)都是通过这个机制提供的。

为了管理扩展的安装和更新过程,通常会在系统上安装Microsoft Azure Guest Agent。这个组件是开源的,其代码托管在GitHub上。实际上,这个代理,跟其他Azure扩展一起,都被安装在/var/lib/waagent目录中。这个目录对于非root用户来说是无法访问的,因为该目录中存放有与扩展相关的机密信息。

通常情况下,各个扩展被安装在这个目录下相应的子目录中,例如:/var/lib/waagent/Microsoft.Azure.NetworkWatcher.NetworkWatcherAgentLinux-1.4.1587.1。另外,许多共享配置被存放在根扩展目录/var/lib/waagent中。

下面是一个目录布局的例子:

/var/lib/waagent的目录结构

当一个扩展被添加到虚拟机中时,Azure虚拟机管理器(也称为Fabric Controller)就会在后台更新相应的配置文件。WAAgent会不断地向Fabric Controller轮询这个配置文件;该文件一旦更新,就会下载和部署相应的扩展。在Microsoft Azure Cloud中,WAAgent会与“Wire Server”进行通信,后者是Fabric Controller提供的HTTP服务。

实际上,WAAgent是通过访问一个特殊的IP地址与Fabric Controller进行通信:168.63.129.16。通过一些测试,我们发现这个端点与169.254.169.254相同,也就是Azure Instance Metadata Service的IP地址。

具体来说,WAAgent是通过解析“GoalState”来接收扩展配置URL的。

GoalState端点的请求

该请求的响应如下所示:

GoalState端点的响应

在GoalState中,含有Wire Server可用的所有相关配置的URL。使用GoalState,我们可以自己查询ExtensionsConfig文件。

ExtensionsConfig端点的请求

下面是一个关于LinuxDiagnostic扩展配置的例子。

ExtensionsConfig端点的响应

其中,由于protectedSettings字段保存了敏感的扩展配置数据,如私钥等,因此,通常该字段会收到相应加密方案的保护。protectedSettingsCertThumbprint字段存放用于解密protectedSettings的密钥的文件名。这个密钥存储在/var/lib/waagent/F54265F38F8D16C35C0E1FD3190882831A6C4384.prv中,其证书存储在/var/lib/waagent/F54265F38F8D16C35C0E1FD3190882831A6C4384.crt中。

需要注意的是,ExtensionConfig文件未提供私钥和证书对,那么,如何将它们部署到服务器上呢?

为了部署它们,将使用证书端点。在对WAAgent与Wire Server的通信进行逆向分析后,我们发现证书端点需要一个“传输(transport)”证书,用来提供F542...扩展密钥:

证书端点的请求

Wire Server将返回一个加密形式的扩展密钥,它可以通过传输证书的私钥进行解密。

证书端点的响应

NO.3

泄露Azure VM扩展的私有数据

漏洞1:证书端点没有验证传输证书

由于该漏洞的缘故,攻击者可以创建自己的传输私钥和其相应的传输证书。通过证书端点,攻击者可以提供他们自己的传输证书,并从Wire Server接收加密形式的密钥(在我们的例子中,即为F54265F38F8D16C35C0E1FD3190882831A6C4384密钥)。

最后,通过传输密钥对加密的密钥进行解密,攻击者就可以继续解密被保护的相关设置信息了。

令我们惊讶的是,在开发了具有root权限的PoC代码后,它在非特权用户那里竟然无法工作。由此看来,服务器并没有把指向168.63.129.16的Wire Server端点的数据包发送出去。这是因为存在这样一条iptables规则:对于发送到端点的数据包,只要不是来自用户ID 0(root),就会将其丢弃:

Azure VM的IPTables规则

漏洞2:绕过Wire Server的非特权访问限制

如前所述,我们发现164.254.164.254与168.63.129.16是同一台机器。因此,在向这台机器发送请求时,我们用地址164.254.164.254替换了168.63.129.16,这使得我们可以作为非特权用户与Wire Server进行通信。

此外,这种基于iptables规则的防御机制并不适用于在Docker容器中运行的进程(即使PoC代码以非特权用户身份运行也是如此),因为容器可以通过Wire Server泄露其主机信息。目前,这个安全问题也被MSRC修复了。

NO.4 组合利用这两个漏洞

利用这两个漏洞,非特权用户可以泄露任何Azure VM扩展的私有设置数据。当与处理敏感数据的扩展配对时,这个问题会尤其危险。

一个特别严重的例子是VMAccess扩展,这是Microsoft Azure的一个官方扩展,用于在受控机器上方便地修改密码。根据Guardicore以前的文档说明:VMAccess扩展会在protectedSettings字段中长期保留密码,即使它已经完成了对用户密码的修改,不再需要在磁盘上保留密码时,也是如此。

将我们发现的漏洞联合起来,攻击者可以通过泄露VMAccess管理密码将自己提升为更高权限的用户。此外,如果VMAccess密码与其他Azure虚拟机共享(通常是这样)的话,攻击者还可以在系统中进行横向渗透,具体过程如下所示:

漏洞利用的流程图

下面是概念验证的结果:

泄露VMAccess扩展数据

NO.5 小结

微软发布的CVE也适用于其他Azure产品,如Azure Spring Cloud,这是由研究员Wouter ter Maat在后来独立发现的。

微软通过修改整个Linux扩展机制修复了这个安全问题,目前,更新虚拟机已经不需要用户进行互动了。

这项研究旨在进一步考察云服务提供商(CSP)与客户之间的关系。最终,客户要对任何发生的数据泄露负责。对于一个更完整的云安全策略,我们建议采取双管齐下的方法:首先,要做好基础工作,如修复已知的漏洞和加固系统,以减少被攻击的可能性。其次,还需要基于运行时的威胁检测,以便在受到未知的漏洞攻击或供应链中的后门攻击后,能够及时识别攻击并采取必要的应对措施。

原文地址:

https://www.intezer.com/blog/cloud-security/cve-2021-27075-microsoft-azure-vulnerability-allows-privilege-escalation-and-leak-of-data/

RECRUITMENT

招聘启事

安恒雷神众测SRC运营(实习生)
————————
【职责描述】
1.  负责SRC的微博、微信公众号等线上新媒体的运营工作,保持用户活跃度,提高站点访问量;
2.  负责白帽子提交漏洞的漏洞审核、Rank评级、漏洞修复处理等相关沟通工作,促进审核人员与白帽子之间友好协作沟通;
3.  参与策划、组织和落实针对白帽子的线下活动,如沙龙、发布会、技术交流论坛等;
4.  积极参与雷神众测的品牌推广工作,协助技术人员输出优质的技术文章;
5.  积极参与公司媒体、行业内相关媒体及其他市场资源的工作沟通工作。

【任职要求】 
 1.  责任心强,性格活泼,具备良好的人际交往能力;
 2.  对网络安全感兴趣,对行业有基本了解;
 3.  良好的文案写作能力和活动组织协调能力。

简历投递至 

[email protected]

设计师(实习生)

————————

【职位描述】
负责设计公司日常宣传图片、软文等与设计相关工作,负责产品品牌设计。

【职位要求】
1、从事平面设计相关工作1年以上,熟悉印刷工艺;具有敏锐的观察力及审美能力,及优异的创意设计能力;有 VI 设计、广告设计、画册设计等专长;
2、有良好的美术功底,审美能力和创意,色彩感强;

3、精通photoshop/illustrator/coreldrew/等设计制作软件;
4、有品牌传播、产品设计或新媒体视觉工作经历;

【关于岗位的其他信息】
企业名称:杭州安恒信息技术股份有限公司
办公地点:杭州市滨江区安恒大厦19楼
学历要求:本科及以上
工作年限:1年及以上,条件优秀者可放宽

简历投递至 

[email protected]

安全招聘

————————

公司:安恒信息
岗位:Web安全 安全研究员
部门:战略支援部
薪资:13-30K
工作年限:1年+
工作地点:杭州(总部)、广州、成都、上海、北京

工作环境:一座大厦,健身场所,医师,帅哥,美女,高级食堂…

【岗位职责】
1.定期面向部门、全公司技术分享;
2.前沿攻防技术研究、跟踪国内外安全领域的安全动态、漏洞披露并落地沉淀;
3.负责完成部门渗透测试、红蓝对抗业务;
4.负责自动化平台建设
5.负责针对常见WAF产品规则进行测试并落地bypass方案

【岗位要求】
1.至少1年安全领域工作经验;
2.熟悉HTTP协议相关技术
3.拥有大型产品、CMS、厂商漏洞挖掘案例;
4.熟练掌握php、java、asp.net代码审计基础(一种或多种)
5.精通Web Fuzz模糊测试漏洞挖掘技术
6.精通OWASP TOP 10安全漏洞原理并熟悉漏洞利用方法
7.有过独立分析漏洞的经验,熟悉各种Web调试技巧
8.熟悉常见编程语言中的至少一种(Asp.net、Python、php、java)

【加分项】
1.具备良好的英语文档阅读能力;
2.曾参加过技术沙龙担任嘉宾进行技术分享;
3.具有CISSP、CISA、CSSLP、ISO27001、ITIL、PMP、COBIT、Security+、CISP、OSCP等安全相关资质者;
4.具有大型SRC漏洞提交经验、获得年度表彰、大型CTF夺得名次者;
5.开发过安全相关的开源项目;
6.具备良好的人际沟通、协调能力、分析和解决问题的能力者优先;
7.个人技术博客;
8.在优质社区投稿过文章;

岗位:安全红队武器自动化工程师
薪资:13-30K
工作年限:2年+
工作地点:杭州(总部)

【岗位职责】
1.负责红蓝对抗中的武器化落地与研究;
2.平台化建设;
3.安全研究落地。

【岗位要求】
1.熟练使用Python、java、c/c++等至少一门语言作为主要开发语言;
2.熟练使用Django、flask 等常用web开发框架、以及熟练使用mysql、mongoDB、redis等数据存储方案;
3:熟悉域安全以及内网横向渗透、常见web等漏洞原理;
4.对安全技术有浓厚的兴趣及热情,有主观研究和学习的动力;
5.具备正向价值观、良好的团队协作能力和较强的问题解决能力,善于沟通、乐于分享。

【加分项】
1.有高并发tcp服务、分布式等相关经验者优先;
2.在github上有开源安全产品优先;
3:有过安全开发经验、独自分析过相关开源安全工具、以及参与开发过相关后渗透框架等优先;
4.在freebuf、安全客、先知等安全平台分享过相关技术文章优先;
5.具备良好的英语文档阅读能力。

简历投递至

[email protected]

岗位:红队武器化Golang开发工程师

薪资:13-30K
工作年限:2年+
工作地点:杭州(总部)

【岗位职责】
1.负责红蓝对抗中的武器化落地与研究;
2.平台化建设;
3.安全研究落地。

【岗位要求】
1.掌握C/C++/Java/Go/Python/JavaScript等至少一门语言作为主要开发语言;
2.熟练使用Gin、Beego、Echo等常用web开发框架、熟悉MySQL、Redis、MongoDB等主流数据库结构的设计,有独立部署调优经验;
3.了解docker,能进行简单的项目部署;
3.熟悉常见web漏洞原理,并能写出对应的利用工具;
4.熟悉TCP/IP协议的基本运作原理;
5.对安全技术与开发技术有浓厚的兴趣及热情,有主观研究和学习的动力,具备正向价值观、良好的团队协作能力和较强的问题解决能力,善于沟通、乐于分享。

【加分项】
1.有高并发tcp服务、分布式、消息队列等相关经验者优先;
2.在github上有开源安全产品优先;
3:有过安全开发经验、独自分析过相关开源安全工具、以及参与开发过相关后渗透框架等优先;
4.在freebuf、安全客、先知等安全平台分享过相关技术文章优先;
5.具备良好的英语文档阅读能力。

简历投递至

[email protected]

END

长按识别二维码关注我们


文章来源: http://mp.weixin.qq.com/s?__biz=MzAwMDQwNTE5MA==&mid=2650246466&idx=1&sn=b78eea60eeb00765b5ea06d0132673dc&chksm=82ea56ebb59ddffd0abafc7a5770cd869f7823acd609a641f5d58a801baa58fe2931e7eae5b0#rd
如有侵权请联系:admin#unsafe.sh