使用Splunk调查混合云环境中的横向移动与漏洞利用

3 阅读7分钟

[Blue Team Labs Online Write-up] Rotten Cloud (使用Splunk调查混合云基础设施)

作者:Chicken02487
阅读时间:约 7 分钟 · 2025年12月2日

1 次收听
分享

作为 C.R.I.S.I.S. 响应团队的一员,你被指派调查 Zeta-9 公司量子研究部门的混合云环境。你需要使用 Splunk 分析基于云端的日志,以确定威胁行为者是否已经横向移动到 Zeta-9 的云基础设施中,并迅速采取行动,阻止他们进一步深入网络。

事件响应

标签: Splunk, Cloud

场景

Zeta-9 公司运营着一个支持其量子研究部门的混合云基础设施,高度敏感的数据存储在安全的云环境中。授权人员通过一个基于 Web 的研究门户(作为正在进行项目的主要界面)访问这些数据。在发生入侵事件后,C.R.I.S.I.S 必须将调查范围扩展到 Zeta-9 的云环境——分析活动、识别横向移动的迹象,并确定威胁行为者是否已经转移到云基础设施中。时间至关重要;在他们进一步深入网络之前阻止他们,可能是控制损害的仅有方法。

背景

  • Patient Z-ero 调查中,威胁行为者成功入侵了 FortiGate 防火墙,从而通过 VPN 获得了内部网络的访问权限。
  • The Walking Packets 调查中,威胁行为者入侵了监控平台,并从监控视频记录中获得了 JUMPHOST 用户的凭证。
  • The Headless Dead 调查中,威胁行为者利用从监控平台获取的本地管理员凭证,并通过 VPN 访问内部网络,实施了基于 WMI 的横向移动至 JUMPHOST,并外泄了 AWS 密钥。

环境感知

证据与工具发现

我们在这台调查机器上只有 Splunk,且已经为我们添加了书签。

这里我们共有来自所有索引的 4,028 个事件,因此查询起来应该很轻松且非常快。

hostsource 字段显示,我们正在处理涉及 AWS 和 Azure 的多云环境。根据之前的调查,我们已经知道威胁行为者从 JUMPHOST 获取了 AWS 密钥,因此我们的起点应该是 AWS。

sourcetype 字段显示,我们有来自 AWS 的 CloudTrail 日志,另一方面,还有来自 Azure 的 StorageBlobLogs 和 AppServiceHTTPLogs,因此我们也将处理 Azure 的存储 Blob 和 Web 应用程序日志。

调查

Q1) 分析 AWS CloudTrail 日志并识别攻击者的 IP 地址。注意,合法用户是从印度远程工作的。

我首先使用简单查询来展示 CloudTrail 中的每个事件,可以看到除了正常的 cloudtrail.amazonaws.com 之外,还有 8 个源自 172.235.129.221 的事件,我们需要深入调查。

查询: index=* sourcetype=CloudTrail | sort _time

我们可以看到这个 IP 地址并非来自印度,而是来自美国,特别是归属于 Akamai,因此它一定是一个虚拟机(可能是 Linode?)。

在将源 IP 地址添加到查询后,可以看到该个体发起的 3 个不同事件。

查询: index=* sourcetype=CloudTrail sourceIPAddress="172.235.129.221" | sort _time

我们可以看到,之前调查中外泄的同一个访问密钥在此被使用,这证实了 172.235.129.221 确实是威胁行为者。该访问密钥属于 “VictorVenom”。

答案: 172.235.129.221

Q2) 攻击者对 EC2 实例执行了侦察。在这次侦察活动中产生了哪个具体的 API 调用/事件名称?

威胁行为者发起的第一个事件是 DescribeInstances,该调用可用于检索有关 Amazon Elastic Compute Cloud (EC2) 实例的信息,例如它们的状态、IP 地址和其他元数据。

答案: DescribeInstances

Q3) 在收集了 EC2 实例的信息后,攻击者试图查找实例密码以建立连接。请识别包含 Windows 实例密码的 secretID。

来自该威胁行为者的第二个事件是使用 GetSecretValue 来检索 zeta9/windows/admin-password 的密钥。

答案: zeta9/windows/admin-password

Q4) 攻击者发现并针对 S3 存储桶以下载敏感数据。找出被攻击的唯一 S3 存储桶的数量以及从所有存储桶下载的文件总数。

之后,威胁行为者从 3 个不同的 Amazon S3 存储桶中下载了 5 个对象/文件,包括数据库备份、秘密 API 密钥、威胁分析报告和 Zombie 15 实验。

