CD's second night

Azure-Azure Blob Container to Initial Access

type
status
date
slug
summary
tags
category
icon
password
概览:错误配置公共 Azure Blob 存储(相当于 S3 存储桶)而导致数据泄露
 
Azure Blob Storage 是 Microsoft Azure 提供的一种可扩展的安全对象存储服务。它允许企业存储和管理文件、图像、视频和备份等数据。Blob 存储服务具有很高的可用性,是一种具有成本效益的选择。
用提供的 URL 中的 index.html 替换上面的 CSS 文件 - https://mbtwebsite.blob.core.windows.net/$web/index.html ,我们可以看到这样就加载了原网站,并证实了我们的假设,即网站是托管在 Azure Blob Storage 服务上的。我们还可以通过检查网络服务器响应头来验证这一点。
我们可以看到请求中的rawcontent字段没显示完全 因为被截断了
使用 Select-Object 扩展RawContent
可以看到服务器为: Windows-Azure-Blo 让我们来看看 URL 的组成部分。
所以我们可以探索一下 $web 容器,看看是否还能找到其他东西。 https://mbtwebsite.blob.core.windows.net/$web?restype=container&comp=list
notion image
这将返回 XML 文档中的所有 Blob!我们还可以通过指定 / 分隔符,只返回容器中的目录。 https://mbtwebsite.blob.core.windows.net/$web?restype=container&comp=list&delimiter=%2F
notion image
只看到了网站源代码中的 static 目录。让我们检查一下容器是否启用了版本控制,以及是否能看到任何以前版本的文件。启用 Blob 存储版本控制后,它会自动维护对象的先前版本,并用时间戳来识别它们。 https://mbtwebsite.blob.core.windows.net/$web?restype=container&comp=list&include=versions
notion image
然而并没有这个parameter(指version)
通过查看微软文档,我们发现只有 2019-12-12 及以后的版本才支持 versions 参数。 我们可以通过设置 curl 的 x-ms-version 标头来指定操作的版本。 curl -H "x-ms-version: 2019-12-12" 'https://mbtwebsite.blob.core.windows.net/$web?restype=container&comp=list&include=versions'
美化一下发现存在script-transfer.zip和他的版本id curl -H "x-ms-version: 2019-12-12" 'https://mbtwebsite.blob.core.windows.net/$web/scripts-transfer.zip?versionId=2024-03-29T20:55:40.8265593Z' --output scripts-transfer.zip
notion image
curl -H "x-ms-version: 2019-12-12" 'https://mbtwebsite.blob.core.windows.net/$web/scripts-transfer.zip?versionId=2024-03-29T20:55:40.8265593Z' --output scripts-transfer.zip
解压缩后,我们可以看到两个脚本。下面是 stale_computer_accounts.ps1 的内容。它可识别、禁用过时的计算机账户并将其移至 "review "OU(域内容器对象)。我们看到它包含 Active Directory 管理帐户 marcus_adm 的凭据!
还可以看到下面的 entra_users.ps1 脚本,它可以对所有 Entra AD 用户进行审计,而且也有硬编码的凭据
让我们运行 entra_users.ps1 脚本
notion image
成功使Entra AD用户在Mega Big Tech Azure账户中获得访问权限,并能够枚举所有用户。
接下来枚举用户 里面存在flag Get-AzADUser -SignedIn | fl
notion image
Defense
  1. 删除blob历史版本
  1. 脚本中别存硬编码数据(虽然很多人会这样做)
Loading...