A vulnerable Terminator themed Linux machine.
Phase d’énumération
Découverte des services et versions présents sur la machine grâce à Nmap:

Par réflexe, regardons ce que contient le serveur web :


Voyons voir si le /squirrelmail qui contient pas mal de fichiers/dossiers est accessible:

Continuons d’exploiter notre retour Nmap pour voir si d’autres services sont exploitables.
On voit donc aussi qu’il y a un service SMB sous Samba, qui est réputé vulnérable dans les CTFs donc je regarde ce que je peux trouver en l’énumérant.
Pour faire cela, je vais me servir de l’outil Enum4Linux :



Essayons donc de nous connecter en mode anonyme pour essayer de récupérer des informations.
Phase d’exploitation

Nous avons pu récupérer un total de 3 fichiers sur notre machine attaquante, les voici :


Le premier flag de cette box sur TryHackMe est le mot de passe du compte mail de Miles, espérons qu’il se trouve dans cette liste de mot de passe. Et pour vérifier cette information, nous pouvons utiliser l’outil Burp Suite afin de faire une attaque par dictionnaire sur son compte.


Le premier mot de passe a une longueur de réponse différente des autres mots de passe essayés par Burp Suite donc si on la tente :


Et voilà, nous avons accès au SMB client :


En pentest, notre but est de trouver le plus d’informations pertinentes possibles et un dossier peut nous sauter aux yeux car il a sa première lettre en minuscule et aussi car il s’appelle « notes », voyons ce qu’il contient:

Idem que pour la recherche du dossier précédemment, on peut voir le fichier « important.txt », récupérons-le.


Quand nous nous rendons sur la page http://10.10.47.254/45kra24zxs28v3yd/, nous retrouvons le blog personnel de Miles Dyson :

On peut essayer de réénumérer la page de Miles Dyson à l’aide de la commande « dirb » et en spécifiant le dossier à découvrir.

On voit qu’il y a un dossier « administrator » sur sa page personnelle.

On tombe sur un CMS, qui peut lui permettre d’administrer sa page, voyons si une vulnérabilité est exploitable sur cette page :

Grâce à la commande searchsploit -m et le numéro de l’exploitation nous pouvons récupérer l’exploit :

Pour exploiter le site web, nous allons procéder à une attaque par RFI (Remote File Inclusion) comme suit :
- Configuration du reverse shell PHP :

- On établit le serveur python qui va accueillir le reverse shell :

- On écoute maintenant sur le port 31337 pour recevoir les informations du reverse shell :

- Exploitation de la RFI :


Comme d’habitude, lorsque nous arrivons sur une machine, j’aime bien appliquer la procédure pour avoir un full TTY de HackTricks :
python3 -c 'import pty; pty.spawn("/bin/bash")'
(inside the nc session) CTRL+Z;stty raw -echo; fg; ls; export SHELL=/bin/bash; export TERM=screen; stty rows 38 columns 116; reset;

Nous pouvons maintenant exploiter la machine pour faire une élévation de privilèges, mais avant cela, récupérons le flag user :

Elévation de privilèges
Pour avoir une élévation de privilèges, nous devons analyser les failles de la machine exploitée et pour cela, rien de mieux que l’utilisation du script linpeas.sh
Nous allons le récupérer sur la machine cible de la même manière que nous avons exploité le reverse shell sur le serveur web à savoir avec un server HTTP python :


Pour pouvoir ensuite copier le script sur le serveur, la plupart du temps nous avons les droits sur le dossier /tmp, essayons :

Nous avons récupéré le script, exécutons-le :

Tiens donc un job crontab exécuté par l’utilisateur root, pouvons nous le modifier pour l’exploiter?


Bien évidemment, en tant que « hacker » nous allons trouver une manière détournée pour en profiter (c’est la définition même du hacking) puisque dans la commande, celle-ci établit un environnement bash avec les droits root, ce qui implique un accès en root si nous arrivons à l’exploiter. Comme la tâche s’exécute toutes les minutes, servons-en nous pour récupérer les accès.
Pour y parvenir nous allons devoir jouer avec le wildcard du script avec les commandes comme suit :
Dans le dossier « /home/milesdyson/backups » :
echo -e '#!/bin/bash\nchmod +s /bin/bash' > /var/www/html/root_shell.sh
touch "/var/www/html/--checkpoint-action=exec=sh root_shell.sh"
touch "/var/www/html/--checkpoint=1"
/bin/bash -p

On retrouve bien le # qui nous indique que nous avons récupérer les privilèges sur la machine, ce que nous pouvons vérifier avec la commande « id » ou « whoami » :

Nous pouvons finalement récupérer le dernier flag, à savoir le compte root qui nous permet d’affirmer que nous avons les pleins pouvoirs sur la machine :

Et voilà, la box est terminée!
