Skip to content

Cache0000.binbcache24.bmc

Parseur de cache bitmap RDP

Voyez ce que montrait l'écran distant. Décodez le cache bitmap du client RDP — l'ancien bcache*.bmc et Cache0000.bin —, parcourez chaque tuile, disposez-les comme bmc-tools et reconstruisez les écrans à la main. Analyse dans votre navigateur avec WebAssembly : aucun fichier n'est envoyé.

Déposez ici les fichiers de cache RDP

Cache0000.bin, Cache0001.bin… et bcache2.bmc, bcache22.bmc, bcache24.bmc depuis Users\<name>\AppData\Local\Microsoft\Terminal Server Client\Cache\. Les dossiers et les collectes de triage ZIP (KAPE, Velociraptor) sont acceptés tels quels.

Un cache synthétique créé pour une intrusion fictive — aucune donnée réelle. Astuce : ouvrez Collage et réglez 7 tuiles par ligne.

100 % côté client : les fichiers sont décodés par WebAssembly dans votre navigateur et ne sont jamais envoyés.

Comment récupérer vos données

Guide d'acquisition complet

Le cache se trouve sur la machine où le client Bureau à distance a été exécuté — la source de la connexion —, dans le profil de chaque utilisateur. Copiez le dossier Cache complet de chaque compte, puis déposez le résultat ici.

  1. Copiez le dossier Terminal Server Client\Cache de chaque profil
  2. Déposez le dossier ou le ZIP ici
  3. Décodé dans votre navigateur, jamais envoyé

Fermez d'abord toute fenêtre Connexion Bureau à distance ouverte (les fichiers en cours d'utilisation ne peuvent pas être copiés). Collez ensuite dans Windows PowerShell exécuté en tant qu'administrateur : la commande copie le dossier Cache de chaque compte en conservant l'arborescence 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 }
}

Résultat : C:\triage\Users\<name>\AppData\Local\Microsoft\Terminal Server Client\Cache\ avec les fichiers .bin et .bmc. Déposez ici le dossier C:\triage\Users (glissez-le, ou utilisez Choisir un dossier).

Analyse sur une autre machine ? Regroupez tout dans un seul ZIP avec le tar.exe intégré à Windows 10 1803 et versions ultérieures :

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

Pièges

  • Un fichier utilisé par une session Bureau à distance ouverte peut ne pas se copier : fermez la session, ou utilisez KAPE ou une image disque.
  • La copie ne modifie aucune preuve, mais les horodatages des fichiers eux-mêmes sont votre seul indice sur la date des sessions : relevez-les (ou collectez la $MFT) avant toute autre chose.
  • La mise en cache persistante des bitmaps peut être désactivée dans le client ou dans un fichier .rdp : un dossier vide ou absent ne prouve pas l'absence d'utilisation de RDP.

Qu'est-ce que le cache bitmap RDP ?

Pour éviter de retélécharger les mêmes morceaux d'écran, le client Bureau à distance (mstsc.exe) conserve un cache persistant de petits bitmaps — généralement des tuiles de 64×64 pixels — envoyés par la machine distante. Les fichiers restent dans le profil de l'utilisateur qui a exécuté le client.

Une fois réassemblées, les tuiles montrent des fragments de ce que cet utilisateur a vu sur l'écran distant : consoles et commandes saisies, fenêtres de dossiers, outils, documents. Pour un enquêteur, c'est une preuve visuelle rare de mouvement latéral, collectée sur la machine source.

Où il est stocké

  • C:\Users\<user>\AppData\Local\Microsoft\Terminal Server Client\Cache\ sur la machine depuis laquelle la connexion a été établie.
  • Cache0000.bin, Cache0001.bin… : format récent, un en-tête « RDP8bmp » suivi de tuiles 32 bits non compressées.
  • bcache2.bmc, bcache22.bmc, bcache24.bmc : ancien format, emplacements fixes de 64×64 à 8, 16 ou 32 bits par pixel, tuiles souvent compressées avec le codec RLE entrelacé de RDP.

