runC 是一个根据OCI(Open Container Initiative)标准创建并运行容器的 CLI tool,Docker 引擎内部也是基于 runC 构建的。2019 年 2 月 11 日,研究人员通过 oss-security 邮件列表披露了runC 容器逃逸漏洞的详情[1],该漏洞被分配CVE-2019-5736 编号。该漏洞允许恶意容器(以最少的用户交互)覆盖 host 上的runC 文件,从而在 host 上以root 权限执行代码。在下面两种情况下,通过用户交互可以在容器中以root 权限执行任意代码:
默认AppArmor 策略不会阻止此漏洞。对于Fedora 上的 moby-engine 软件包,默认 SELinux 策略也不会阻止此漏洞(因为容器进程似乎作为 container_runtime_t 运行);对于 Fedora 上的 Docker 软件包和 Podman 软件包不受此漏洞影响(它们将容器进程作为 container_t 运行)。但是可以通过正确使用用户命名空间(其中 host 的root 未映射到容器的用户命名空间)来阻止此漏洞。
目前除了runC 之外,Apache Mesos 和 LXC 也确认受到影响。攻击只可能发生在特权容器中,因为它需要 host 上的root 权限来覆盖runC 文件。2019 年 2 月 12 日,Seebug 平台收录了该漏洞[2]。2019 年 2 月 13 日,知道创宇 404 实验室漏洞情报团队开始漏洞应急,复现了这个漏洞。
攻击机 ip:192.168.177.1
目标机 ip:192.168.177.144
容器 ip:172.17.0.2
容器位于目标主机上
1、构建恶意容器:
a、在容器中 clone已有的 exp[3]
b、编辑 c中的 HOST 为攻击者 ip
c、使用 make编译生成 exploit、payload
d、chmod +x exploit payloadsh
e、在容器中运行./pwn.sh
2、攻击主机上使用 nc -lvp 4455 监听
3、在目标主机上执行 dockerexec 容器名 /bin/sh:
4、容器中能看到如下结果:
5、攻击主机上能看到反弹了目标主机 shell,成功逃逸:
1、漏洞修复
2、技术业务咨询
知道创宇技术业务咨询热线 :
400-060-9587(政府,国有企业)、028-68360638(互联网企业)
2020年09月17日,IBM发布安全公告,WebSphere Application Server中存在一个安全漏洞,该漏洞是由于WebSphere Application Server在处理XML数据时容易受到XML外部实体注入(XXE)攻击。
2020年9月22日,FastAdmin远程代码执行漏洞细节曝光,黑客登录前台会员中心,即可远程GetShell,风险极大。
2020年9月17日,VMware发布安全公告,在Spring Framework版本5.2.0-5.2.8、5.1.0-5.1.17、5.0.0-5.0.18、4.3.0-4.3.28和较旧的不受支持的版本中,发现了一个存在于Spring Framework中的反射型文件下载(Reflected File Download,RFD)漏洞(CVE-2020-5421)。
获取安全动态