sábado, 28 de julio de 2018

Cómo un Open Redirect puede usarse para robar credenciales en la app en Electron de Hangouts

Hangouts, la app de mensajería de Google, ha sido comprometida en su versión de escritorio por una vulnerabilidad de tipo Open Redirect, sumado a un error en la forma en que se abren los enlaces





Electron se ha convertido estos últimos años en una alternativa económica y sencilla de construir apps multiplataforma para escritorio. En vez de invertir recursos y dinero en crear aplicaciones nativas, es posible crear aplicaciones web que se ejecutarán en su propio navegador, sin la barra de direcciones. Esta propiedad de Electron, impide al usuario conocer qué sitio web se está visualizando, lo que puede aprovecharse para redirigir a un sitio de phishing sin que se dé cuenta.

La app de Hangouts para escritorio, que hace uso de Electron, soluciona en parte este problema abriendo con el navegador del sistema los enlaces externos a la aplicación web que ejecuta (https://chat.google.com). El analista Michal Bentkowski investigó este hecho en su blog, descubriendo que la aplicación sigue los enlaces de redirección, y que podría emplearse para redirigir a un phishing. Haciendo uso de un Open Redirect conocido en https://accounts.google.com/ServiceLogin?continue= (que también está presente en chat.google.com), es posible redirigir al usuario a un sitio arbitrario, como una página falsa de login de Google, tal y como puede comprobarse en esta url de demostración:

https://chat.google.com/accounts/ServiceLogin?continue=https://appengine.google.com/_ah/conflogin?continue=http://bentkowski.info/&service=ah

Al tratarse de una vulnerabilidad en una aplicación de mensajería, su propagación es tan sencilla como enviar este enlace a un contacto, y esperar a que éste lo abra. Al cargarse la url en la propia ventana de Electron, el usuario no nota la diferencia con el login original, y ni siquiera puede volver atrás, al no disponer de botones de navegación.

Ya hemos visto otras vulnerabilidades relacionadas con el uso de Electron, como ejecución remota de código o la sufrida en Atom (también de tipo RCE). Debido a su popularidad, es probable que en los próximos años sigamos viendo casos similares, lo que evidencia la necesidad de adoptar medidas. Por ejemplo, en el caso de Hangouts, existen soluciones, como bloquear las redirecciones, o forzar el uso del navegador externo en todos los enlaces recibidos a través de un mensaje.




Juan José Oyague
joyague@hispasec.com

Más información:

Vulnerability in Hangouts Chat a.k.a. how Electron makes open redirect great again:
Google Open URL Redirection :
https://vagmour.eu/google-open-url-redirection/ 

Ejecución remota de código en aplicaciones Electron:
https://unaaldia.hispasec.com/2018/01/ejecucion-remota-de-codigo-en.html

Ejecución remota de código en el editor Atom:
https://unaaldia.hispasec.com/2017/11/ejecucion-remota-de-codigo-en-el-editor.html