ECS概念
弹性计算服务(Elastic Compute Service, ECS)是一种云计算基础设施服务。它可以轻松地创建和管理虚拟服务器,为用户提供弹性的计算能力。
弹性计算服务的主要特点包括:
-
弹性伸缩:用户可以根据实际需求自动或手动调整计算能力。可以根据业务负载的变化,动态地增加或减少虚拟服务器的数量,以确保应用程序始终具有足够的计算资源。
-
多种实例类型:弹性计算服务提供多种实例类型,包括通用型、计算型、内存型和存储型等,以满足不同应用场景的需求。用户可以根据应用程序的性能和存储需求选择合适的实例类型。
-
快速部署:用户可以通过简单的配置步骤快速部署虚拟服务器。云服务厂商提供了丰富的镜像和应用程序模板,用户可以选择适合自己需求的模板进行部署,大大减少了部署时间和复杂性。
-
安全可靠:弹性计算服务提供多层次的安全措施,包括数据加密、身份验证和访问控制等。此外,云服务厂商还提供了自动备份和容灾机制,以确保数据的安全性和可靠性。
-
弹性网络:弹性计算服务与云服务厂商的弹性 IP 和虚拟私有网络(VPC)等网络服务紧密集成,为用户提供弹性的网络配置选项。用户可以根据自己的需求灵活地创建和管理网络资源。
弹性计算服务广泛应用于网站托管、应用程序开发、大数据分析、企业应用部署等各种场景,为用户提供强大的计算能力和灵活的资源管理功能。
ECS不同叫法
各大云服务厂商关于ECS(弹性计算服务)的不同叫法:
-
亚马逊AWS(Amazon Web Services):EC2(Elastic Compute Cloud)
-
微软Azure:VM(Virtual Machines)
-
谷歌云(Google Cloud):GCE(Google Compute Engine)
-
阿里云(Alibaba Cloud):ECS(Elastic Compute Service)
-
腾讯云(Tencent Cloud):CVM(Cloud Virtual Machine)
-
华为云(Huawei Cloud):ECS(Elastic Cloud Server)
-
百度云(Baidu Cloud):BCS(Baidu Cloud Server)
ECS购买
ECS的购买也可称之为“创建实例”,这里以阿里云ECS举例
选择自身需要的配置
下单后,返回控制台,查看实例,这样就购买了一台ECS(创建了一个实例)
ECS安全问题
ECS主要安全问题:攻击者通过ECS实例上的相关权限,如SSRF漏洞,获取到实例元数据中的RAM角色的STS临时凭证信息,进而实现横向移动。
实例元数据(metadata)
ECS实例元数据是指实例ID、VPC信息、网卡信息等实例属性信息,支持在ECS实例内部通过访问元数据服务(Metadata Service)获取。通过该获取方式,您无需登录控制台或调用API,在实例内部即可访问实例信息,可以更便捷、安全地配置或管理正在运行的实例或实例上的程序。例如,运行在ECS实例中的应用程序,可以通过访问实例元数据服务获取绑定到实例上的RAM角色身份凭证(STS),以在不硬编码凭证的情况下访问授权资源(如OSS、KMS、其他ECS等)。
获取方式
不同云厂商提供不同的方式来获取实例元数据。以下是一些常见云厂商的实例元数据获取地址:
阿里云元数据地址:http://100.100.100.200/
腾讯云元数据地址:http://metadata.tencentyun.com/
华为云元数据地址:http://169.254.169.254/
亚马云元数据地址:http://169.254.169.254/
微软云元数据地址:http://169.254.169.254/
谷歌云元数据地址:http://metadata.google.internal/
阿里云服务器获取实例元数据示例
分别获取主机名称、mac地址、ipv4地址
访问控制RAM
RAM概念
阿里云RAM(Resource Access Management)是一种云身份和访问管理服务,它允许用户集中管理云资源的访问权限。通过RAM,用户可以创建和管理多个用户账号,并为这些账号分配不同的权限,从而实现对云资源的精细化访问控制。
阿里云RAM提供了以下功能:
- 用户管理:用户可以创建和管理多个子账号,并为每个子账号分配独立的访问密钥和权限。
- 权限管理:用户可以为每个子账号分配不同的权限,包括对云产品的访问、操作和管理权限。
- 身份验证:RAM支持多种身份验证方式,包括密码、证书和多因素认证,确保只有授权的用户可以访问云资源。
- 访问控制:用户可以通过RAM策略对云资源进行细粒度的访问控制,限制用户的权限范围,提高数据安全性。
- 资源共享:用户可以将云资源共享给其他子账号或外部账号,并设置访问权限和限制。
官方文档:什么是访问控制(RAM)_访问控制(RAM)-阿里云帮助中心
RAM角色
官方文档:什么是RAM角色_访问控制(RAM)-阿里云帮助中心
阿里云RAM角色(RAM Role)是阿里云RAM提供的一种身份类型,用于为云资源授权给其他阿里云实体(如云账号、用户、组等)提供访问权限。通过RAM角色,可以实现资源之间的信任关系,方便跨账号、跨地域或者跨云服务的资源访问和管理。
创建角色
为角色授权
将角色授予给实例
将角色授予给实例后,元数据会发生如下变化
获取STS临时凭证信息
模拟攻击
受害者进行了如下操作:
1、RAM新建了某个角色,例如banana,并为banana授予了一定的权限
2、受害者的云服务器进行了授予角色-banana
攻击者进行如下操作:
拿到了受害者云服务器上的SSRF漏洞(只要有相关权限即可,这里以SSRF举例)
查询IP,发现是阿里云主机
于是尝试通过SSRF获取实例元数据,发现存在ram
继续探测,找到角色名,构造完整获取路径
输入完整路径,拿到STS临时凭证!
简单手工利用一下,尝试使用OSS客户端连接受害者存储桶
横向移动利用工具
这里使用CF演示,该工具作者teamssix团队已将其下架,但是可通过ONE-FOX集成工具箱使用
通过cf config填入获取的临时凭证信息
接着cf alibaba ls一键列出当前访问凭证的云服务资源
OSS资源
ECS资源
通过 cf alibaba console 一键监管控制台
支持反弹shell
攻击者主机成功接受反弹
文终
写这篇文章的初衷是记录和分享我的学习心得,但技术的发展日新月异,如果各位大佬有不同的想法或建议,欢迎指正,也期待与您一起探讨交流!
标签:RAM,用户,安全,实例,ECS,服务器,阿里,Cloud From: https://blog.csdn.net/ggqiuhui/article/details/145000157