lunes, marzo 07, 2016

SAPPO: Spear APPs to steal OAuth-tokens (2 de 4)

Entendiendo cómo funciona el sistema descrito en la primera parte de este artículo, ya es posible trazar cómo sería un ataque de este tipo. El esquema que se debe seguir consistiría en los siguientes puntos.
1) Construir una aplicación Sappo para el IDP a atacar
2) Construir una URL con la solicitud del SCOPE (los permisos) adecuado
3) Conseguir el AuthCode cuando el usuario "bese" el "Sappo"
4) Con el AuthCode solicitar el AccessToken
5) Con el AccessToken acceder a todos los servicios vía
API
Figura 11: Creando la aplicación Sappo

Construcción de la aplicación Sappo

Como en este ejemplo vamos a hacer el ataque contra cuentas de Office365 y Windows Live, necesitamos crear una aplicación Sappo en la plataforma Microsoft que nos ayude a extraer los datos de las cuentas que confíen en ella. Para ello, con cualquier cuenta de Outlook debemos ir a la dirección apps.dev.microsoft.com y crear una nueva aplicación. Allí recibiremos un Application ID y un Secret, además de que deberemos especificar un servidor con un end-point donde vamos a recibir el AuthCode y el AccessToken. Este servidor deberá estar en nuestra infraestructura y deberemos poner un programa que escuche las llamadas.

Figura 12: Creación de una aplicación en Microsoft

Para controlar la aplicación Sappo, en nuestra infraestructura "Sappo" registramos los datos de la app que acabamos de crear. Esto nos permitirá después poder hacer uso de la API de Office365 y/o Windows Live a través del AccessToken concedido a la app por parte del usuario directamente desde nuestra plataforma.

Figura 13: Registro de la app en Sappo

Una vez que ya tenemos la app creada, ya se pueden crear las solicitudes de permisos, para ello, será necesario que el usuario haga clic en YES por lo que la ingeniería social cobra mucha fuerza. En el ejemplo anterior la app la he llamado Sappo, para dejar claro que es a esta app a quién el usuario debe "besar", pero para conseguir mayor impacto en Ingeniería Social se deben buscar nombres más suculentos.

Figura 14: Una App llamada MS AntiSpam PRO O365

Para nuestra presentación, elegimos crear una app que simulara ser un AntiSpam Pro gratis, lo que no llamaría mucho la atención cuando se piden permisos para leer y escribir el correo electrónico. Pos supuesto, el domino del endpoint y el logotipo serán fundamentales para acabar de dar el efecto adecuado en cada caso. 

Construcción de la URL de petición de SCOPES

Para conseguir los permisos adecuados, el usuario debe navegar al servidor de Microsoft con una URL que debe llevar el siguiente formato:
GET https://login.microsoftonline.com/common/oauth2/authorize/common/oauth2/authorize?scope=[scope_list]& response_type=[code]&client_id=[client_id]&redirect_uri=[redirect_uri]
Como se puede ver, es necesario identificar qué app es la que solicita los permisos, en este caso Client_id, después hay que especificar la lista de permisos que se quieren obtener en Scope_List y por último que lo que se espera obtener es un AuthCode que deberá ser entregado en Redirect_URI.

Figura 15: Algunos SCOPES de Windows Live

La lista de permisos que hay en Windows Live es grande, y aunque en algunos de ellos se especifica que es posible leer y escribir el correo electrónico vía API, lo cierto es que en muchas cuentas no está permitido aún. Eso sí, se pueden acceder, por ejemplo, a los documentos de OneDrive como veremos en una de las demos, o a la lista de contactos.

Figura 16: Más SCOPES de Windows Live. Acceso a OneDrive y OneNote

En el caso de Office365 sí que están disponibles las APIs para acceder al correo electrónico y, por tanto, leer, enviar correos electrónicos o borrar mensajes de las diferentes carpetas del buzón de la víctima.

Figura 17: SCOPES en Office365

Una vez que se envía genera la URL, lo suyo es hacérsela llegar a la víctima mediante un correo electrónico que le engañe. En nuestro caso hemos elegido un correo de Microsoft que personaliza el mensaje y lo envía como si fuera un AntiSpam Pro. Esta personalización la hacemos directamente desde la herramienta Sappo, en la que solo debemos elegir una nueva víctima a la que vamos a enviar una app Sappo.

Figura 18: Enviando el ataque de Spear APP

El correo que se envía en este ataque está hecho como si fuera un mensaje auténtico, así que si el usuario no está especialmente alerta contra estos ataques se encontrará con la diatriba de si debe o no aprobar los permisos a esta "magnifica" app que hará que tenga menos spam en su bandeja de entrada.

Figura 19: Correo electrónico que invita a instalar Microsoft AntiSpam Pro en tu Office365

Cuando la víctima recibe el correo electrónico y hace clic en el enlace, acabará en una pantalla en la que se solicita su aprobación.

Figura 20: Pantalla de aceptación de permisos para la app "El beso del Sappo"

Como se puede ver, no es una web de phishing. No pide usuarios y contraseñas. Está bajo el dominio oficial de Microsoft, con HTTPs y un certificado de color verde precioso. Por supuesto, el filtro antiphishing del navegador no ha saltado y yo tengo un 2FA configurado ¿Qué puede ir mal?

Autores: Chema Alonso & Pablo González

*****************************************************************************************
*****************************************************************************************

4 comentarios:

Anónimo dijo...

Bueno, una vez leido la 1ª parte y releida la 2ª esto ya va tomando forma XD
Gracias!

aremur dijo...

Como puedo descargar sappo?

Unknown dijo...

La web apps.dev.microsoft.com ahora te redirige a una web de Azure, parece que es la parecido pero sigue siendo valido el PoC ?

Unknown dijo...

unknown es verdad ahora ese enlace es azure , pero como hace para que aparesca sappo ese programa verde

Entrada destacada

10 maneras de sacarle el jugo a tu cuenta de @MyPublicInbox si eres un Perfil Público

Cuando doy una charla a algún amigo, conocido, o a un grupo de personas que quieren conocer MyPublicInbox , siempre se acaban sorprendiendo ...

Entradas populares