一个包含 Python 脚本的仓库,可用于构造原始 TCP/IP 数据包。
用于测试在 Kubernetes(kube-proxy: CVE-2020-8558)中公布的一个漏洞所涉及的火星数据包。该 PoC 覆盖了 pod → 节点(主机)本地回环边界的绕过。
关于该漏洞中节点 → 节点部分的简单且健壮的 PoC,请见此处。
数据包构造参考:
https://inc0x0.com/tcp-ip-packets-introduction/tcp-ip-packets-3-manually-create-and-send-raw-tcp-ip-packets/
https://gist.github.com/NickKaramoff/b06520e3cb458ac7264cab1c51fa33d6
包含一个 Dockerfile 和 pod 清单,用于将利用程序部署到 Kubernetes,以方便验证集群是否存在漏洞。脚本已更新,目标为主节点上运行的未认证 kube API 服务器(端口 8080),清单会将 pod 部署到主节点。
该利用程序会使用 kube apiserver 的 REST API 在你的集群默认命名空间中创建一个名为 youve-been-pwned 的 pod。该 pod 仅在一个无限循环中输出文本,需要手动删除。
在某些集群(运行 Cilium)上,我在容器创建后立即启动进程时遇到问题:发送初始 SYN 后主机不会回复 SYN/ACK。我通过 start.sh 脚本绕过了这个问题,该脚本仅在网络就绪后才启动利用程序——这似乎有所帮助。