# Capabilities

## Apresentação

As capabilities representam a capacidade de um processo acessar um certo recurso, limitando ou disponibilizando tal permissão.

Como visto em [**docker breakout - privileged flag**](/redteam/docker/docker-breakout/privileged-flag.md), nós podemos alcançar acesso ao host utilizando capabilities, dessa vez iremos mostrar como rodar adicionar ou remover certo capabilitie do contêiner

## Implementation

Com o auxílio da flag **--cap-drop** e **--cap-add**, podemos respectivamente remover ou adicionar um capabilitie, podemos utilizar esses argumentos passando o nome da capabilitie que quermos ou dropar ou adicionar

Vamos ver como dropar o **chown**

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

Agora vamos remover todas as capabilities e adicionar apenas o chown

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

> Utilizamos o **apk** para instalar o libcap para podermos utilizar o **capsh** para visualizar as capabilities presentes

Podemos ver que o único capabilitie que a máquina possui é o **cap\_chown**

## Conclusão

Podemos controlar os capabilities para garantir uma maior segurança em nosso contêiner.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://vida03.gitbook.io/redteam/docker/defenses/capabilities.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
