Vous êtes débutants ou intermédiaires voulant renforcer vos bases ? Vous avez envie de progresser dans les tests d’intrusion des WebApp ? Eh bien ce CTF est fait pour vous. Vous y trouverez plusieurs points importants du Pentesting : énumération des services, scan, brute forcing user&password, escalade de privilèges…

Vous êtes prêts ? Alors à vos claviers !!

  1. Phase de connexion

Pour ceux qui n’ont jamais utilisé TryHackme suivez les instructions suivantes, les autres peuvent passer à la phase de démarrage directement :

  • Survolez avec votre souris votre avatar en haut à droite et cliquez sur Acces. Une fois dans cette rubrique vous devez télécharger votre fichier de configuration afin d’accéder par vpn au server.

Maintenant, cliquez sur OpenVPN (Free). Plusieurs points apparaissent pour vous guider sur le fonctionnement.

Explications :

Nous allons installer openVPN et voir comment se servir de notre fichier de configuration. Pour cela tapez la commande suivante :

Une fois l’outil installé, vous devez simplement vous déplacer vers le répertoire où se situe votre fichier de configuration VPN et l’utilisez depuis un terminal comme suit :

sudo openvpn /path/to/file.ovpn 

Si vous êtes root sur votre terminal pas besoin du préfix sudo.

Super, une bonne chose de faite.

  1. Phase de démarrage

Avant de lancer le serveur, vous devez vous joindre à la partie en cliquant sur « Join Room » :

Tout d’abord on va démarrer notre machine  « Start Machine » :

Voici ce que vous allez obtenir :

Yes ! notre machine cible est déployée.

  1. Phase de Pentesting

Habituellement lorsque vous n’avez pas l’IP de votre cible vous pouvez exécuter : netdiscover -r ip/24, mais ici vous avez déjà une adresse IP qui est donnée.

Bon commençons, il nous est demandé de trouver les services à l’écoute par la machine cible. On va utiliser Nmap. Commande : nmap -sV ip

-sV = énumération des services en écoute avec leurs versions

Gardons ces éléments en tête, ça peut nous être utile par la suite. Maintenant que l’on connait les services et versions, on doit trouver quel est le nom du répertoire caché sur le serveur Web. Vous avez la possibilité d’utiliser plusieurs outils (dirb, gobuster…), ici nous allons garder Nmap :

nmap -p80 --script http-enum ip

–scrip http-enum = fait appel à un script pour énumérer les répertoires

Le voici, « development ». Allons l’inspecter de plus près :

Deux fichiers texte s’y trouvent, ouvrez-les et analysez le contenu (pensez à regarder le code source de la page également, il peut y avoir des informations importantes d’oubliées ou dissimulées).

dev.txt :

j.txt :

Hmmm, intéressant les signatures, celles-ci pourraient être la première lettre des utilisateurs.

Maintenant à l’étape suivante, on nous dit de brute-forcer pour obtenir un nom d’utilisateur et mot de passe.

Il existe plusieurs outils de brute-forcing, ce qui sera intéressant de savoir pour vous c’est dans quel cas vous allez utiliser l’un ou l’autre. Ici rappelez-vous, le service smb est actif et configuré (voir nmap -sV), donc nous pouvons faire une énumération avec l’outil enum4linux :

Bingo, voici nos deux utilisateurs présents sur le server :

On parlait juste au-dessus de plusieurs outils de brute-forcing, eh bien cette fois c’est Hydra le vainqueur. Nous avons deux utilisateurs mais nous avons besoin du password pour se connecter en passant par le service SSH, pourquoi le SSH ? parce que le port 22 est ouvert et configuré, autant tester.

Pour ceux qui ne connaissent pas Hydra vous pouvez utiliser la commande : man hydra depuis un terminal pour visualiser le manuel d’utilisation. La commande pour un brute-forcing service SSH est :

hydra -l user -P /usr/share/wordlists/rockyou.txt -t 6 ssh://<IP>

Vous pouvez rajouter -V pour la verbosité et -f pour quitter une fois le mot de passe trouvé.

Eh bingo !! nous avons trouvé le password de jan pour se connecter en SSH. Il nous reste plus qu’à foncer.

Une fois de plus c’est une commande assez basique : ssh user@ip

Tapez whoami pour vérifier que l’on est bien jan.

Euh ! et maintenant ? on profite de notre accès pour fouiller ce que l’on peut trouver 😊. Vérifiez le contenu du répertoire de jan, car maintenant vous devez trouver un moyen d’obtenir ou d’augmenter vos privilèges.

Rien de particulièrement intéressant, voyons ce qu’il se cache dans l’autre user : kay

C’est déjà mieux, en vérifiant les droits d’accès sur la première colonne, on voit que l’on peut accéder à certains répertoires mais pas tous. Celui qui nous intéresse est le .ssh. Allez-y et listez le contenu.

Très important vous venez de trouver deux clés : une clé publique et une privée appartenant à kay.

Visualisez la clé privée et la copier sur votre machine, nous ne pouvons s’en servir directement car il va nous falloir le déchiffrer. On va utiliser un outil qui se nomme JohnTheRipper, mais ce dernier a besoin d’un fichier type .hash, c’est pourquoi un autre outil vient à notre secours ssh2john préinstallé sur kali-Linux.

La commande n’est pas compliquée (vous pouvez la retrouver sur le net) :

python /usr/share/john/ssh2john.py id_rsa > id_rsa.hash

Ici le signe > vous permet d’envoyer la sortie vers le fichier souhaité.

Exécutez cette commande depuis votre terminal linux (hôte ou machine virtuelle)

Notre fichier .hash est enfin prêt, utilisons sans tarder JohnTheRipper pour casser la clé. Une fois de plus pour plus de détails n’hésitez pas à voir le manuel de ce dernier depuis un terminal : man john

Voici la syntaxe :

john --wordlist=/usr/share/wordlist/rockyou.txt id_rsa.hash

Attention, ceci n’est pas le mot de passe de connexion SSH comme nous l’avions fait pour l’utilisateur jan, c’est uniquement le mot secret de la clé privée.

À présent nous pouvons se connecter à kay en ssh avec la clé privée et son mot secret : man ssh pour plus d’informations.

ssh -i /home/kay/.ssh/id_rsa kay@ip

Et voilà le travail, vous venez de vous connecter en tant que kay. Comme d’habitude, on tape whoami, pwd, id pour s’en assurer.

N’oublions pas notre objectif final comme demandé sur le challenge de TryHackme, c’est d’obtenir le mot de passe final.

Effectuez un listing sur le répertoire de kay et visualisez le contenu du fichier pass.bak.

Félicitations, vous y êtes parvenus 😊

Conclusion

Ce CTF est vraiment génial, il nous permet d’avoir une idée globale de la façon dont nous pouvons analyser nos machines cibles et rechercher des vulnérabilités sur celles-ci. Nous apprenons également à déchiffrer les mots de passe et les hachages, d’effectuer une intrusion en utilisant les vulnérabilités trouvées, d’accéder ou d’élever nos privilèges.

Pour ceux qui ne l’ont pas fait, je vous le conseille surtout au débutant. Essayez de le faire dans un premier temps sans ce writeup, vous pouvez jeter un coup d’œil si vous bloquez.

Cela étant dit peace !

Made by Erdanay

 

No responses yet

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

quatorze + 8 =

Follow by Email
YouTube