上篇我们从云服务器、云安全与传统安全区别做了详细介绍。
本篇我们将从对象存储、云服务器、云数据库作为切入点,简单了解一下目前云服务暴露出的一些攻击面和常规的攻击利用手法。
01
对象存储
Bucket爆破
当我们不知道存储桶的名称时,可以通过访问地址网页的不同返回来爆破存储桶名。与目录爆破通过网页的状态码爆破不同的是,Bucket爆破是根据页面的返回内容判断。
任意文件上传输与覆盖
当Bucket的权限配置不当导致内容可更改时,便会造成任意文件的上传与覆盖。我们可以通过上传自定义的文件或覆盖已存在的文件来实现相应的钓鱼和投毒等行为。
AKSK泄露
如果目标的AccessKeyId、SecretAccessKey泄露,同时又刚好是较高的权限的话,我们便可通过部分工具来获取存储桶内的所有数据。
一般可以通过以下几种方法进行AKSK的收集
GitHub上面泄露的一些源码文件
网页或前端JS的一些信息泄露
从APP中反编译出的一些源码
一些第三方组件的泄露(如heapdump堆转储文件)
Bucket接管
在实际渗透过程中存在这样一种情况,管理员将cname的域名解析绑定到OSS存储桶的域名上,在删除相关存储桶时,忘记取消这个域名的绑定。此时如果新建一个同名的存储桶,便可让预先设定好的cname解析到我们自己的存储桶上。
特定的Bucket策略配置
有些Bucket会将其策略配置为特定的条件下才能触发,此时如果我们知道了相应的条件,便可绕过其检验直接读取相关内容。一般来说,这些配置策略需要测试或者配合一些ACL配置泄露来使用。
Bucket Object遍历
当Bucket的ListObjects权限配置不当时,我们可以直接获取到Bucket内的所有key,从而通过拼接这些key来遍历下载Bucket内的数据。
Bucket 策略配置可写
当我们对Bucket的策略具有可写权限的时候,就可以通过修改Bucket已有策略或者添加新的策略来获取桶内的敏感数据。
关于桶的攻防着重于桶内数据的查看和上传下载,而官方和第三方的工具对于桶相关的操作适配已经非常成熟了,我们需要注意的点在于尽量少的引起告警。
02
云服务器
SSRF+元数据
一般来说,各个云厂商都会提供一些相应云数据的查询接口,可以查询诸如IP、地域、实例ID等信息,甚至如果服务器内配置了相应的角色或者权限,还可能查询到一些临时凭据。
账号劫持
大部分平台的api explorer会给每个用户分配一台docker机器,如果我们可以对其进行提权、逃逸等相关操作,便有可能进入别人的容器中。
镜像投毒
大部分云服务商在创建系统服务器时都会提供初始镜像和自定义镜像。攻击者可以制作带有后门的恶意镜像,通过共享镜像或者本地存储恶意镜像进行操作系统投毒。
命令执行
第三方工具
官方工具
腾讯云、阿里云、华为云
权限维持
修改启动配置
新增AKSK
通过API来创建RAM账号来登录控制台
横向移动
云上的服务器主要聚焦于网段分布、凭据获取以及一些弱口令和口令复用。
通过私有网络功能或tccli工具查看网段信息。
为了方便运维以及安全考虑,管理员可能不设置密码,而是采用统一生成的SSH密钥对来进行登录,我们可以通过API来查看密钥绑定情况,从而利用相同的密钥对来进行远程登录。
关闭警告
在登录到控制台后,我们可以通过关闭部分告警和MFA认证来实现短暂的告警屏蔽。
大部分遇到的云服务器攻防是从云侧到业务侧,也就是从AKSK的泄露到具体服务器的沦陷。主要方法都大同小异,关键点就两个部分,控制台操作和官方API的调用。
03
云数据库
初始侦察
大部分情况下数据库的权限都是通过AKSK泄露获取的,剩下一部分是由于弱口令或配置文件泄露造成的。
后利用
利用DescribeDBInstances获取所有RDS的实例
利用CLI为其申请一个公网IP地址
通过API创建用户
为账号添加数据库权限
直接修改管理员密码
云数据库的攻击手法大同小异,除了常规的攻击面之外,云侧主要还是用户配置和AKSK泄露的问题。大部分情况下RDS都不会直接放在公网中,而是在单独的VPC子网内。
后续我们将通过具体攻击案例来说明云服务暴露出的攻击面和常规的攻击利用手法。
推荐站内搜索:最好用的开发软件、免费开源系统、渗透测试工具云盘下载、最新渗透测试资料、最新黑客工具下载……
还没有评论,来说两句吧...