Cisco ha informado de una grave vulnerabilidad detectada en su cliente de videoconferencias WebEx que permitiría a un atacante remoto ejecutar comandos arbitrarios con privilegios de sistema.
WebEx es un popular servicio que permite realizar reuniones online como si se llevaran a cabo de forma presencial, con la posibilidad de compartir documentos, ofrecer presentaciones, mostrar productos y servicios, etc. así como realizar grabaciones de las mismas.
Los investigadores Ron Bowes y Jeff McJunkin descubrieron en un pentesting rutinario esta vulnerabilidad que han bautizado como «WebExec«. El fallo se encuentra en el servicio ‘WebexUpdateService’ y se le ha asignado el código CVE-2018-15442.
Buscando alguna forma de elevar privilegios a través del cliente de WebEx, los investigadores descubrieron dos cosas. Una: que el directorio ‘c:ProgramDataWebExWebExApplications’ podía ser escrito y leído por cualquier usuario. Y dos: que el cliente de WebEx instala el servicio ‘webexservice’ que puede ser iniciado y detenido por cualquier usuario. Por lo tanto, sería trivial reemplazar el ejecutable por otro y conseguir ejecutar código arbitrario con privilegios de sistema.
Esta vulnerabilidad fue reportada a Cisco, quien publicó un parche el 5 de septiembre que implementaba una ‘whitelist’ de aplicaciones que podían ser ejecutadas desde ese directorio.
Los investigadores siguieron buscando alguna forma de ejecutar código por ese medio.
Tras hacer ingeniería inversa al ejecutable ‘WebExService.exe’, determinaron que a través del método ‘software-update’, un usuario sin privilegios podía ejecutar cualquier comando de la siguiente forma:
Esto lanzaría la calculadora con privilegios de sistema.
Notar que no podemos ejecutar directamente cmd.exe o powershell, pero nada nos impide ejecutarlos a través de wmic.exe o net.exe de la siguiente forma:
Como vemos, con privilegios de administrador:
Hasta ahora sólo hemos conseguido la ejecución local de un comando arbitrario.
Para conseguir la ejecución remota tenemos dos opciones:
Bien iniciar sesión en la máquina remota y ejecutar el comando anterior.
O bien, podemos crear un usuario local con las mismas credenciales y ejecutar el comando contra la máquina remota en el contexto de este nuevo usuario (con ‘runas /user:newuser cmd.exe’):
La vulnerabilidad fue descubierta el 24 de julio de este año y divulgada de forma responsable a Cisco, quien publicó dos parches el 5 de septiembre y el 3 de octubre que limitaban los permisos de ejecución a ejecutables firmados por WebEx.
Se recomienda actualizar cuanto antes a las versiones Cisco Webex Meetings Desktop App Release 33.6.0 y/o Cisco Webex Productivity Tools Release 33.0.5 o posteriores.
Technical Rundown of WebExec
https://blog.skullsecurity.org/2018/technical-rundown-of-webexec
WebExec FAQ
https://webexec.org/
https://tools.cisco.com/security/center/content/CiscoSecurityAdvisory/cisco-sa-20181024-webex-injection