Wednesday, May 2, 2018

Encontrando mensajes (chats) de Discord en Windows

Discord en una aplicación multi-plataforma diseñada con usuarios de videojuegos en mente. Actualmente cuenta con sobre 87 millones de usuarios.  Con Discord los usuarios pueden enviar y recibir mensajes (chats), crear grupos y hacer llamadas de tipo VOIP.

Funcionalidad de Discord.

El propósito de este posteo es ver que evidencia podemos obtener del uso de Discord en el sistema operativo Windows. La razón que motiva este análisis es la falta de identificación automatizada del uso de Discord por las herramientas comerciales de informática forense.

Localización y extracción de la evidencia.

Al igual que muchas aplicaciones en Windows, Discord almacena la información generada por los usuarios en el directorio de 'AppData.' En este caso el directorio completo sería:

C:\Users\usuario\AppData\Roaming\discord

El directorio AppData de Discord tiene la siguiente estructura:

Énfasis en el directorio 'Cache'

Los archivos generados por la interacción del usuario se encuentran en el directorio 'Cache.' Al mirar el contenido del directorio ninguna información de utilidad, como contenido de chats por ejemplo, se hace aparente.

 ¿Dónde están los chats?

El formato de este directorio puede ser familiar a algunos. Es prácticamente idéntico al formato del 'cache' del navegador de Internet de Google Chrome localizado aquí:

 C:\Users\usuario\AppData\Local\Google\Chrome\User Data\Default\Cache


El navegador de uso en mi sistema es Chrome y Discord usa el mismo formato para estructurar sus datos. Aquí el contenido del directorio de 'cache' de mi navegador para efectos de comparación.

La misma estructura.

Siendo que las estructuras son las mismas parece claro que el contenido que estamos buscando tiene que residir en estas estructuras, en el directorio 'cache' de Discord, que son iguales a las que usa el 'cache' de Chrome. Como la estructura del 'cache' de Chrome es muy conocida, existen muchas herramientas que nos permiten extraer el contenido. Para este análisis use la siguiente herramienta:


La herramienta va a procesar el directorio de Chrome en nuestro sistema automáticamente. Solo presione detener en la esquina izquierda en la parte superior de la pantalla y seleccione el directorio 'cache' de Discord que se quiere examinar. Después de procesar el contenido la herramienta le presentara algo semejante a esto:

Contenido del directorio 'cache' de Discord.

La herramienta le permite extraer toda la metadata en formato HTML. Más útil aún es poder extraer los archivos contenidos dentro de este 'chache' al seleccionar los objetos deseados y presionar F4.

Para encontrar los chats extraiga todos los archivos que terminan en 'messages?limit=50' bajo la columna de URL. 

messages?limit=50

Tenga a considerar que este análisis se hizo en un sistema con lenguaje en inglés. Pueda que existan pequeñas diferencias debido al idioma pero eso es algo que requiere verificación adicional. Al exportar estos archivos se podrá apreciar que dentro de los mismos están los chats de Discord. No todos los archivos de chat tienen como nombre '50' según se ve en la imagen anterior. Algunos de los archivos de chat tienen nombres que comienzan con las palabras 'Before' o 'After' seguidos por un tipo de identificación numérica. Para no dejar de extraer algún archivo relevante se recomienda que se use el final del contenido de la columna URL para la identificación.

Nótese que al presionar sobre uno de estos archivos la herramienta nos dice que son archivos de tipo JSON los que estamos exportando.

Content Type: application/json

Como son archivos tipo JSON, los podemos ver con cualquier editor de texto. Luego de exportar uno de estos y abrirlo con Wordpad, el contenido se ve de la siguiente forma:

'Content' es la llave.

Aunque el contenido visto de esta manera es difícil a los ojos, podemos entender claramente lo que se dice. Note la llave titulada 'content'. El contenido de la misma es la conversación generada por el usuario. Cada bloque de contenido generado por el usuario comienza con la llave 'Attachment' seguido por las llaves de estampa de tiempo, número de usuario, contenido del chat, entre otras.

Para lograr hacer que el contenido sea más fácil de visualizar, el siguiente código ('script') que se proporciona convierte los archivos de JSON en formato de Excel o de HTML.

Ahora se puede leer más fácilmente.

Si se escoge el formato de HTML, la mejor forma de visualizar el contenido es usando el navegador Google Chrome para poder ver emoticones y/o emojis que puedan ser parte de los chats.

Emojis!!!

El código es muy sencillo y se puede encontrar aquí:
Como punto final tenga en consideración que se puede acceder a la cuenta de Discord que esta siendo examinada sin la necesidad de contraseña ni nombre de usuario con solo mover el contenido de el Directorio de Discord a nuestro sistema de análisis y abrir el programa desde allá. Por supuesto el programa requerirá el internet para completar el acesso. Vale decir que acceder el contenido de esta manera requiere de consentimiento del usuario y/o los documentos legales necesarios como, por ejemplo, una orden de allanamiento remoto.

Puedo ser contactado en twitter: @AlexisBrignoni

No comments:

Post a Comment

iOS – Rastreando los Bundle IDs de Contenedores, Contenedores Compartidos, y Funcionalidades Añadidas (“Plugins”)

Artículo original  escrito por Christopher Vance (@cScottVance). Traducción al español por Geraldine Blay (@i_am_the_gia). En el sistema ope...