Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2019-5736-Custom-Runtime — CVE-2019-5736 在自写的容器运行时中实现,以深入理解该漏洞。 | Kitploit
工具/GitHubGitHub/giverofgifts/cve-2019-5736-custom-runtime
漏洞分析漏洞利用渗透测试学习与教育容器逃逸二进制利用
GitHubgiverofgifts/cve-2019-5736-custom-runtime

CVE-2019-5736-Custom-Runtime

CVE-2019-5736 在自写的容器运行时中实现,以深入理解该漏洞。

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
查看仓库
16年前尚未审核

CVE-2019-5736 自定义沙盒

概述

CVE-2019-5736 通过一个浅层的、自编写的容器运行时实现,以理解该漏洞利用。

该漏洞利用基于(且几乎全部拷贝自)twistlock 的 runc-poc:https://github.com/twistlock/RunC-CVE-2019-5736/tree/master/malicious_image_POC

容器运行时 (quarantine)

详情请参见代码文档。

root@kitploit:~
Usage: quarantine [OPTIONS] [BINARY and its ARGS]

--rootfs: (mandatory) Specify a rootfs for the container.
--urange: Specify a urange start_host:end_host,start_guest.
--grange: Specify a grange start_host:end_host,start_guest.
--uid:    Specify the desired UID in the container.
--ugd:    Specify the desired GID in the container.
--supp:   Append supplementary groups from the specified grange to the process running in the container.

解除除用户命名空间(user ns)之外的所有命名空间的共享。用户命名空间在特殊情况下才会解除共享,即当指定了 urange、grange、uid 和/或 gid 时。

漏洞利用设置

此过程已在 Ubuntu 18.04 上测试并完成。

  1. 获取一个 rootfs(例如 bionic)
    • mkdir rootfs
    • sudo debootstrap bionic ./rootfs
  2. 获取 libcap 源码
    • git clone https://github.com/mhiramat/libcap
  3. 修改 libcap
    • cat exploit_code_for_shared_lib.c >> <any cap*.c, I used cap_alloc.c>
    • make
  4. chroot 进入 rootfs 并安装 libcap-dev,以便您可以简单地链接到修改后的 libcap.so
    • sudo chroot rootfs
    • apt install libcap-dev
  5. 将生成的 libcap.so.2.25 文件复制到相应的 rootfs 目录中 -sudo cp libcap.so.2.25 rootfs/lib/x86_64-linux-gnu
    • 注意: 对我来说,已经存在指向该确切 libcap 文件版本的链接,因此我无需再链接它
    • 注意: 此路径可能会变化,请始终查看编译后的 quarantine 期望 libcap 的位置:ldd quarantine

运行漏洞利用

例如:sudo ./quarantine --rootfs rootfs /shebang_exploit 或 ./quarantine --rootfs rootfs --uid 1 /shebang_exploit。

只要您在主机上保留 CAP_DAC_OVERRIDE 或 CAP_SYS_ADMIN 权限(即在使用 sudo 时不解除用户命名空间的共享,因为这会丢弃父命名空间中的权限),或者您拥有主机上的文件,它就能正常工作。

下载工具
  • 编译并将其他文件复制到 rootfs 中
    • sudo cp shebang_exploit rootfs/
    • sudo gcc -o rootfs/root/payload payload.c
    • sudo gcc -o rootfs/overwrite_sndbx_runtime overwrite_sndbx_runtime.c