查询: index=* sourcetype=CloudTrail sourceIPAddress="172.235.129.221" eventName=GetObject | sort _time | table eventTime,requestParameters.bucketName,requestParameters.key

答案: 3, 5

Q5) 通过分析受感染 EC2 实例的浏览历史,攻击者发现了一个指向秘密 Web 门户的痕迹,该门户供受限人员使用。通过与其他日志源的交叉关联,找出该秘密门户的 URL。

注意:HTTP 事件的时间戳可能不准确,我已经问过作者,所有这些事件应该发生在 AWS 事件之后、Storage Blob 事件之前。

在检索 S3 对象后,威胁行为者发现了秘密 Web 门户,该门户可以执行系统命令,使用可能从 AWS S3 对象中获得的秘密,向 Azure 托管身份请求 OAuth 访问令牌。

查询: index=* "172.235.129.221" sourcetype=AppServiceHTTPLogs | sort _time

顺便说一下,组织站点是 zeta9-research-portal.azurewebsites.net

答案: zeta9-research-portal.azurewebsites.net

Q6) 攻击者通过利用一个漏洞,横向移动到了另一个云环境。请提供用于这次跨云活动的完整命令。

正如从前面的问题中已经发现的,威胁行为者利用了一个暴露的 Azure 实例元数据服务(IMDS)端点,从本地元数据 IP 169.254.130.3 获取了一个托管身份访问令牌。Azure VM 使用该端点向运行在 VM 内的应用程序提供凭证。

通过发送此请求,攻击者可以诱使 VM 为 Azure 管理 API(https://management.azure.com/)签发一个 OAuth 令牌。

有了该令牌,他们可以根据 VM 的身份权限访问或修改 Azure 资源。

命令: curl -H secret:4ebc6d54-f421-4321-81c4-fd9e29d28a0f 'http://169.254.130.3:8081/msi/token?api-version=2017-09-01&resource=https://management.azure.com/'

Q7) 在获得对 Azure 环境的访问权限后,攻击者能够列出并访问云存储服务中的数据。请识别被攻击的特定存储 blob 容器名称。

获得 OAuth 令牌后,威胁行为者现在可以访问 Zeta 9 研究部门的云存储服务中的 Azure Storage Blob。第一个事件是 ListContainers,它将返回指定存储帐户下的容器列表。

查询: index=* "172.235.129.221" sourcetype=StorageBlobLogs | sort _time

然后,威胁行为者使用 ListBlobs 列出 “quantum-research-secrets” blob 容器下的存储。

答案: quantum-research-secrets

Q8) 确定攻击者在攻击期间从 Azure blob 存储成功下载了多少个文件。

威胁行为者随后从 “quantum-research-secrets” blob 容器中下载了 6 个不同的文件。

查询: index=* "172.235.129.221" sourcetype=StorageBlobLogs OperationName=GetBlob | sort _time | table TimeGenerated [UTC]",ObjectKey

答案: 6

Q9) 为了进入秘密部门系统,攻击者通过部署恶意内容篡改了组织的网站。请提供托管了被篡改网站代码的 URL。

现在我们可以回到 Web 服务日志,列出所有命令。可以看到威胁行为者将 index.html 文件替换为来自 https://pastebin.com/raw/sBEs83q3 的内容。

查询: index=* "172.235.129.221" sourcetype=AppServiceHTTPLogs | sort _time | table "TimeGenerated [UTC]", CsUriQuery

尽管 Pastebin 内容已经不存在,但我们仍然可以看到被篡改网站的存档。该被篡改的网站现在用于诱骗受害者执行带有 “filefix” 技术的恶意命令,该技术由 Mr.d0x 发明。

答案: https://pastebin.com/raw/sBEs83q3

Rotten Cloud 上的 FIRST-BLOOD!- Blue Team Labs Online

我刚刚在 Blue Team Labs Online 的 Rotten Cloud 挑战中取得了 First-Blood!这是一个为网络防御者设计的游戏化平台,用于测试……
blueteamlabs.online CSD0tFqvECLokhw9aBeRqpNzLTXFlojmzFn6OlyTg9UXZ0dCc3IqMwPPOCk+emZ/oAuwo2O7jNMHv+zJ33baHzRMarQ5Z2EhdxW6aBYMKWJ3Oo+5poiwIIojtJMOpievv5XfgxAR/fMF4sLuEFUzrqE8VwopW4/Ef/IAIaGSe5VI+H1GRRJFb44MX16dBtPe