Skip to content

Cache0000.binbcache24.bmc

Parser de caché de mapas de bits RDP

Vea lo que mostraba la pantalla remota. Decodifique la caché de mapas de bits del cliente RDP — bcache*.bmc heredados y Cache0000.bin —, explore cada mosaico, dispóngalos como bmc-tools y reconstruya pantallas a mano. Se analiza en su navegador con WebAssembly: no se sube nada.

Suelte aquí los archivos de caché RDP

Cache0000.bin, Cache0001.bin… y bcache2.bmc, bcache22.bmc, bcache24.bmc de Users\<name>\AppData\Local\Microsoft\Terminal Server Client\Cache\. Las carpetas y las colecciones de triaje en ZIP (KAPE, Velociraptor) funcionan tal cual.

Una caché sintética dibujada para una intrusión ficticia — sin datos reales. Consejo: abra Collage y configure 7 mosaicos por fila.

100 % del lado del cliente: WebAssembly decodifica los archivos en su navegador y nunca se suben.

Cómo obtener sus datos

Guía completa de adquisición

La caché se encuentra en el equipo donde se ejecutó el cliente de Escritorio remoto — el origen de la conexión —, en el perfil de cada usuario. Copie la carpeta Cache completa de cada cuenta y suelte el resultado aquí.

  1. Copie la carpeta Terminal Server Client\Cache de cada perfil
  2. Suelte la carpeta o el ZIP aquí
  3. Decodificado en su navegador, nunca se sube

Primero cierre cualquier ventana abierta de Conexión a Escritorio remoto (los archivos en uso no se pueden copiar). Luego pegue en Windows PowerShell ejecutado como administrador: copia la carpeta Cache de cada cuenta y conserva la estructura Users\<name>\.

PowerShell · Admin
Get-ChildItem C:\Users -Directory | ForEach-Object {
  $rel = "Users\$($_.Name)\AppData\Local\Microsoft\Terminal Server Client\Cache"
  if (Test-Path "C:\$rel") { robocopy "C:\$rel" "C:\triage\$rel" /E /B /R:0 /W:0 /NP /NDL /NFL | Out-Null }
}

Resultado: C:\triage\Users\<name>\AppData\Local\Microsoft\Terminal Server Client\Cache\ con los archivos .bin y .bmc. Suelte aquí la carpeta C:\triage\Users (arrástrela o use Elegir una carpeta).

¿Analiza en otro equipo? Empaquételo en un solo ZIP con el tar.exe integrado en Windows 10 1803 y posteriores:

PowerShell / cmd
tar -a -c -f C:\triage\rdpcache.zip -C C:\triage Users

Trampas comunes

  • Es posible que un archivo en uso por una sesión de Escritorio remoto abierta no se pueda copiar: cierre la sesión o use KAPE o una imagen de disco.
  • Copiar no altera ninguna evidencia, pero las marcas de tiempo de los propios archivos son su única pista sobre cuándo tuvieron lugar las sesiones: regístrelas (o recopile la $MFT) antes que nada.
  • El almacenamiento persistente en caché de mapas de bits puede desactivarse en el cliente o en un archivo .rdp: una carpeta vacía o ausente no demuestra que no hubo uso de RDP.

¿Qué es la caché de mapas de bits RDP?

Para no volver a descargar las mismas partes de la pantalla, el cliente de Escritorio remoto (mstsc.exe) mantiene una caché persistente de pequeños mapas de bits — normalmente mosaicos de 64×64 píxeles — enviados por el equipo remoto. Los archivos permanecen en el perfil del usuario que ejecutó el cliente.

Una vez recompuestos, los mosaicos muestran fragmentos de lo que ese usuario vio en la pantalla remota: consolas y los comandos que contienen, ventanas de carpetas, herramientas, documentos. Para un investigador es una evidencia visual poco común del movimiento lateral, recopilada en el equipo de origen.

Dónde se almacena

  • C:\Users\<user>\AppData\Local\Microsoft\Terminal Server Client\Cache\ en el equipo desde el que se realizó la conexión.
  • Cache0000.bin, Cache0001.bin…: formato más reciente, un encabezado "RDP8bmp" seguido de mosaicos de 32 bits sin comprimir.
  • bcache2.bmc, bcache22.bmc, bcache24.bmc: formato heredado, ranuras fijas de 64×64 a 8, 16 o 32 bits por píxel, con mosaicos a menudo comprimidos con el códec RLE entrelazado de RDP.

