本项目使用了两个开源库:
已在Kali Linux上测试,Docker版本为18.03.0,RunC版本为1.0.0-rc5。
./setup。config.txt 中的设置,填入你的用户名、密码和挖矿服务器地址。docker build -t hack .docker run --rm hackps -aef | grep python 检查守护进程是否正在运行。Docker容器逃逸后会启动多个挖矿守护进程,这些进程属于进程 #1(即内核)。这意味着计算机的资源被用于挖矿,而该脚本/计算资源不会与你运行的容器关联。
本漏洞利用了CVE-2019-5736。当容器运行时,Docker使用docker-runc来运行它,我们获取到运行我们容器的runc进程的PID。然后,我们通过指向runc二进制文件的符号链接,将执行权传递给另一个程序(overwrite_runc)。这个符号链接直接将我们指向runc二进制文件的文件描述符。这样我们就可以打开runc文件描述符进行写入并覆盖它。通过用恶意脚本覆盖它,当容器关闭时,该脚本将以root权限执行,从而使我们能够启动加密货币挖矿程序。
此操作会覆盖测试平台上的runc二进制文件,因此运行前最好备份原始runc文件。
请不要在真实、存在漏洞的系统上使用此方法。