云上服务-OSS存储桶渗透-AKSK两种利用特征-ECS元数据横向移动 #
OSS #
OSS介绍 #
特别提示访问阿里云不要开启抓包可能会封号
各个云厂商对云服务的叫法都不统一,这里统一以AWS为例。
S3 对象存储Simple Storage Service,
简单的说就是一个类似网盘的东西
EC2 即弹性计算服务Elastic Compute Cloud,
简单的说就是在云上的一台虚拟机。
RDS 云数据库Relational Database Service,
简单的说就是云上的一个数据库。
IAM 身份和访问管理Identity and Access Management,
简单的说就是云控制台上的一套身份管理服务,可以用来管理每个子账号的权限
不同厂商对象存储名字不同
#对象存储各大云名词:
阿里云:OSS 腾讯云:COS 华为云:OBS
谷歌云:GCS 微软云:Blob 亚马逊云:S3
而且OSS可以
创建OSS桶 #
购买服务后创建名字注意必须唯一
可以看到自动我们域名变成了这个
我们上传一个文件还访问不到需要临时凭证
这时候我们修改ACL策略 先关闭这个
公开读取-需要文件名 #
修改读写为公开读取
原来不修改的话你访问是不会下载的
ameti14.oss-cn-beijing.aliyuncs.com/44.jpg
修改后无需凭证即可下载
公开上传-任意上传 #
如果你的权限是开启了公共读写-那么就可以发包上传了
可以看到200了
文件列表多出了文件
或者开启策略
ossPutObject
成功上传!
OSS-目录遍历 #
条件是
1、公共读取-私有也可以
2、Policy(listObject)
-权限Bucket授权策略:设置ListObject显示完整结构
OSSFileBrowse-1.0-SNAPSHOT-工具查看内容
设置权限是list
当你再次访问基本的域名即可遍历OSS全部内容-不用加文件名
https://ameti14.oss-cn-beijing.aliyuncs.com/
工具可以访问测试并且可以测试上传 仅限简单漏洞测试
工具测试查看有无敏感泄露内容
OSS-任意修改策略 #
https://wiki.teamssix.com/CloudService/S3/bucket-policy-able-to-write.html
设置了这个策略并且授权全部账号后攻击者可以任意修改你的策略来实现访问
就是修改下面这个语法
OSS-域名接管 #
原理如下:
比如你的网站
ameti14.oss-cn-beijing.aliyuncs.com/ -> 绑定域名 ti14cham.sec.cloud 上去
然后你没用了你把这个ameti14.oss-cn-beijing.aliyuncs.com桶删除了X 但是注意你的域名还在和你的桶绑定
而你的桶因为释放了别人就可以创建同一地区,同一名字实现接管域名 当你访问那个域名后会泄露本身的如alixx地址所以你知道可以地区域名接管
AKSK泄露接管 #
AKSK不同厂商特征
怎么得到AKSK:
1:JS泄露
2:APP反编译泄露
3:拿到shell了翻文件
4:源码泄露
Ak/SK特征识别:
亚马逊云 (Amazon Web Services, AWS)的开头标识一般是"AKIA"
Google云 Cloud Platform (GCP)的 开头标识一般是 "GOOG"
Microsoft Azure 的 Access Key 开头标识一般是 "AZ"
IBM 云 (IBM Cloud) 的 Access Key 开头标识一般是 "IBM"
Oracle云 (Oracle Cloud) 的 Access Key 开头标识一般是 "OCID"
腾讯云 (Tencent Cloud)的Access Key开头标识一般是 "AKID"
阿里云 (Alibaba Cloud)的Access Key开头标识一般是 "LTAI"
华为云 (Huawei Cloud)的 Access Key是20个随机大写字母和数字组成
百度云 (Baidu Cloud) 的 Access Key开头标识一般是 "AK"
京东云 (JD Cloud)的Access Key开头标识一般是 "JDC_"
联通云 (China Unicom Cloud)的Access Key开头标识一般是 "LTC"
移动云 (China Mobile Cloud)的Access Key开头标识一般是 "YD"
中国电信云 (China Telecom Cloud)的开头标识一般是 "CTC"
参考:https://wiki.teamssix.com/CloudService/more/
Ram用户权限-AKSK #
RAM账号就是分配用户给他们用户可以用这个来登录阿里云,而这个用户有相应的AK和SK,不同用户权限由用户分配
通过RAM控制台创建用户会生成对应的AKSK
生成后记得复制不然看不了
这里账号密码可以用户ram登录 AKSK用户调用
https://signin.aliyun.com RAM用户登录网址
使用工具云资产管理工具图形化界面
https://github.com/wgpsec/lc
https://github.com/wgpsec/cloudsword
https://github.com/dark-kingA/cloudTools
https://github.com/iiiusky/alicloud-tools
这里我们输入AKSK但是还是不行因为用户也是有授权的
当你给了这些全部权限后
成功识别当前账号的ECS 你可以点击接管会自动创建一个RAM用户进行点击RAM登录上去账户
所以AKSK是要看运气的看权限的不然也没啥用
根据AKSK权限区分控制OSS或者账号全部资产
下面是官方工具需要AKSK登录
云账户下面的AKSK #
可以看到我们用户下面本来就有AKSK
云账号的AKSK默认就是绑定云账户,云账号什么权限他就是什么权限不需要额外设置 一种ram是下面分支而云账号的AKSK是他的载体
生成后它不需要设置什么权限-只要你账户有OSS他就可以看有ECS他就可以看,并且可以生成RAM用户
ECS-元数据 #
元数据 #
实例元数据是指实例ID、VPC信息、网卡信息等实例属性信息,支持在ECS实例内部通过访问元数据服务(Metadata Service)获取。 通过该获取方式,您无需登录控制台或调用API,在实例内部即可访问实例信息,可以更便捷、安全地配置或管理正在运行的实例或实例上的程序。
阿里云元数据地址: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/
1、前提条件:
-弹性计算配置访问控制角色
-SSRF漏洞或已取得某云服务器权限(webshell或漏洞rce可以访问触发URL)
RAM用户不同,RAM角色没有永久身份凭证(登录密码或访问密钥),需要被一个可信实体扮演 分配角色到ECS上面
获取关键信息
http://100.100.100.200/latest/meta-data/
http://100.100.100.200/latest/meta-data/ram/security-credentials/ 获得用户
获取临时凭证
http://100.100.100.200/latest/meta-data/ram/security-credentials/xxxxxx 访问后获得AKSK以及TOKEN然后使用云管理工具连接
利用条件:SSRF,或者得到SHELL
所以条件下:横向移动
1:你拿到权限里面是ROOT你可以直接访问对应有没有用户获得AKSK如果对方AKSK权限大进而扩大战果
2:可以利用SSRF获得AKSK
基础利用 #
授予角色
访问对应的元数据获得用户然后访问用户得到AKSK放入利用工具利用
一旦收回就显示404了