相关概念
云概念
“云”的概念涉及到云计算,云计算的基本概念是将计算机处理和存储能力从本地环境(如个人电脑或本地服务器)转移到远程的服务器集群上,这些服务器通过互联网连接在一起。用户可以通过互联网访问这些服务器上的应用程序、数据和服务,而无需担心管理和维护底层的基础设施。
在我看来,自己购买服务器或租用服务器,成本高、不安全,频繁面临ddos等攻击的风险,而云平台成本更低,可扩展性强,安全性,方便管理,同时提供更好的数据备份和容灾能力,这也就是为什么越来越多的中小企业选择云平台的原因。
说白了,就是将机子部署到云端。所以云端的渗透的思路本质上和常规渗透思路没有太大区别,也是基本的渗透测试流程,只是多了一些新的概念,除了常规的渗透测试方式,也多了些新的可以利用的漏洞。本文涉及的是AK/SK泄露利用,其实就是敏感配置信息泄露的后续利用方式。
云的相关术语
RDS
- 关系型数据库服务(Relational Database Service,简称 RDS)是一种稳定可靠、可弹性伸缩的在线数据库服务。
- RDS 采用即开即用方式,兼容 MySQL、 SQL Server 两种关系型数据库,并提供数据库在线扩容、备份回滚、性能监测 及分析功能。
- RDS 与云服务器搭配使用 I/O 性能倍增,内网互通避免网络瓶颈。
对象存储 OSS(理解为网盘)
OSS 是对象存储服务(Object Storage Service)的缩写,是阿里云(Alibaba Cloud)提供的一种高度可扩展的云存储服务。对象存储是一种用于存储和检索大量非结构化数据的技术,例如图片、视频、文档、备份文件等。
OSS存在如下的访问控制机制:
对 OSS 的资源访问分为拥有者访问、第三方用户访问。这里的拥有者指的是 Bucket 的拥有者,也称为开发者。
第三方用户是指访问 Bucket 里资源的用户。 访问又分为匿名访问和带签名访问。
对于 OSS 来说,如果请求中没有携带任何和身份相关的信息即为匿名访问。
带签名访问指的是按照 OSS API 文档中 规定的在请求头部或者在请求 URL 中携带签名的相关信息。
OSS 提供 Bucket 和 Object 的权限访问控制。
关于oss的相关概念,比如Bucket和Object,具体可以看阿里云的说明文档:OSS产品中涉及的基本概念_对象存储 OSS(OSS)-阿里云帮助中心
ECS
- 云服务器(Elastic Compute Service,简称ECS)
安全组
- 安全组是一种虚拟防火墙,具备状态检测和数据包过滤功能,用于在云端划分安全域。
- 同一安全组内的ECS实例之间默认内网网络互通。
AK/SK
云主机通过使用Access Key Id / Secret Access Key加密的方法来验证某个请求的发送者身份。Access Key Id(AK)用于标示用户,Secret Access Key(SK)是用户用于加密认证字符串和云厂商用来验证认证字符串的密钥,其中SK必须保密。 AK/SK原理使用对称加解密。
云主机接收到用户的请求后,系统将使用AK对应的相同的SK和同样的认证机制生成认证字符串,并与用户请求中包含的认证字符串进行比对。如果认证字符串相同,系统认为用户拥有指定的操作权限,并执行相关操作;如果认证字符串不同,系统将忽略该操作并返回错误码。
大部分云厂商都支持AK/SK的认证方式
以阿里云为例:
阿里云用户可以在管理控制台里自行创建 Access Key,Access Key是由AccessKey ID 和 AccessKey Secret 组成(即AK和SK)。
其中 ID 是公开的,用于标识用户身份,Secret 是秘密的,用于用户鉴别
当用户向 OSS 发送请求时,需要首先将发送的请求按照 OSS 指定的格式生成签名字符串;然后使用 AccessKey Secret 对签名字符串进行加密(基于HMAC 算法)产生验证码(验证码带时间戳,以防止重放攻击)。OSS 收到请求以后,通过 AccessKey ID 找到对应的 AccessKey Secret,以同样的方法提取签名字符串和验证码,如果计算出来的验证码和提供的一样即认为该请求是有效的;否则,OSS 将拒绝处理这次请求,并返回 HTTP 403 错误。
AK/SK泄露利用
漏洞产生原因
由于开发的不规范或者配置不当,以及一些其它漏洞,可能会导致AccessKey泄露,进而导致攻击者通过AKSK接管云主机。
常见的渗透场景如下:
- APK文件中存放Access Key;
- Web页面/JS文件等存在Access Key泄露
- Github查找目标关键字发现Access Key与AccessKey Secret;
- 拥有WebShell低权限的情况下搜集阿里云Access Key利用;
利用工具
常见的利用工具如下:
- OSS Browser
- OSSUTIL
- IDEA中的Big Data Tools插件
- API Explorer
- 第三方平台 (如行云管家)
其中OSS Browser、OSSUTIL、Big Data Tools只能对于OSS进行操作,API调试或者第三方写好的工具可以操控ECS。
连接oss时除了AK和SK,还需要OSS外网地址,格式一般如下:
1 | https://[Bucket名称].oss-区域.aliyuns.com |
下面放一个真实案例:
拿到一个web服务器的shell,在其中翻找一些有用的配置文件,找到某个 .propertiespei配置文件,里面发现如下内容:

刚开始看到oss的url地址后,只想到了用oss连接的相关工具,但是连接oss只能对oss进行操作,除了看有没有敏感信息,没有多大用处。后来才发现oss的key也是AKSK形式,可以直接通过连接AKSK接管对应的云主机的,所以直接尝试用行云管家连接, 附上地址:https://yun.cloudbility.com/。

直接选择阿里云,点击下一步,输入Api凭证,即拿到的AK和SK,即可连接

可以看到能够接管如下很多主机实例:

添加后进入管理界面,尝试选择ssh连接云主机,发现还是需要密码的:

但是可以进行重置操作系统密码和管理终端密码的操作(得确保取得客户授权后才能操作)

除了用行云管家进行接管,还可以使用阿里云官方的api,达到执行命令的效果,具体可以参考下面这个链接:阿里云OpenAPI开发者门户,之前测试时没有留下截图,这里就不再次尝试了。
自动化利用工具
在看其他人文章的时候,发现居然早就有佬已经写了阿里云api的利用工具,链接地址如下:
GitHub - iiiusky/alicloud-tools: 阿里云ECS、策略组辅助小工具
通过该工具,利用获得的AKSK即可自动化执行上述的所有操作,包括查看所有实例信息、执行命令等等操作。