docker.sock
Apresentação
O arquivo docker.sock pode ser usado para a comunicação com o docker deamon dentro do contêiner. Ele utiliza sockets do unix, então podemos acessar usando unix://
Docker Deamon
O docker deamon é uma "ponte" entre o contêiner e o host para a manipulação de contêiners.
Privilege Escalation
Para escapar do contêiner e conseguir acesso ao host, o docker.sock teria que estar mapeado dentro do contêiner, isso é usado por desenvolvedores quando, por algum motivo, o contêiner precise executar algo no host.
Vamos olhar o diretório do root do nosso host para ter certeza que conseguimos escapar do contêiner

Suponhamos que a imagem tenha sido executada assim:
# Vamos rodar o docker mapeando o docker.sock para dentro do contêiner
docker run --rm -it -v /var/run/docker.sock:/var/run/docker.sock alpine sh
É muito normal as imagens do docker não possuirem o docker, então precisamos instalar caso não haja.
# Usaremos o comando apk para gerenciar pacotes no alpine
apk add -U docker
-H, --host list Daemon socket(s) to connect to
Vamos usar a opção -H para o docker deamon para se conectar ao docker.sock, a ideia aqui é rodar o comando no host com auxílio do docker deamon + docker.sock, com isso vamos executar uma nova imagem mapeando o diretório raiz do host para o nosso novo contêiner, como o docker deamon roda como root, teremos acesso root ao host, podemos utilizar o segunite comando para isso:
docker -H unix:///var/run/docker.sock run -it -v /:/pwned -t alpine sh

É importante frisar que o comando acima será executado no host através do nosso contêiner com apoio do docker deamon + docker.sock
Conclusão
Só mapeie o docker.sock no seu contêiner se realmente precisar, se for mapear segue o link para a proteção contra esse escape:
Last updated