Catégories
HackTheBox Machines

HTB{Nineveh}

Aujourd’hui nous nous attaquons à la machine Niveneh, classé Medium sur HTB.

Je dois vous dire que j’ai eu beaucoup de mal avec cette box, que j’ai trouvé compliqué car une des partie m’était complétement inconnue.

Commençons comme d’habitude avec un scan de port.

2 ports d’ouvert, port 80 http et 443 https.

commençons par le port 80.

Une simple page par defaut.

Lançons ffuf.

Celui ci nous trouve quelques informations et en particulier un dossier /deparment.

Nous voici devant une page de login. Première chose à faire avec une page de login c’est une injection. Malheureusement pour moi, pas de faille de ce niveau la.

En regardant le code html, un commentaire à l’attention de l’admin nous indique quand même que le login doit etre fixé car mysql vient d’être installé. Je vois que le nom d’utilisateur est amrois.

J’essaye de me connecter avec le pseudo amrois et je vois apparaitre Incorrect username, ce qui nous indique que cet username n’est pas dans la base de données. En essayant plusieurs noms d’utilisateur, je tombe sur admin qui est dans la base de donnée.

Aprés plusieurs essais de mots de passe par défaut, je décide d’utiliser Hydra qui va me permettre de faire un brute force sur la page de login avec la liste de mots de passe contenu dans le fameux fichier rockyou.txt. Et ça fonctionne car j’ai une correspondance.

Nous tombons sur un site toujours en construction, avec différents liens en haut. En cliquant sur notes, je suis renvoyé sur une autre page.

Cette page a la particularité de chercher un fichier .txt et d’en afficher le contenu dans la page web. L’analyse de l’url nous montre que cette page peut être susceptible d’être faillible à la faille LFI (Local File Inclusion). Aprés quelques recherches, je ne trouve rien à exploiter pour l’instant.

Je décide de passer au site web en https.

Je tombe sur cette page. Le code html ne nous indique rien d’intéressant. Encore un coup de ffuf.

Nous voyons ici un dossier /db

Une page de connexion avec le nom du logiciel installé et sa version.

Une recherche sur google nous indique qu’elle est vulnérable.

Encore faut-il pouvoir se connecter.

Je réessaye avec Hydra, et il trouve le mot de passe assez rapidement. Je me connecte et j’essaye l’exploit décrit.

Aprés cela j’ai essayé d’appeler la base de donnée via son chemin /var/tmp/hack.php via le site en http et sa faille LFI mais sans succés. J’ai donc décidé de modifier le nom de la table en utilisant le même nom que la note.

Et là bingo.

Sur le site web la note indique un dossier secret, aprés recherche dans le dossier /var/www/ssl, il existe un dossier secure_note qui contient une image. Comme il n’y a qu’une image, peut être que des informations seront cachées dans l’image. En utilisant le logiciel strings, nous avons la clé ssh privé de l’utilisateur amrois.

Par contre, lors du scan du port avec nmap, aucun port ssh n’est ouvert. Alors pourquoi avoir généré une clé ssh ???

N’ayant pas d’autre information, je decide de télécharger linpeas pour chopper un maximum d’informations utiles.

Premier truc qui me saute aux yeux, c’est que le port 22 est ouvert sur la machine et en écoute.

Je dois vous dire que c’est à ce moment là que je n’ai pas trop compris. Pourquoi le port ssh est en écoute mais que lors du scan de port, impossible de le voir ouvert. Il doit y avoir une règle IPTABLE pour bloquer toute connexion avec le port 22. Mais pourquoi?

Je suis allé regarder sur internet mais aucune information vraiment pertinante.

En continuant à regarder les informations sur la machine, je tombe sur un long paragraphe intitulé Analyzing Knockd Files.

Ne connaissant pas ce logiciel, je regarde sur internet pour me documenter et là, …

On me parle de port knocking.

Mais bordel, Qu’est ce qu c’est que le port knocking?

le port knocking st une méthode simple pour autoriser un accès distant sur un port qui n'est pas constamment ouvert. Cela permet d'éviter les scans de ports et certaines attaques automatiques.
Il permet de modifier le comportement d'un pare-feu en temps réel pour ouvrir un port suite au lancement préalable d'une suite de connexions dans le bon ordre sur des ports distincts.
Cette méthode située à un niveau bas des couches TCP/IP est considérée comme sécurisée. Elle ne requière pas de port ouvert, le service knockd est également invisible.

Je vous mets un lien très intéressant pour utiliser le logiciel knockd https://wiki.visionduweb.fr/index.php/Port_Knocking#Tester_la_connexion_avec_le_Port_Knocking_sous_linux

Le logiciel est bien présent sur la machine.

En regardant le fichier de configuration, nous avons les ports pour ouvrir le port ssh.

Pour ouvrir le port ssh, il faut faire la séquence des ports 571, 290 et 911.

Bingo, nous avons notre accès ssh et le flag user.

Tout à l’heure en regardant les informations avec le script linpeas, un cron était lancé en root.

Le script nous appartient mais n’est pas lancé en root. Par contre le dossier report peut être intéressant.

En regardant dans ce dossier, nous voyons des fichiers report en .txt, en entrant une des phrases sur google, il nous renvoie le logiciel qui crée ce fichier. chkrootkit.

Le logiciel est bien présent sur la machine.

Une recherche sur le web nous indique que celui ci est vulnérable.

On suit cet exploit en créant un exécutable update dans /tmp.

Bingo, nous voilà root. Avec beaucoup de recherches et de sueur, ce qui est parfaitement normal ^^

Laisser un commentaire

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