๐Unquoted Service Path
Introduction
La vulnรฉrabilitรฉ Unquoted Service Path intervient lorsqu'un service dont le chemin contient des espaces qui ne sont pas mis entre guillemets est crรฉรฉ. Dans un tel contexte, un utilisateur ayant des droits d'รฉcriture dans le rรฉpertoire sous-jacent ร celui/ceux contenant un espace a la possibilitรฉ d'executer un script malveillant pouvant dans le meilleur des cas lui donner un accรจs en tant que authority nt/system ร la machine.
Pourquoi ?
Cette vulnรฉrabilitรฉ est rendue possible par une mauvaise gestion des caractรจres espace. Windows lorsqu'il rencontre des espaces qui ne sont pas entre guillemets va tenter d'exรฉcuter la premiรจre chaรฎne de caractรจres puis mettre le reste du chemin en argument.
Exemple:
Si Windows rencontre un chemin tel que:
C:\Program Files\Micro S0ft\Vulnerable service\program.exe
Il suivra la demarche suivante:
C:\Program.exe
C:\Program File\Micro.exe
C:\Program File\Micro S0ft
C:\Program File\Micro S0ft\Vulnerable.exe
C:\Program File\Micro S0ft\Vulnerable service\program.exe
Detection
Avec WMI
Avec PowerUp.ps1
ressource: https://github.com/PowerShellMafia/PowerSploit/blob/master/Privesc/PowerUp.ps1
Avec winpeas
Exploitation
Exemple de chemin vulnรฉrable:
Service "VulnServ" dans chemin "C:\Program Files\Micro S0ft\Vulnerable service\program.exe".
Ici, nous avons donc deux points potentiellement exploitables qui sont "Micro S0ft" ou "Vulnerable service".
Dans ce cas il nous faut tester les droits d'รฉcriture dans les repertoires "Program Files" et "Micro S0ft".
Si on a les droits d'รฉcriture dans Program Files, alors on peut y placer notre payload au nom de "Micro.exe".
Dans le cas ou on aurait les droits dans Micro S0ft, on peut y placer notre payload au nom de "Vulnerable.exe".
La demarche de windows sera alors la suivante:
C:\Program.exe > inconnu
C:\Program File\Micro.exe > payload
C:\Program File\Micro S0ft > connu
C:\Program File\Micro S0ft\Vulnerable.exe > payload
C:\Program File\Micro S0ft\Vulnerable service\program.exe > connu
Lancement de l'exploit
Dans cmd
Dans Powershell
Cela peut demander des droits d'administrateur
Si le service se lance automatiquement au dรฉmarrage il est alors possible d'exรฉcuter le payload en redemmarant la machine.
Derniรจre mise ร jour