近日,intezer研究人员在Microsoft Azure发现了两个安全漏洞。漏洞存在于Azure App Services 云服务主要影响Linux 服务器App Service的git并且植入可以通过Azure Portal 访问钓鱼页面。攻击者可以利用第二个漏洞使用一个SSRF 漏洞来提权到APP Service完整的代码执行触发了第一个漏洞。PoC视频如下:
Azure App Services
Azure App Services是一个基于HTTP的web托管服务的应用可以通过Microsoft Azure Cloud 云或安装使用。App Services 允许开发者写一个服务应用程序HTTP,然后推送给git。然后Azure将处理所有部署细节并提供Azure域名的管理。
为开始使用App Services,用户必须首先创建一个App Service Plan,这是App Services将要使用的机器。机器的主要目的是托管App Service 容器。
一旦用户创建App Service,Azure它将创建一个包含两个容器节点的新容器Docker环境:管理节点和应用节点。
·app.azurewebsites.net – 指向应用HTTP web服务器;
·app.scm.azurewebsites.net – 指向Azure提供的App Service管理页面。
管理页面是微软开源项目Kudu提供的。在Linux 系统中有一个类似的项目叫做KuduLite。Kudu实例由管理节点托管,应用本身由应用节点托管。
在Linux系统中,KuduLite 实例回提供给用户的系统诊断信息,包括Docker如果用户选择使用日志、设置和其他环境信息。Azure 托管app的git,就会由Kudu 服务管理。
另一个有用的特点是kudu交互式在实例中运行bash的web接口和另一个名字webssh的web接口。
app节点中的有用性以root权限运行,研究人员可以通过SSH 以root登录权限Kudu 实例实际上是一个低权限用户:
用户只能与////home互动,不能在其他目录中写文件。但是在这个例子中安装了ClamAV。
Linux App Services环境如下图所示:
漏洞 1: KuduLite Takeover/EoP
在调查webssh如何连接到web接口到应用节点SSH研究人员在服务中发现了使用硬编码的凭证“root:Docker!” 访问应用节点:
因为KuduLite 实例也运行SSH,因此,您可以使用相同的凭证root权限登陆:
因为可以控制KuduLite,所以可以完全控制SCM web服务器可以监控用户发送。SCM web页面的HTTP请求、添加自己的页面、注入恶意JS内容到用户web页面。
研究人员首先试图从发送给服务器的请求中窃取SCM 用户cookie。此外,cookie还有一个HttpOnly 属性,即不能使用客户浏览器JS窃取。
但是攻击者仍然可以利用这个漏洞植入伪装SCM web钓鱼页面。用户可以选择App Services 来管理git 攻击者可以在库中添加恶意代码实现同样用途的驻留和传播git 服务器实例。
漏洞2: KuduLite本地文件包含或远程代码执行缺乏访问限制
位于第二个漏洞KuduLite API 中,与Kudu的 API非常相似。应用节点可以在没有任何访问验证的情况下发送请求KuduLite API。当web app中含有SSRF 漏洞问题很严重。
能够伪造GET 通过KuduLite VFS API 访问应用节点的文件系统:
攻击者可以很容易地窃取应用程序节点的源代码和其他资产。
可以伪造POST 请求的攻击者可以命令API在应用节点实现远程代码执行:
相比之下,在Windows 从应用节点发送到管理节点的包将被丢弃。
最后,当这两个漏洞串起时,攻击者可以执行远程代码。
总结
云服务使开发者能够快速、灵活地部署应用程序。但这些基础设施往往存在漏洞。微软研究人员Azure App Services发现了两个安全漏洞,攻击者可以使用这两个安全漏洞实现远程代码执行。研究人员向微软提交了这个漏洞,已经修复了。
本文翻译自:https://www.intezer.com/blog/cloud-security/kud-i-enter-your-server-new-vulnerabilities-in-microsoft-azure/如若转载,请注明原文地址: