> For the complete documentation index, see [llms.txt](https://vida03.gitbook.io/redteam/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://vida03.gitbook.io/redteam/docker/namespaces.md).

# Namespaces

## Apresentação

O docker utiliza namespaces para providenciar a isolação dos contêiners entre os hosts, algum deles:

* PID namespace para isolamento de processo
* NET namespace para gerenciamento de interfaces de internet
* IPC namespace para gerenciamento de acesso a recursos IPC
* MNT namespace para gerenciamento de montagem de filesystems
* UTS namespace para isolamento de kernel
* User ID(user) namespace para isolamento de privilégios

Iremos falar sobre o namespace User ID, como podemos mapear toda a raiz do host e como podemos defender desse ataque

## Attack

O usuário precisa apenas estar no grupo **docker**, para poder rodar o docker, com isso ele consegue acesso root ao sistema mapeando o diretório raiz para um diretório dentro do contêiner

<figure><img src="/files/PAGedPdnn2TFyTSnngRa" alt=""><figcaption></figcaption></figure>

## Defense

```
# Primeiro vamos parar o docker
sudo systemctl stop docker

# Agora vamos configurar corretamente o namespace user
sudo dockerd --userns-remap=default &
```

<figure><img src="/files/rFSMLWE5fdsRR8FUA1UH" alt=""><figcaption></figcaption></figure>

## Conclusão

É muito usuários com menos privilégio terem permissão para executar o docker, e se o namespace do user **não estiver mapeado para default**, o usuário consegueria acesso ao diretório root no sistema