Pourquoi c'est important dans une investigation

  • Montre ce qu'un attaquant ou un administrateur a réellement regardé sur l'hôte distant — même si cet hôte a été effacé ou jamais imagé.
  • Les tuiles de console peuvent révéler des commandes, des chemins et des noms d'outils ; les tuiles de l'explorateur révèlent des noms de dossiers et de fichiers.
  • Sa seule présence prouve que le compte a utilisé le client Bureau à distance sur cette machine ; corrélez avec le journal d'événements du client et le registre pour identifier la cible et dater les sessions.
  • Les emplacements ancien format peuvent conserver des fragments de tuiles plus anciennes (restes d'emplacement).

Limites

  • Les tuiles n'ont ni horodatage ni position à l'écran : l'ordre est celui du cache, et les tuiles identiques ne sont stockées qu'une fois.
  • Seul ce que le serveur a envoyé sous forme de bitmaps est mis en cache ; certaines sessions laissent peu de tuiles exploitables, et le cache est limité en taille et recyclé.
  • Les tuiles 8 bits de l'ancien format n'ont pas leur palette, les couleurs sont donc approximatives. Il n'y a pas d'OCR : les tuiles doivent être lues par un humain.
  • Les indices heuristiques (type console, type texte) peuvent manquer des tuiles ou en signaler d'anodines.

Comment récupérer les fichiers

  • Collectez le dossier Cache complet de chaque profil avec KAPE (cible RDPCache), Velociraptor (Windows.Triage.Targets, RDPCache) ou depuis une image disque.
  • Relevez les horodatages des fichiers : ils sont le principal indice sur la date des sessions.
  • Conservez l'arborescence Users\<name>\ pour que chaque cache soit attribué à son compte.

FAQ

Mes fichiers de cache sont-ils envoyés quelque part ?

Non. Le décodeur est écrit en Rust, compilé en WebAssembly et s'exécute dans un Web Worker de votre navigateur. Il n'existe aucun point d'envoi ; tuiles, collages et exports sont générés localement.

En quoi est-ce différent de bmc-tools ?

L'outil a son propre décodeur, écrit de façon indépendante à partir des spécifications de Microsoft et validé par comparaison avec bmc-tools, puis ajoute ce qui est difficile en ligne de commande : une galerie filtrable, des réglages de collage modifiables instantanément, un canevas de reconstruction par glisser-déposer, des indices de triage et des exports (PNG, BMP avec les noms bmc-tools, CSV, JSON). bmc-tools reste la référence pour recouper les constats importants.

Peut-il m'indiquer quand une tuile a été affichée ?

Non — le cache ne stocke aucune date par tuile, et cet outil n'en invente pas. Datez les sessions avec les horodatages des fichiers de cache, le journal d'événements RDPClient/Operational (événement 1024) et les clés de registre Terminal Server Client.

Quelle machine contient le cache ?

Le client : la machine où Connexion Bureau à distance a été exécutée, dans le profil de l'utilisateur qui l'a lancée. Il montre l'écran distant : un pivot d'un attaquant de l'hôte A vers l'hôte B laisse donc des fragments de l'écran de B sur A.

Pourquoi les lignes de mon collage ne s'alignent-elles pas ?

Les tuiles sont stockées dans l'ordre de leur mise en cache, les tuiles identiques une seule fois, et les tuiles de bord sont plus petites. Essayez d'autres largeurs, puis terminez à la main dans la vue Reconstruire.

À propos du décodeur

Le décodeur est une implémentation Rust indépendante, écrite à partir des spécifications ouvertes de Microsoft ([MS-RDPBCGR] pour le RLE entrelacé, [MS-RDPEGDI] pour le codec planaire RDP 6.0) et de travaux publics comme le bulletin CERT-FR CERTFR-2016-ACT-017. bmc-tools de l'ANSSI (github.com/ANSSI-FR/bmc-tools), l'outil de référence pour cet artefact, a servi à valider le résultat tuile par tuile ; aucune partie de son code n'est reprise. Différences documentées : les tuiles de moins de 64 px de large gardent leur largeur réelle, les tuiles décompressées en 8 et 32 bpp gardent leur profondeur de couleur réelle, les tuiles planaires RDP 6.0 sont décodées et les fichiers endommagés sont décodés autant que possible. Comparez avec bmc-tools pour les cas importants.

Pas à pas : charger bcache*.bmc et Cache*.bin dans un parseur gratuit, trier les tuiles, faire un collage, reconstruire un écran et exporter les preuves.
Quels artefacts du poste source RDP montrent où un utilisateur s'est connecté et quand, et comment s'en servir pour dater et attribuer le cache bitmap.
Pourquoi un collage du cache RDP s'aligne par endroits et se décale ailleurs, comment choisir sa largeur et reconstruire un écran tuile par tuile.