Cómo analizar la caché de mapas de bits RDP en el navegador
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.
Resumen. Recolecte Terminal Server Client\Cache de cada usuario del equipo de origen, suelte la carpeta o el ZIP en RDP Bitmap Cache Parser, lea el panel Hallazgos y recorra las pestañas: Galería (con Revisar primero y Ocultar mosaicos lisos y duplicados), Collage (ajuste los mosaicos por fila), Reconstruir (coloque mosaicos en una cuadrícula) y Lista. Exporte CSV, JSON, un ZIP de mosaicos en PNG o en BMP al estilo bmc-tools, o la pantalla reconstruida. La decodificación se ejecuta en WebAssembly dentro de su navegador; los archivos nunca se suben.
Este es el complemento práctico de la guía de análisis forense de la caché de mapas de bits RDP. Los ejemplos usan el ejemplo integrado, que es sintético y ficticio: se generó para esta herramienta y no procede de un caso real.
Antes de empezar
| Necesita | Por qué |
|---|---|
La carpeta Cache de cada usuario, del equipo de origen | Es donde el cliente escribe la caché |
La parte Users\<name>\ de la ruta | La herramienta atribuye cada archivo a esa cuenta |
| Un navegador de escritorio actual | La decodificación se ejecuta como WebAssembly en un Web Worker |
| Opcional: bmc-tools | Para contrastar los mosaicos importantes |
Paso 1: recolectar la carpeta de caché
Cierre las sesiones de Escritorio remoto abiertas y copie la carpeta de cada perfil. El bucle de PowerShell que muestra el sitio:
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 }
}
tar -a -c -f C:\triage\rdpcache.zip -C C:\triage Users
KAPE (--target RDPCache), Velociraptor (Windows.Triage.Targets con el target RDPCache) y una imagen montada también sirven; vea ubicación y adquisición de la caché de mapas de bits RDP. Calcule el hash de lo recolectado.
Paso 2: cargar los archivos
Abra la página de inicio de la herramienta. Puede soltar:
- archivos sueltos (
bcache*.bmc,Cache*.bin); - una carpeta, por ejemplo un perfil copiado;
- un ZIP: las colecciones de KAPE y Velociraptor y los perfiles comprimidos se abren en el navegador.
Para aprender primero la interfaz, pulse Probar un ejemplo. El espacio de trabajo pasa a pantalla completa automáticamente; pulse Esc para salir.
El ejemplo contiene dos archivos de un perfil ficticio svc_backup: Cache0000.bin (32 bpp, 47 mosaicos) y bcache22.bmc (16 bpp, 15 mosaicos, 10 de ellos comprimidos con RLE).
Paso 3: leer el panel Hallazgos
Antes de mirar un solo mosaico, lea el resumen:
- Cuentas que usaron el cliente RDP, según las rutas.
- Mosaicos tipo consola: donde puede haber comandos legibles.
- Restos de ranura: fragmentos de mosaicos anteriores en ranuras
.bmc(resto de ranura). - Mosaicos no decodificables, si los hay.
- El recordatorio de que los mosaicos no tienen marcas de tiempo. La herramienta no muestra ningún intervalo de tiempo ni se lo inventa; feche las sesiones con los artefactos del equipo de origen.
Paso 4: hacer triaje en la galería
La pestaña Galería muestra cada mosaico con su índice en el orden de caché. Dos controles hacen la mayor parte del trabajo:
| Control | Efecto |
|---|---|
| Ocultar mosaicos lisos y duplicados | Quita los mosaicos de un solo color y los idénticos a uno anterior |
| Revisar primero | Conserva los mosaicos tipo consola y tipo texto |
Las pistas de triaje son heurísticas:
| Pista | Significado |
|---|---|
| Tipo consola | Contenido parecido a texto sobre fondo oscuro; puede haber comandos legibles |
| Tipo texto | Fondo uniforme con muchos bordes nítidos |
| Resto de ranura | Sobrante de un mosaico anterior en una ranura .bmc |
| Liso | Un solo color |
| Duplicado | Idéntico a un mosaico anterior |
| No decodificado | El mosaico no se pudo decodificar |
Pueden pasar por alto mosaicos y marcar otros inofensivos. Le indican qué conviene leer primero, nada más. En el ejemplo, Revisar primero saca a la luz los mosaicos de consola con el comando rclone.exe copy y la vista anterior de tar -xf tools.zip -C C:\ProgramData\Intel.
Paso 5: inspeccionar un mosaico
Haga clic en un mosaico para abrir su detalle: clave de caché, ancho y alto, profundidad de color, compresión (RLE entrelazado o ninguna), desplazamiento en el archivo y pista de triaje. El desplazamiento le permite comprobar el mosaico en un editor hexadecimal. Un mosaico individual puede exportarse como PNG para sus notas.
En los mosaicos de 8 bits, recuerde que los colores son aproximados: la paleta no se guarda en la caché.
Paso 6: armar un collage
La pestaña Collage dispone todos los mosaicos en una sola imagen. Defina el número de mosaicos por fila y elija una disposición: Orden de caché (mosaico 0 arriba a la izquierda) o Disposición de bmc-tools (la misma distribución que el collage de bmc-tools, para compararlos lado a lado).
En el ejemplo, ponga 7 mosaicos por fila. Las filas centrales (mosaicos 7–20) se alinean y el comando rclone se lee de corrido; la primera y la última fila se desplazan, porque las piezas idénticas se guardaron una sola vez. Reconstruir pantallas RDP a partir de los mosaicos de caché explica el efecto. Exporte el collage como PNG.
Paso 7: reconstruir una pantalla
La pestaña Reconstruir es una cuadrícula. Arrastre un mosaico a una celda, o seleccione un mosaico y haga clic en una celda. Coloque primero las filas alineadas y después complete la barra de título y las zonas vacías de la consola reutilizando el mismo mosaico en varias celdas. Deje las celdas vacías cuando no esté seguro.
Exporte el lienzo como PNG y el JSON de disposición, que registra qué mosaico va en cada sitio. Incluya ambos en el expediente para que un revisor pueda comprobar su colocación.
Paso 8: exportar la evidencia
| Exportación | Contenido |
|---|---|
| CSV / JSON | El inventario de mosaicos con sus metadatos |
| ZIP de mosaicos | Cada mosaico en PNG, o en BMP con nombres como la salida de bmc-tools (<file>_<NNNN>.bmp), más un tiles.csv dentro |
| PNG de un mosaico, PNG del collage | Para el informe |
| PNG de Reconstruir + JSON de disposición | La pantalla reconstruida y cómo se construyó |
Los nombres BMP le permiten pasar los mosaicos a herramientas pensadas para la salida de bmc-tools, como RdpCacheStitcher. La pestaña Lista ofrece una vista en lista de los mosaicos.
Límites que conviene tener presentes
- Sin OCR y sin unión automática: usted lee y coloca los mosaicos.
- Los mosaicos de menos de 64 píxeles de ancho usan su propio ancho como paso de fila; bmc-tools asume 64, así que los mosaicos estrechos pueden diferir entre herramientas.
- El decodificador es una implementación independiente (MS-RDPBCGR y MS-RDPEGDI de Microsoft e investigación pública) y se ha validado mosaico a mosaico con bmc-tools de la ANSSI, sobre archivos sintéticos y construidos a mano. En casos reales, compare los mosaicos importantes con bmc-tools; vea la comparativa de parsers de caché RDP.
RDP Bitmap Cache Parser es un proyecto independiente, no afiliado a Microsoft ni respaldado por ella.