Llegados al punto anterior, en el que el usuario tiene que elegir entre conceder o denegar los permisos, es cuando termina la última medida de seguridad. Si el usuario decide concederlos, a partir de ese momento - y hasta que le sean revocados los permisos o caduquen sin ningún proceso de renegociación el 
AccessToken - la 
app podrá acceder a todos los recursos indicados en la lista de 
SCOPES.
|  | 
| Figura 21: Atacando cuentas de MS Office 365 | 
Cuando el usuario hace clic en 
YES, en el 
end-point marcado en 
Redirect-URI se recibirá el 
AuthCode, que le permitirá a la aplicación solicitar el 
AccessToken. Esto se hace de esta forma porque en la petición del 
AccessToken debe indicarse el 
Application ID y el 
Secret para demostrar que se es el dueño de la 
app que quiere los permisos. La petición que se debe realizar para solicitar el 
AccessToken es como la que sigue a continuación:
POST common/oauth2/token HTTP/1.1
Host: https://login.microsoftonline.com
 Content-Type: application/x-www-form-urlencoded
 grant_type=[authorization_code]&code=[authCode]
&client_id=[client_id]&client_secret=[secret]
&redirect_uri=[redirect_uri]
Como se puede ver, se solicita que se entregue lo que sería el 
AccessToken en 
Redirect_URI, y si el 
AuthCode entregado es el correcto, lo que devolverá el servidor del 
IDP, en este caso 
Microsoft, será un 
token de acceso.
JWT (JSON Web Token)
En el caso de 
Microsoft el 
token llega en formato 
JWT que no es más que una cadena 
URL Encoded en 
BASE64 con una estructura de tres partes: 
Cabecera, 
Payload y 
Firma. En la siguiente captura se puede ver un 
token recuperado en formato 
JWT.
|  | 
| Figura 22: JWT completo con las tres partes | 
Si decodificamos la cadena en 
BASE64, podremos ver que en el 
payload está la información completa de toda la sesión de acceso. En ella aparece la información de la 
app, la lista de permisos y los datos de la cuenta que ha concedido los permisos.
|  | 
| Figura 23: Información decodificada del payload | 
Este 
token, en bruto, tendrá que ser enviado en cada petición de acceso a los recursos de la cuenta en el 
IDP siempre que se haga una llamada a la 
API de 
Office365 o 
Windows Live. Las peticiones habrán de ser hechas siguiendo el formato que aparece a continuación:
GET https://login.microsoftonline.com/common/oauth2/authorize
HTTP/1.1
 Host: login.microsoftonline.com
 Authorization: Bearer [Access_Token]
Usando la API de Office365 para acceder a los recursos
Todo este proceso está automatizado en nuestra plataforma, así que cuando el usuario acepta - besa al 
sappo - lo que aparecerá en la lista de 
tokens serán todos aquellos válidos que pueden utilizarse para acceder a los datos de la cuenta.
|  | 
| Figura 24: AccessToken válido en Sappo para acceder a una cuenta Office365 | 
En el caso de 
Office365, el acceso es completo a los correos electrónicos, así que podemos listar todos los mensajes en la bandeja de entrada o en cualquiera de las carpetas de la cuenta. Para que sea más sencillo lo hemos integrado en un interfaz de usuario que permite navegar por el buzón.
|  | 
| Figura 35: Acciones implementadas con ese AccessToken en Office365 | 
Entre las opciones, está también la de borrar el mensaje de correo y, lo que es más peligroso, la de enviar mensajes desde la cuenta.
|  | 
| Figura 26: Envío de correos usando la API de Office365 y el AccessToken | 
Este tipo de técnicas se han utilizado para conseguir engañar víctimas y robar dinero cuando se introduce un mensaje manipulado en medio de una conversación leal para, por ejemplo, 
conseguir que el pago de un trabajo se haga en otra cuenta bancaria - controlada por el cibercriminal - en lugar de la cuenta de la víctima.
|  | 
| Figura 27: Lista de contactos de la cuenta | 
Estas tareas se podrán realizar mientras que el acceso a la aplicación en 
Office365 no sea revocado. Para ello, el usuario debería irse a la parte de 
Configuración de Office 365, y en la sección de 
Permisos de Aplicación, eliminar el acceso a sus datos de cualquier 
app no deseada.
|  | 
| Figura 28: Lista de todos los correos. Se pueden visualizar completos y con adjuntos. | 
Una cosa curiosa es que las nuevas apps con permisos concedidos tardan un rato en aparecer y, cuando aparecen, no tienen por qué permitir acceder a la información detallada de la 
app. Lo más normal es pedir información de los permisos de la 
app y no poder acceder a ellos en 
Office365 si la 
app es maliciosa como las que creamos aquí.
|  | 
| Figura 29: Aplicación con permisos en el perfil del usuario de Office365 | 
El funcionamiento es análogo, pero no exactamente igual, en 
Windows Live, así que en la siguiente parte veremos un caso usando otra implementación de 
Microsoft.
*****************************************************************************************
*****************************************************************************************
7 comentarios:
Esto quien te lo ha programado? Esta claro que tu no
@Andujar, mi equipo de Eleven Paths. Como todos los productos. ¿Te gusta? Si quieres que te programemos algo ponte en contacto con nosotros }:)
Saludos!
Kiero saber de algun programa para espiar whatsapp las conversaciones d mis contactos ppdria decirme algun programa k si funcione x favor o d donde lo puedo descargar
Luis Enrique, esa acción puede constituir un delito. No siga por ese camino o saldrá escaldado.
La jungla de las apps, Microsoft (en este caso) deja a qualquiera que cree una aplicacion que pida permisos de acceso a las cuentas o365?
Lo persigue de alguna forma? No deve ser muy complicado con algun algoritmo de checkeo de comportamiento de la aplicacion... aunque supongo que cuando sea dirigido es imposible basarse en comportamiento.
Se puede limitar en las cuentas corporativas de o365 el hecho de restringir a que aplicaciones van a poder dar permisos los usuarios de la empresa?
tnks
¿Cómo los puedo contactar?
@chema alonso como creo ese sappo porque ahora en 2020 no aparece verde , no entiendo es diferente
Publicar un comentario