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

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

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

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

工具目录

分类

查看所有分类
Loading categories
工具/GitHubGitHub/twistlock/whoc
容器安全漏洞利用数据泄露云安全
GitHubtwistlock/whoc

whoc

一个将底层容器运行时外泄到远程服务器的容器镜像

查看仓库
1351123年前Kitploit 审核通过

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

whoc

一个容器镜像,用于提取底层容器运行时并将其发送到远程服务器。 探探您最喜欢的CSP容器平台的底层容器运行时!

  • WhoC在Defcon 29 Cloud Village上的演讲
  • Azurescape - 基于whoc的研究,首次实现公有云中的跨账户容器接管(奖金70,000美元)

它是如何工作的?

正如runc CVE-2019-5736所示,传统的Linux容器运行时通过/proc/self/exe向其所运行的容器暴露自身。whoc利用这一链接读取正在执行它的容器运行时。

动态模式

这是whoc的默认模式,适用于动态链接的容器运行时。

  1. whoc镜像的入口点设置为/proc/self/exe,并且镜像的动态链接器(ld.so)被替换为upload_runtime。
  2. 镜像运行后,容器运行时在容器内部重新执行自身。
  3. 由于运行时是动态链接的,内核会将我们的虚假动态链接器(upload_runtime)加载到运行时进程中,并将执行权传递给它。
  4. upload_runtime通过/proc/self/exe读取运行时二进制文件,并将其发送到配置的远程服务器。

替代文本

等待执行模式

对于静态链接的容器运行时,whoc提供了另一种风格:whoc:waitforexec。

  1. upload_runtime作为镜像入口点,并以whoc容器的PID 1运行。
  2. 用户需要exec进入whoc容器,并调用指向/proc/self/exe的文件(例如docker exec whoc_ctr /proc/self/exe)。
  3. exec完成后,容器运行时在容器内部重新执行自身。
  4. upload_runtime通过/proc/$runtime-pid/exe读取运行时二进制文件,并将其发送到配置的远程服务器。

替代文本

本地尝试

您需要安装docker和python3。克隆仓库:

root@kitploit:~
git clone [email protected]:twistlock/whoc.git && cd whoc

设置一个文件服务器来接收提取的容器运行时:

root@kitploit:~
mkdir -p stash && cd stash
ln -s ../util/fileserver.py fileserver 
./fileserver

在另一个终端中,在您选择的容器环境中运行whoc镜像,例如Docker:

root@kitploit:~
cd whoc
docker build -f Dockerfile_dynamic -t whoc:latest src  # 或 ./util/build.sh
docker run --rm -it --net=host whoc:latest 127.0.0.1  # 或 ./util/run_local.sh

可以看到文件服务器接收到了容器运行时。如果您在原版Docker下运行whoc,接收到的容器运行时应该是runc。

--net=host仅在本地测试中使用,以便whoc容器能够通过127.0.0.1轻松访问主机上的文件服务器。

其他平台

默认情况下whoc为linux/amd64构建,但也支持其他CPU架构。等待执行模式可以像往常一样构建。要为其他CPU架构构建动态模式的whoc,您必须使用目标架构上动态链接器的路径填充PLATFORM_LD_PATH_ARG构建参数。

用于arm64的示例构建脚本位于util/build_arm64.sh。

帮助

whoc主二进制文件upload_runtime的帮助信息:

root@kitploit:~
用法: upload_runtime [选项] <服务器IP>

选项:
 -p, --port                 远程服务器端口,默认为8080
 -e, --exec                 等待执行模式(用于静态容器运行时),等待对容器的exec操作发生
 -b, --exec-bin             在exec模式下,覆盖为exec创建的默认二进制文件,默认为/bin/enter
 -a, --exec-extra-argument  在exec模式下,向运行时传递一个额外参数,使其不会快速退出
 -r, --exec-readdir-proc    在exec模式下,不猜测运行时PID(这给whoc一次捕获运行时的机会),
                             而是通过搜索'/proc'下的新进程来查找运行时
下载工具