En las Partes 1 y 2 de esta serie en la línea de tiempo de actividad de Windows (solo “Línea de tiempo” de aquí en adelante) discutimos cómo [9Cellebrite BlackLight y Cellebrite MacQuisition pueden ayudar a los investigadores a encontrar evidencia valiosa en dispositivos Android o Mac respectivamente.

También profundizamos en la base de datos, ActivitiesCache.db, que almacena una gran cantidad de datos de las acciones que cada usuario haya realizado en un sistema (es decir, navegación web y acceso a documentos). Además, esta evidencia se puede sincronizar en varias máquinas con Windows en las que un usuario inicia sesión con la misma cuenta de MS.

La línea de tiempo también puede almacenar evidencia de actividades que ocurrieron en máquinas que no son de Windows si Office365 está asociado a la misma cuenta como la cuenta de inicio de sesión de MS. En este blog, veremos un tipo de actividad del usuario que quizás no considere al analizar este artefacto en particular: el contenido del portapapeles.

Antes de comenzar, debemos tener en cuenta una cosa: El análisis de la línea de tiempo es un objetivo en constante evolución. La base de datos en sí, así como el comportamiento del sistema, cambia con casi todas las versiones de Windows.

Incluso sin los cambios constantes, hay grandes partes de la línea de tiempo de las que sabemos poco. Se necesita mucho más trabajo aquí para la verificación, así como para descubrir las partes desconocidas. Teniendo eso en cuenta, esta publicación brinda más detalles del proceso que usé para averiguar cómo la línea de tiempo y el portapapeles están conectados. Se espera que esta información ayude a otras personas interesadas a realizar sus propias pruebas e incorporar lo que aprende.

El planteamiento del problema

Cuando busqué hace (mucho) tiempo en ActivitiesCache.db en una de las máquinas virtuales de prueba que utilizo, vi que había una columna en la tabla de actividades, llamada “Carga útil del portapapeles”, que contenía datos.

Había visto la columna antes pero no la había visto completa. Se veía como la figura 1 a continuación. Inmediatamente, mi sexto sentido forense fue diciéndome que esto sería interesante, así que indagué.

Figura 1

Cargué la máquina virtual en Cellebrite BlackLight para investigar un poco más. La columna de carga útil del portapapeles mostró algunos datos obvios codificados en base64. La cadena de caracteres decodificada era “AMD-Backed Blockchain Project Amassing 20K GPUs but Won’t Say Why.”. Al parecer, estaba leyendo sobre criptomonedas y copié el título del artículo.

Pero ¿Cómo llegaron los datos ahí? ¿Cuánto tiempo duraría? ¿Se almacenó en otro lugar? ¿Era solo texto lo que podía almacenarse? Había muchas preguntas sin respuesta, así que decidí hacer algunas pruebas.

Metodología

Tenía una idea de cuáles podrían ser algunas de las respuestas y había fuentes online \[1] que tenían buena información, pero como dije antes, la línea de tiempo cambia rápidamente. Para responder algunas de estas preguntas por mí mismo, recientemente puse en marcha una nueva máquina virtual con Windows 10 versión 2004 y copié y pegué el texto.

Luego miré en la base de datos de la línea de tiempo y no había datos completados de carga útil del portapapeles. Así que, no fue muy útil. Algunas breves búsquedas en Google me recordaron que Windows 10 versión 1809 agregó algunas características nuevas del portapapeles:

“Historial del portapapeles” y “Sincronización en la nube del portapapeles” \[2-8]. Planteé la hipótesis de que si se seleccionaran las opciones de configuración correctas (las veremos a continuación), Windows mantendría un historial limitado de texto e imágenes que un usuario copia con “CTRL-C”. Luego se podría acceder a ellos con la combinación de teclas WinKey-V. Dependiendo nuevamente de la configuración, algunos tipos de datos copiados podrían incluso sincronizarse entre máquinas.

Luego probé la combinación de teclas del historial del portapapeles WinKey-V en mi máquina virtual 2004 y recibí este triste mensaje:

Figura 2

Asumí que necesitaba realizar algunas configuraciones.

Después de buscar más en Google, activé el historial del portapapeles en Configuración → Sistema → Portapapeles:

Figura 3

Luego copié un texto de mi navegador web, probé el WinKey-V nuevamente y he aquí:

Figura 4

Pero cuando observé la base de datos de la línea de tiempo de nuevo, seguía sin suerte.

No había datos en la carga útil del portapapeles. Afortunadamente, había más configuraciones para realizar.

A continuación, habilité la configuración “Sincronizar entre dispositivos” para activar “Sincronización en la nube del portapapeles”.

Figura 5

Ahora, pensé que esto podría tener una mejor forma de funcionar, así que en la nueva máquina virtual 2004 realicé lo siguiente (vea la figura 6 a continuación):

  • Inicié sesión con una de mis cuentas de prueba de MS
  • Abrí el bloc de notas
  • Coloqué una marca de tiempo por si acaso.
  • Escribí un texto
  • Seleccioné el texto
  • Hice clic con el botón derecho y copié el texto

Figura 6

Luego abrí otra máquina, una máquina virtual de prueba con Windows 10 versión 1809 y realicé lo siguiente:

  • Inicié sesión con la misma cuenta de MS que en la máquina virtual 2004
  • Me aseguré de que tuviera la misma configuración del portapapeles.
  • Abrí el bloc de notas
  • Coloqué una marca de tiempo
  • Hice clic con el botón derecho y seleccioné pegar

Nota: Tenga cuidado de no haber copiado/pegado nada más en esta máquina virtual.

¡Y listo! El texto que había copiado anteriormente en la máquina 2004 y pegado en la máquina 1809 (vea la figura 7 a continuación).

Figura 7

Esta vez, cuando vi rápidamente la base de datos de la línea de tiempo en la máquina 2004, observé algunos datos completados de carga útil del portapapeles. Ahora estaba avanzando.

Entonces decidí ver más de cerca la base de datos de la línea de tiempo de las máquinas 2004 y 1809 y, utilizando lo que hemos visto en las publicaciones anteriores y lo que sabemos ahora, ver cómo funciona todo esto en la línea de tiempo.

Para probarlo, hice lo siguiente:

  • Abrí Cellebrite BlackLight y creé un nuevo caso
  • Agregué los VMDK de cada una de las máquinas virtuales al caso
  • Me aseguré de seleccionar el procesamiento “Actionable Intel” Inteligencia Aprovechable (es de forma predeterminada)
  • Vi la sección Inteligencia Aprovechable → Ejecución del programa → Caché de actividades.

Retrocediendo y viendo las marcas de tiempo en mis archivos de bloc de notas de las figuras 6 y 7 anteriores, noté que mi hora de inicio de copiar/pegar era alrededor de las 6:50 p.m. del 30 de junio de 2020. Luego, clasifiqué por hora de inicio e inmediatamente noté que allí había muchas entradas duplicadas de “Identificación de GUID” en la figura 8 a continuación (por ejemplo, “AF42″… en las filas uno y tres, “F2FE”… en las filas dos y cuatro son iguales).

Sabemos por publicaciones anteriores que deben ser identificadores únicos para actividades. Nuestras publicaciones anteriores también nos mostraron que vemos duplicados aquí porque las actividades se han sincronizado en las dos máquinas desde que usé en ambas la misma cuenta de MS.

Figura 8

Los datos duplicados a veces pueden ser útiles, pero otras veces pueden complicar las cosas. Esta vez parecía lo último. Entonces, primero miré el caché de actividades de la máquina 2004 seleccionando solo la máquina con Win10 versión 2004 en la sección evidencia de la “Component List.” “Lista de componentes”. Esto eliminó las entradas duplicadas, como podemos ver en la figura 9 a continuación.

Figura 9

Después de ordenar por hora de inicio, podemos ver (figura 10 a continuación) 6-7 entradas que podrían ser importantes dado el marco de tiempo en el que hice copiar y pegar. La columna “Identificación de aplicación” nos dice que todas las entradas menos una están relacionadas con el bloc de notas. (Nota al margen: También utilicé el filtro de vista de Cellebrite BlackLight para eliminar otras actividades no relacionadas).

Figura 10

Desplazándose hacia la derecha (vea la figura 11 a continuación), podemos ver que estas actividades se originaron en dos máquinas diferentes según las dos identificaciones diferentes de dispositivo de plataforma enumeradas. Usando la técnica descrita en nuestra publicación anterior, puede recordar que podemos determinar que las entradas yugS… se originaron en la máquina 1809 y las entradas mWKk… se originaron en la máquina 2004.

Luego me concentré solo en las entradas que se originaron en la máquina 1809 y cómo podemos ver en la figura 11 a continuación, hay un tipo de actividad 5 para abrir el bloc de notas y un tipo de actividad 6 para interactuar con la aplicación. (Los tipos de actividad 5 y 6 parecen estar en orden inverso, pero al verificar la hora de inicio, ambos comenzaron en el mismo segundo, por lo que se enumeran en orden arbitrario). Podemos ver que el archivo “Bloc de notas” se utilizó para acceder en la “columna de identificación de actividad de la aplicación: archivo morecopypasta.txt”. Aquí es donde pegamos el texto en la figura 7 anterior.

Figura 11

Si ahora nos enfocamos en las entradas que se originan en la máquina 2004, podemos ver que hay cuatro líneas relevantes en la figura 11 anterior. Dos de ellos son tipo de actividad 6, lo que significa que el usuario estaba comprometido con la aplicación de bloc de notas.

El archivo con el que el bloc de notas se utilizó para acceder lo podemos ver en el campo Identificación de actividad de la aplicación: pasted.txt.txt. Este es el archivo del que copié el texto en la figura 6 anterior.

También hay un tipo de actividad 16, que nos dice que el bloc de notas se usó para una operación de copiar o pegar. Y podemos ver un tipo de actividad 10, que nos dice que la actividad del portapapeles ocurrió.

Si observamos más en el tipo de actividad 16 (Copiar/Pegar) en la figura 12 a continuación, la identificación del grupo nos dice que la operación fue una operación de copiar. La carga útil del portapapeles, cuando se decodifica desde base64 es:

6:52 PM 30/6/2020 Copia en 2004

Hagamos copiar/pegar a través de la nube

Esto coincide con el texto que copié arriba, como se ve en la figura 6.

Figura 12

Es importante tener en cuenta que el tipo de actividad 10 no está directamente vinculado al bloc de notas por su identificación de aplicación, identificación de actividad de la aplicación o cualquier otro campo. Solo podemos inferir que el texto copiado o pegado en la carga útil del portapapeles se copió/pegó en el bloc de notas.

Si bien la mayoría de los datos se sincroniza entre máquinas, no todos lo hacen. Veamos el mismo período de tiempo en la base de datos de la línea de tiempo de la máquina 1809 en la figura 13 a continuación.

Figura 13

Se parece bastante a la base de datos de la maquina 2004, pero cuando nos desplazamos un poco (vea la figura 14 a continuación), vemos que falta una entrada.

Figura 14

No se ve actividad de tipo 16 en la base de datos de la línea de tiempo de la maquina 1809. Podríamos haber esperado ver un tipo de actividad 16 con una identificación de grupo de “Pegar” para que coincida con el otro tipo de actividad 16 con una identificación de grupo de “Copiar”. Ciertamente lo hice y con una versión diferente de la línea de tiempo que podríamos tener. Pero no estaba allí. ¿Recuerda cómo dijimos que este era un objetivo en constante evolución? Ahora que comprendemos un poco cómo se ve todo esto en la base de datos de la línea de tiempo, volvamos a nuestro conjunto original de preguntas en la sección de problemas.

Resultados

Después de revisar lo anterior (y de realizar algunas pruebas puntuales adicionales específicamente orientadas a responder nuestras preguntas), dedujimos lo siguiente:

¿Cómo llegaron allí los datos de la carga útil del portapapeles?

En la prueba anterior, copiamos los datos en la máquina 2004 y los pegamos en la máquina 1809. Esto dio como resultado que la carga útil del portapapeles se completara con la versión codificada en base64 del texto copiado. Pero más pruebas han mostrado que todo lo que se necesita para completar los datos es copiar el texto. No es necesario pegar.

¿Cuánto tiempo dura?

Al observar la base de datos de la línea de tiempo en la figura 15 a continuación, podemos ver que cada actividad tiene una Hora de inicio y una Hora de expiración. Si miramos la diferencia entre ellas, siempre son exactamente 12 horas. Y sabemos que las actividades se eliminan de la base de datos al expirar. Integrar esto significa que el texto copiado permanecerá en la base de datos durante 12 horas y luego se eliminará.

Figura 15

¿Los datos del portapapeles se almacenan en otro lugar?

Después de buscar en la base de datos de la línea de tiempo de la máquina 2004, no encontré otros lugares donde se almacenaron los datos del portapapeles. Sin embargo, sabiendo que las diferentes versiones de Windows se comportan de manera diferente, observé la máquina 1809 y descubrí que para el tipo de actividad 10, el campo de carga útil contiene una copia de los datos de carga útil del portapapeles.

Vea la figura 16 a continuación de la máquina 1809 donde el contenido de la carga útil en el panel inferior derecho coincidía con la carga útil del portapapeles.

Figura 16

En la figura 17 de la máquina 2004 a continuación, sin embargo, el campo de carga útil está vacío.

Figura 17

También hay evidencia de que los datos del portapapeles pueden almacenarse fuera de la línea de tiempo, pero eso está más allá del alcance del análisis actual.

¿Solo se almacena texto?

Cuando miramos la carga útil en la figura 16 anterior, podemos ver que el formatName es “texto”. Esto implica que posiblemente haya datos que no sean de texto almacenados en los campos de carga útil y, consecuentemente, carga útil del portapapeles. Incluso hay varias fuentes (consulte la referencia a continuación) que dicen que el portapapeles de la nube maneja texto e imágenes.

Desafortunadamente, he probado varios métodos para sincronizar una imagen a través de la sincronización en la nube del portapapeles, o en la base de datos de la línea de tiempo y no he podido hacerlo posible. Tal vez sea una función que funcione en el futuro; hay alguna configuración para cambiar; o simplemente no “lo hice bien”. Como puede ver, sumergirse en la línea de tiempo puede revelar todo tipo de información que quizás no haya pensado en buscar.

Con Cellebrite BlackLight y Cellebrite MacQuisition, diseñamos para ayudar a que la búsqueda de toda esta nueva información sea mucho más fácil, ya sea que esté usando un dispositivo basado en Windows o Mac.

Esperamos que esta serie de blogs le haya resultado útil. Obtenga más información sobre cómo Cellebrite BlackLight y Cellebrite MacQuisition pueden ayudarlo a avanzar en sus investigaciones, [1}[2}aquí{3]{4].

Referencias

A continuación, se muestran algunas referencias importantes para aquellos que deseen profundizar en la línea de tiempo.

Análisis forense de la línea de tiempo, historial del portapapeles y más

*** Definitivamente vea toda la información y herramientas de Costas Katsavounidis aquí:

[1] Costas: https://github.com/kacos2000/WindowsTimeline Análisis forense del historial del portapapeles

[2] https://thinkdfir.com/2018/10/14/clippy-history/ Información general del portapapeles

[3] https://www.howtogeek.com/351978/using-windows-10s-new-clipboard-history-and-cloud-sync/

[4] https://community.windows.com/en-us/stories/cloud-clipboard-windows-10

[5] https://www.bleepingcomputer.com/news/microsoft/microsoft-introduces-a-redesigned-windows-clipboard-experience/

Videos de MS

[6] https://channel9.msdn.com/events/Build/2017/B8108

[7] https://channel9.msdn.com/Events/Windows/Windows-Developer-Day-Fall-Creators-Update/WinDev011

[8] https://channel9.msdn.com/Events/Connect/2017/B111

Algunas descripciones de campos de la base de datos de la línea de tiempo

[9] https://docs.microsoft.com/en-us/uwp/api/windows.applicationmodel.useractivities.useractivity?view=winrt-19041

La perspectiva del desarrollador

Actividad

[10] https://docs.microsoft.com/en-us/graph/api/resources/projectrome-activity?view=graph-rest-1.0

Elemento de historial

[11] https://docs.microsoft.com/en-us/graph/api/resources/projectrome-historyitem?view=graph-rest-1.0

[12] https://docs.microsoft.com/en-us/windows/uwp/launch-resume/useractivities

Proyecto Roma

[13] https://github.com/Microsoft/project-rome

Interfaz de programación de aplicaciones de gráfico

[14] https://developer.microsoft.com/en-us/graph

Publicaciones de blog y seminarios web de BBT

Vea cómo nuestras soluciones de inteligencia digital pueden ayudarlo a resolver casos de forma más rápida.

Comuníquese con nosotros

Share this post