本期将通过具体攻击案例,从实战中进一步了解云平台的攻防。
云平台资源到业务资源、业务资源到云平台资源。
前者由于云平台本身的漏洞或配置不当及最常见的AKSK泄露导致的。通过这些云平台本身的错误配置从而接管整个平台,最终获得云平台下所有服务资源的权限。
后者是从服务器或数据库的业务资源出发,通过系统漏洞或数据库配置从而获取部分服务器或容器的控制权,通过提权及容器逃逸到整个k8s集群,然后通过云平台的配置不当最终接管了整个的云平台。
接下来针对这两个经典的攻击路径来分别举例,让大家更加了解云平台的攻防。
这是一个非常经典的案例,从AKSK泄露到整个云上资源的沦陷
- 首先通过对业务系统的JS审计,发现相关AKSK硬编码在前台JS代码中,只要注册相关系统的账户就可以获取AKSK。
- 获取AKSK之后,发现相关的Endpoint是七牛云,但查看AKSK结构像是阿里云,最终经过探测发现,是阿里云中转了一层七牛云平台,我们可以直接利用获取的AKSK来操作阿里云的资源。
- 通过利用官方的API创建了一个后台用户,登录阿里云控制台,同时利用官方的OSS Browser查询桶里的数据,发现了大量的内网关键设施分布图和大量的身份信息。
- 利用Alibaba Cloud Client接管阿里云的ECS服务器,同时可在上面匿名登录执行命令。通过信息收集获取到服务器中数据库配置,登录其中开放的服务。
- 利用创建的管理员用户登录控制台后,添加数据库的管理员账户登录数据库,获取大量的敏感信息。
在我们拥有高权限的AKSK的情况下,剩下的就是按部就班的进行相关信息的查询和服务器的接管。
- 问题的本质在于集群和数据库的配置不当,准确来说是由于k8s的多租户隔离做的不够完善。
- 故事起源PostgreSQL的云数据库存在严重漏洞,我们可以通过未授权访问相关的数据库信息。
- 利用实例上的cronjob进行本地提权获取到容器的root权限,同时发现该容器运行在k8s集群中,但当前容器与k8s的API Server网络不通。
- 后续发现可通过共享PID namespace向pod中相邻的特权容器执行横向移动,我们可以从容器逃逸到底层k8s节点。
- 在进入相关节点之后,可以利用kubelet凭据访问敏感资源,包括一些服务账户和pod信息。在检查这些pod信息时,发现同一集群中还有其他用户的相关pod,这意味着我们或许可以尝试对这些pod进行未授权访问。
在进行权限测试的时候,发现这些容器的镜像是由统一的私有仓库进行存储和部署的,且我们对这个私有仓库的容器镜像注册表有查看和修改权限,这意味着我们对这批私有镜像有着覆盖权限。此时我们便可写入恶意镜像,在后续的容器创建过程中,便会触发恶意镜像从而获取其他容器的权限。
原文始发于微信公众号(网星安全):云服务器系列科普 | 攻击实战案例
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论