Por qué es importante en una investigación

  • Muestra lo que un atacante o un administrador vio realmente en el host remoto — incluso cuando ese host fue borrado o nunca se adquirió su imagen.
  • Los mosaicos de consola pueden revelar comandos, rutas y nombres de herramientas; los del Explorador revelan nombres de carpetas y archivos.
  • Su sola presencia demuestra que la cuenta utilizó el cliente de Escritorio remoto en este equipo; correlaciónela con el registro de eventos del cliente y el registro de Windows para identificar el destino y fechar las sesiones.
  • Las ranuras heredadas pueden conservar fragmentos de mosaicos anteriores (restos de ranura).

Limitaciones

  • Los mosaicos no tienen marcas de tiempo ni posición en pantalla: el orden es el orden de caché, y los mosaicos idénticos se almacenan una sola vez.
  • Solo se almacena en caché lo que el servidor envió como mapas de bits; algunas sesiones dejan pocos mosaicos útiles, y la caché tiene un tamaño limitado y se recicla.
  • Los mosaicos heredados de 8 bits carecen de su paleta, por lo que los colores son aproximados. No hay OCR: una persona debe leer los mosaicos.
  • Las indicaciones heurísticas (tipo consola, tipo texto) pueden pasar por alto mosaicos o marcar otros inofensivos.

Cómo obtener los archivos

  • Recopile la carpeta Cache completa de cada perfil con KAPE (target RDPCache), Velociraptor (Windows.Triage.Targets, RDPCache) o a partir de una imagen de disco.
  • Registre las marcas de tiempo de los archivos: son la principal pista sobre cuándo tuvieron lugar las sesiones.
  • Conserve la estructura de carpetas Users\<name>\ para que cada caché se atribuya a su cuenta.

Preguntas frecuentes

¿Se suben mis archivos de caché a algún sitio?

No. El decodificador está escrito en Rust compilado a WebAssembly y se ejecuta en un Web Worker en su navegador. No hay ningún punto de subida; los mosaicos, collages y exportaciones se generan localmente.

¿En qué se diferencia de bmc-tools?

Tiene su propio decodificador, escrito de forma independiente a partir de las especificaciones de Microsoft y validado frente a bmc-tools, y añade lo que resulta difícil en la línea de comandos: una galería con búsqueda, ajustes de collage modificables al instante, un lienzo de reconstrucción con arrastrar y soltar, indicaciones de triaje y exportaciones (PNG, BMP con nombres de bmc-tools, CSV, JSON). bmc-tools sigue siendo la referencia para contrastar los hallazgos importantes.

¿Puede indicarme cuándo se mostró un mosaico?

No — la caché no almacena ninguna hora por mosaico, y esta herramienta no se la inventa. Feche las sesiones con las marcas de tiempo de los archivos de caché, el registro de eventos RDPClient/Operational (evento 1024) y las claves de registro de Terminal Server Client.

¿Qué equipo contiene la caché?

El cliente: el equipo donde se ejecutó Conexión a Escritorio remoto, en el perfil del usuario que la inició. Muestra la pantalla remota, por lo que el pivote de un atacante del host A al host B deja fragmentos de la pantalla de B en A.

¿Por qué no se alinean las filas de mi collage?

Los mosaicos se almacenan en el orden en que entraron en caché, los idénticos una sola vez, y los mosaicos de los bordes son más pequeños. Pruebe otros anchos y termine a mano en la vista Reconstruir.

Acerca del decodificador

El decodificador es una implementación independiente en Rust, escrita a partir de las especificaciones abiertas de Microsoft ([MS-RDPBCGR] para el RLE entrelazado, [MS-RDPEGDI] para el códec planar de RDP 6.0) y de trabajos públicos como el boletín CERT-FR CERTFR-2016-ACT-017. bmc-tools de la ANSSI (github.com/ANSSI-FR/bmc-tools), la herramienta de referencia para este artefacto, se usó para validar el resultado mosaico a mosaico; no se reutiliza nada de su código. Diferencias documentadas: los mosaicos de menos de 64 px de ancho conservan su ancho real, los mosaicos descomprimidos de 8 y 32 bpp conservan su profundidad de color real, los mosaicos planares de RDP 6.0 se decodifican y los archivos dañados se decodifican en la medida de lo posible. Contraste con bmc-tools en los casos importantes.

Paso a paso: cargue bcache*.bmc y Cache*.bin en un parser gratuito en el navegador, haga triaje, arme un collage, reconstruya una pantalla y exporte.
Qué artefactos del equipo de origen RDP muestran adónde y cuándo se conectó un usuario, y cómo usarlos para fechar y atribuir lo que muestra la caché.
Por qué un collage de caché RDP se alinea en unas zonas y se desplaza en otras, cómo elegir su ancho y cómo rehacer una pantalla mosaico a mosaico.