martes, julio 28, 2020

Cómo obtener un Token OAuth con el QR Code del menú del bar y que te controle el Sappo

Desde el comienzo del desconfinamiento, y con la llegada de la fase dos de la desescalada, las tiendas y negocios de nuestro país han ido reactivando poco a poco la economía española. Uno de los grandes retos de esta desescalada ha sido encontrar nuevas formas de acercar los productos a los clientes evitando el contacto físico y manteniendo las distancias de seguridad dentro de las tiendas y restaurantes. 

Figura 1: Cómo obtener un Token OAuth con el
QR Code del menú del bar y que te controle el Sappo

Una de las técnicas más utilizadas ha sido la implementación de cartas o catálogos digitales, a los que podemos acceder utilizando la función de lectura de Códigos QR implementada en la mayoría de smartphones actuales o a través de una aplicación de la App Store. Aunque es una brillante idea para evitar el contacto y para garantizar la seguridad física de los clientes, puede suponer un gran riesgo para la ciberseguridad, como vamos a ver hoy.

En la mayoría de establecimientos que utilizan este método, el Código QR se encuentra en forma de papel plastificado o una pegatina pegada a la mesa en la que nos sentamos, haciendo posible que cualquier persona con intenciones maliciosas pueda despegarlo y pegar su propio Código QR. El riesgo aumenta en el caso de los establecimientos que permiten realizar el pago a través de Internet.  

Figura 2: Libro de "Cómo protegerse de los peligros en Internet"
de 0xWord escrito por José Carlos Gallego.

El uso de un Código QR malicioso no es nuevo, e incluso detrás de algunas de las direcciones detrás de esos códigos se han encontrado Kit de Exploits e incluso un bonito meterpreter para atacar dispositivos Android inseguros, o iPhones con exploit de algún Jailbreak, como el famoso JailOwnMe de Jose Selvi.  Pero... y ¿si utilizamos ese QR Code para llevar a la víctima a la página de Microsoft Office, Google, Facebook o Twitter que autoriza compartir Tokens OAuth con apps? Aquí puedes ver qué pasa si haces mal un clic en una app maliciosa enviada por Sappo.


Figura 3: Robando tu cuenta de Microsoft con Sappo

¿Y si hacemos que en lugar de ir a la carta vaya a una App maliciosa que se llame "Carta Digital" y le pedimos un Token OAuth como hacemos con SappoA continuación, os enseñaremos cómo se puede lograr una escalada de privilegios (en este caso en una cuenta de Microsoft) utilizando un Código QR creado por nosotros y la herramienta Sappo, solo por la comodidad de integrar la explotación del Token OAuth robado con las acciones de nuestra herramienta.

Un QR Code para que las víctimas besen al Sappo

Lo primero será la construcción de una aplicación en la plataforma de Microsoft para que nos ayude a extraer los datos de las cuentas que confíen en ella. Esto lo podréis hacer accediendo desde este enlace y utilizando cualquier cuenta de Microsoft. Este paso es necesario para obtener el AppID y el Secret que nos pedirá Sappo en los pasos posteriores. También es fundamental especificar un servidor con end-point donde recibir el AuthCode y el AccessToken para ello deberemos usar la URL de nuestro https://Sappo/Token/Authorize/AppID

Figura 4: Creando la App maliciosa en Microsoft que usará Sappo

Nota: Vale, todo esto no es público porque como ya sabéis Sappo es una herramienta privada, pero el proceso completo de cómo funciona lo tenéis en el artículo de SAPPO: Spear APPs to steal Oauth-Tokens que tenéis publicado hace ya mucho tiempo. Al final, se trata de explicar una PoC de cómo podría hacerse algo así, no de ponerlo en producción. Si quieres hacerlo tú, te dejamos la charla donde nuestros compañeros Chema Alonso y Pablo González presentaron Sappo en la RootedCON 2016.


Figura 5: Solo hay que besar un Sappo por Pablo González y Chema Alonso

Dicho esto, el siguiente paso será acceder a nuestro Sappo y crear nuestra aplicación, para ello en el apartado Apps seleccionaremos la opción “Create New”. A continuación, en el campo de nombre debemos utilizar un nombre que no haga que el usuario sospeche de que se trata de una trampa, por ejemplo, “Carta Digital”. 

Figura 6: Una vez creada la App Maliciosa la damos de alta en Sappo

En los campos de Id y Secret introduciremos los datos de nuestra aplicación creada en la plataforma de Microsoft. En el apartado de la imagen podemos poner una foto del logo del restaurante para que la estafa sea todavía más creíble. Para no levantar sospechas también es recomendable redirigir a la víctima a la página original del establecimiento en el que se encuentre.

Ahora que ya tenemos nuestras aplicaciones creadas solo nos falta crear las solicitudes de permisos y convertir esta petición en un Código QR. Este proceso es bastante sencillo, solo tenemos que acceder al apartado tokens en el Sappo

Figura 7: Creando un Spear Phishing con el enlace malicioso para
conseguir el Token OAuth para la App maliciosa que usará Sappo

En este caso en particular, como nuestro objetivo es convertir la petición en un Código QR rellenaremos los apartados como si fuésemos una aplicación de cartas digitales, sin embargo en el apartado de “Victim´s email address” pondremos un correo electrónico al que tengamos acceso para poder acceder al enlace de la petición y así poder copiarlo y transformarlo en un Código QR que posteriormente podremos imprimir y colocar en la mesa de cualquier bar o establecimiento.

Una vez hayamos terminado de introducir todos los datos pulsaremos en “Create” y accederemos al correo electrónico al que nos hayamos enviado la petición, pulsaremos sobre el enlace y cuando nos redirija a la página en la que se solicitan nuestros permisos de Outlook copiaremos el enlace que aparece en la barra de nuestro buscador. 
Figura 8: El enlace en el e-mail lleva a la URL de petición de un
Token OAuth para la App maliciosa en una cuenta de Microsoft

Ahora solo nos queda convertir este enlace en un Código QR, para ello podemos encontrar infinidad de páginas web gratuitas con esta función en las que solo hay que introducir la URL copiada y pulsar un botón para convertirla. En algunas de estas páginas podremos seleccionar el formato de nuestro Código QR o incluso añadir una foto con el logo del negocio al que queramos suplantar logrando así una mayor confianza entre las posibles víctimas.

Figura 9: Convirtiendo la URL de petición de permisos en un
QR Code malicioso para imprimirlo y ponerlo en la mesa del bar.

Con nuestro Código QR creado solo tendremos que imprimirlo en papel adhesivo o en papel normal dependiendo de donde vayamos a colocarlo y esperar a que las víctimas “Besen al Sappo”. Para terminar, solo tendremos que esperar a que aparezca en nuestra lista de tokens aquellos que sean válidos y con los que podremos obtener el control de las cuentas de las víctimas que hayan caído en esta trampa.  El resto ya lo tenéis en los ejemplos de lo que se puede hacer con Sappo.
Autor: Sergio Sancho Azcoitia

No hay comentarios:

Publicar un comentario