这是针对 CVE-2021-25741 漏洞的利用程序。 该漏洞允许在新建的 POD 中以读写权限挂载 Node 文件系统。
你可以在这里了解更多关于该漏洞的信息:
https://security.googleblog.com/2021/12/exploring-container-security-storage.html
我不是该漏洞的作者,只是编写了这个利用程序。
感谢 @russtone 和 @maximusfox 在利用程序开发过程中提供的帮助。
存在漏洞的 kubelet 版本:
只需运行 run.sh 并等待即可 :) 利用过程会花费一些时间(对我来说是 10-20 分钟),因为它基于竞态条件。
chmod +x run.sh; ./run.sh

当你收到 "Success" 消息时,你可以附加到 POD 并在 /mnt/data 目录中找到 Node 文件系统。
你可以使用以下命令进行附加:
kubectl exec -i -t cve202125741 -c mount-container -- /bin/sh

利用程序包含 2 个部分:
包含利用漏洞的 POD 配置的 YAML 文件。由于竞态条件,它并非每次都能成功,因此你需要循环执行。
部署 pod.yaml、检查结果并在需要时重新部署的脚本。
对于使用 RENAME_EXCHANGE 选项的 renameat2 二进制文件,我使用了这段代码:https://gist.github.com/eatnumber1/f97ac7dad7b1f5a9721f
你可以自行编译并在 pod.yaml 中替换(如果你愿意的话):
gcc renameat2.c -o renameat2
base64 renameat2
解决方案:
解决方案: