Skip to content

Parsers de caché RDP: bmc-tools y alternativas

bmc-tools, RdpCacheStitcher y RDP Bitmap Cache Parser frente a frente: qué hace cada uno, cuándo usarlo en un caso y los límites reales de la herramienta web.

Publicado el 7 min de lectura

Resumen. bmc-tools (ANSSI, Python) es el decodificador de referencia de la caché de mapas de bits RDP y el que conviene citar. RdpCacheStitcher (BSI) es una interfaz gráfica que ayuda a unir en pantallas los mosaicos exportados por bmc-tools. RDP Bitmap Cache Parser decodifica los mismos archivos en el navegador, con su propio decodificador, escrito de forma independiente y validado con bmc-tools, y añade una galería con pistas de triaje, un collage, un lienzo de reconstrucción y exportaciones. No sustituye a una segunda opinión: en casos reales, compare los mosaicos importantes con bmc-tools.

Si está eligiendo herramienta porque acaba de encontrar una carpeta Terminal Server Client\Cache, la guía de análisis forense de la caché de mapas de bits RDP explica qué tiene delante.

Las tres herramientas de un vistazo

bmc-toolsRdpCacheStitcherRDP Bitmap Cache Parser
MantenedorANSSI (Francia)BSI (Alemania)Independiente (este sitio)
FormaScript de Python en línea de comandosInterfaz gráfica de escritorioPágina web, WebAssembly en un Web Worker
Entradabcache*.bmc, Cache*.binMosaicos exportados por bmc-toolsbcache*.bmc, Cache*.bin, carpetas, ZIP
DecodificaciónSí (referencia)No, usa mosaicos exportadosSí (independiente, validada con bmc-tools)
CollageSí (-b, ancho -w)No es su objetivoSí, configurable, dos disposiciones
Reconstrucción de pantallasNoSí, es su objetivoLienzo manual
Restos de ranuraSe exportan con -oTrabaja sobre mosaicos exportadosSe muestran y se marcan
InstalaciónPythonDescargaNinguna
LicenciaCeCILL 2.1Consulte su repositorioDe uso gratuito

Describimos RdpCacheStitcher solo hasta donde estamos seguros; lea su repositorio y su manual para conocer todas sus funciones.

bmc-tools

bmc-tools es la implementación de referencia. Buena parte del trabajo público sobre este artefacto se apoya en su ingeniería inversa de los formatos BMC y Cache*.bin. Nuestro propio decodificador es una implementación aparte, escrita a partir de las especificaciones de protocolo publicadas por Microsoft (MS-RDPBCGR y MS-RDPEGDI) y de la descripción pública de los archivos que hizo el CERT-FR (boletín CERTFR-2016-ACT-017), y validada mosaico a mosaico con bmc-tools. La descompresión de mosaicos (RLE entrelazado) está disponible desde la versión 3.00, de 2022.

Opciones:

OpciónFunción
-sArchivo o carpeta de origen
-dCarpeta de destino
-cNúmero de mosaicos que extraer
-vSalida detallada
-o / --oldExportar también los datos antiguos de las ranuras (restos)
-bGenerar un mapa de bits de collage
-wAncho del collage en mosaicos por fila (64 por defecto)
-kCarpetas de salida al estilo KAPE

Salida: un BMP por mosaico con el nombre <file>_<NNNN>.bmp, y <file>_collage.bmp cuando se pide un collage.

Puntos fuertes: el comportamiento de referencia, automatizable, fácil de ejecutar sobre muchas colecciones, citable. Contrapartidas: requiere un entorno Python en la máquina de análisis, y después hay que recorrer cientos o miles de archivos BMP en un visor de imágenes.

RdpCacheStitcher

RdpCacheStitcher, publicado por el BSI, es una interfaz gráfica que ayuda a unir en pantallas los mosaicos exportados. Toma como entrada los mosaicos exportados por bmc-tools. Úselo cuando el trabajo consista en reconstruir pantallas completas y quiera una aplicación de escritorio dedicada a ello.

Puntos fuertes: diseñado específicamente para la reconstrucción. Contrapartidas: es un segundo paso después de bmc-tools, y requiere instalación en el escritorio.

RDP Bitmap Cache Parser

La herramienta de este sitio decodifica ambos formatos en el navegador. Los archivos nunca salen de la máquina: la decodificación se ejecuta en Rust compilado a WebAssembly, en un Web Worker.

Lo que añade alrededor del decodificador:

  • Carga de archivos, carpetas y ZIP (KAPE, Velociraptor, perfiles comprimidos), con cada archivo atribuido a la cuenta tomada de Users\<name>\ en la ruta.
  • Panel Hallazgos: cuentas que usaron el cliente RDP, mosaicos tipo consola, restos de ranura, mosaicos no decodificables y un recordatorio de que los mosaicos no llevan marcas de tiempo.
  • Galería con índice de mosaico y orden de caché, pistas de triaje (Tipo consola, Tipo texto, Resto de ranura, Liso, Duplicado, No decodificado), un filtro Revisar primero y la casilla Ocultar mosaicos lisos y duplicados.
  • Collage con mosaicos por fila configurables, en Orden de caché o en Disposición de bmc-tools para reproducir la distribución del _collage.bmp de bmc-tools.
  • Reconstruir: un lienzo en cuadrícula para colocar mosaicos a mano, exportado como PNG más un JSON de disposición.
  • Detalle del mosaico: clave, tamaño, profundidad, compresión, desplazamiento en el archivo.
  • Exportaciones: CSV, JSON, un ZIP de mosaicos en PNG o en BMP con nombres como la salida de bmc-tools (con un tiles.csv), PNG de un mosaico, PNG del collage.

Límites reales

LímiteQué hacer
Sin OCRLea el texto usted mismo y transcríbalo en sus notas
Sin unión automáticaColoque los mosaicos a mano en el lienzo Reconstruir, o use RdpCacheStitcher
Las pistas heurísticas pueden fallar por defecto o por excesoTrátelas como orden de lectura, no como hallazgos
Colores de 8 bits aproximadosLa paleta no está en la caché; fíese de las formas y del texto
Mosaicos estrechos decodificados con su propio ancho como paso de filabmc-tools asume 64; compare ambos en los mosaicos estrechos
Mosaicos de 8 y 32 bits descomprimidos mostrados con su profundidad real; mosaicos de 32 bits con códec planar decodificadosbmc-tools muestra los mosaicos descomprimidos a 16 bits y omite los planar; espere diferencias en esos mosaicos
Validado con archivos sintéticos y construidos a manoContraste los mosaicos importantes con bmc-tools en casos reales
Se ejecuta en una pestaña del navegadorLas colecciones muy grandes dependen de la memoria del navegador

La herramienta no muestra ningún intervalo de tiempo porque la caché no contiene horas. El fechado se hace con los artefactos del equipo de origen.

Cuál usar y cuándo

SituaciónHerramienta sugerida
Vistazo rápido a una carpeta de caché en un portátil de análisis sin PythonRDP Bitmap Cache Parser
Procesamiento por lotes de muchas colecciones en un pipelinebmc-tools
Reconstruir pantallas completas con una herramienta de escritorio dedicadabmc-tools y después RdpCacheStitcher
Triaje: ¿qué mosaicos debo leer primero?RDP Bitmap Cache Parser (Revisar primero)
Un hallazgo que va a un informeDecodificar con dos herramientas y comparar
Compartir mosaicos con un colega que trabaja con flujos de bmc-toolsZIP BMP de RDP Bitmap Cache Parser (nombres de bmc-tools)

Las herramientas se combinan bien. Un recorrido práctico: triaje en el navegador, exportar el ZIP BMP, reconstruir en RdpCacheStitcher o en el lienzo Reconstruir, y volver a ejecutar bmc-tools sobre los originales para los mosaicos que vaya a citar.

Contrastar una herramienta con otra

Para un mosaico que piensa citar:

  1. Anote su índice y su desplazamiento en el archivo en el panel de detalle del mosaico.
  2. Ejecute bmc-tools sobre el mismo archivo y abra el BMP correspondiente (por índice, y por contenido si la numeración difiere).
  3. Compare las imágenes. Las diferencias son más probables en mosaicos estrechos (paso de fila), en mosaicos de 8 bits (paleta), en mosaicos de 8 y 32 bits descomprimidos (bmc-tools los muestra a 16 bits) y en mosaicos de 32 bits con códec planar, que bmc-tools omite.
  4. Registre ambos resultados en sus notas.

Para un recorrido del flujo en el navegador, vea cómo analizar la caché de mapas de bits RDP en el navegador.

Artículos relacionados

Artículos relacionados

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.