Skip to content

Cache0000.binbcache24.bmc

RDP Bitmap Cache Parser

Sehen Sie, was der entfernte Bildschirm zeigte. Dekodieren Sie den Bitmap-Cache des RDP-Clients — das ältere bcache*.bmc und Cache0000.bin —, durchsuchen Sie jede Kachel, ordnen Sie die Kacheln wie bmc-tools an und rekonstruieren Sie Bildschirme von Hand. Die Analyse erfolgt per WebAssembly in Ihrem Browser: Es wird nichts hochgeladen.

RDP-Cache-Dateien hier ablegen

Cache0000.bin, Cache0001.bin… sowie bcache2.bmc, bcache22.bmc, bcache24.bmc aus Users\<name>\AppData\Local\Microsoft\Terminal Server Client\Cache\. Ordner und ZIP-Triage-Sammlungen (KAPE, Velociraptor) funktionieren unverändert.

Ein synthetischer Cache zu einem fiktiven Angriff — keine echten Daten. Tipp: Öffnen Sie Collage und stellen Sie 7 Kacheln pro Zeile ein.

100 % clientseitig: Dateien werden per WebAssembly in Ihrem Browser dekodiert und nie hochgeladen.

So erhalten Sie Ihre Daten

Vollständige Sicherungsanleitung

Der Cache liegt auf dem Rechner, auf dem der Remotedesktop-Client lief — der Quelle der Verbindung —, im Profil jedes Benutzers. Kopieren Sie den gesamten Cache-Ordner jedes Kontos und legen Sie das Ergebnis hier ab.

  1. Ordner Terminal Server Client\Cache jedes Profils kopieren
  2. Ordner oder ZIP hier ablegen
  3. Im Browser dekodiert, nie hochgeladen

Schließen Sie zuerst alle offenen Fenster der Remotedesktopverbindung (verwendete Dateien können nicht kopiert werden). Fügen Sie den Befehl dann in eine als Administrator ausgeführte Windows PowerShell ein: Er kopiert den Cache-Ordner jedes Kontos und behält die Struktur Users\<name>\ bei.

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 }
}

Ergebnis: C:\triage\Users\<name>\AppData\Local\Microsoft\Terminal Server Client\Cache\ mit den .bin- und .bmc-Dateien. Legen Sie den Ordner C:\triage\Users hier ab (per Drag-and-drop oder über „Ordner auswählen“).

Analyse auf einem anderen Rechner? Packen Sie alles mit dem in Windows 10 ab Version 1803 integrierten tar.exe in ein ZIP:

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

Stolperfallen

  • Eine Datei, die von einer offenen Remotedesktopsitzung verwendet wird, lässt sich eventuell nicht kopieren: Beenden Sie die Sitzung oder verwenden Sie KAPE oder ein Datenträgerabbild.
  • Das Kopieren verändert keine Beweise, doch die Zeitstempel der Dateien selbst sind Ihr einziger Hinweis darauf, wann Sitzungen stattfanden: Dokumentieren Sie sie (oder sichern Sie $MFT) vor allem anderen.
  • Persistentes Bitmap-Caching lässt sich im Client oder in einer .rdp-Datei deaktivieren: Ein leerer oder fehlender Ordner beweist nicht, dass RDP nicht genutzt wurde.

Was ist der RDP-Bitmap-Cache?

Damit dieselben Bildschirmteile nicht erneut übertragen werden müssen, führt der Remotedesktop-Client (mstsc.exe) einen persistenten Cache kleiner Bitmaps — meist Kacheln von 64×64 Pixeln —, die der entfernte Rechner sendet. Die Dateien verbleiben im Profil des Benutzers, der den Client ausgeführt hat.

Wieder zusammengesetzt zeigen die Kacheln Fragmente dessen, was dieser Benutzer auf dem entfernten Bildschirm sah: Konsolen und die darin eingegebenen Befehle, Ordnerfenster, Tools, Dokumente. Für Ermittler ist das ein seltener, visueller Nachweis von Lateral Movement, gesichert auf dem Quellsystem.

Speicherort

  • C:\Users\<user>\AppData\Local\Microsoft\Terminal Server Client\Cache\ auf dem Rechner, von dem aus die Verbindung hergestellt wurde.
  • Cache0000.bin, Cache0001.bin…: neueres Format, ein "RDP8bmp"-Header, gefolgt von unkomprimierten 32-Bit-Kacheln.
  • bcache2.bmc, bcache22.bmc, bcache24.bmc: älteres Format, feste 64×64-Slots mit 8, 16 oder 32 Bit pro Pixel, Kacheln oft mit dem Interleaved-RLE-Codec von RDP komprimiert.

Warum er für Ermittlungen wichtig ist

  • Zeigt, was ein Angreifer oder Administrator auf dem entfernten Host tatsächlich gesehen hat — selbst wenn dieser Host gelöscht oder nie forensisch gesichert wurde.
  • Konsolenkacheln können Befehle, Pfade und Tool-Namen offenlegen; Explorer-Kacheln zeigen Ordner- und Dateinamen.
  • Schon sein Vorhandensein beweist, dass das Konto auf diesem Rechner den Remotedesktop-Client verwendet hat; korrelieren Sie mit dem Ereignisprotokoll des Clients und der Registry, um das Ziel zu benennen und die Sitzungen zu datieren.
  • Ältere Slots können Fragmente früherer Kacheln enthalten (Slot-Reste).

Einschränkungen

  • Kacheln haben weder Zeitstempel noch Bildschirmposition: Die Reihenfolge ist die Cache-Reihenfolge, und identische Kacheln werden nur einmal gespeichert.
  • Zwischengespeichert wird nur, was der Server als Bitmaps gesendet hat; manche Sitzungen hinterlassen wenige verwertbare Kacheln, und der Cache ist in der Größe begrenzt und wird wiederverwendet.
  • Älteren 8-Bit-Kacheln fehlt ihre Palette, daher sind die Farben angenähert. Es gibt keine OCR: Kacheln müssen von einem Menschen gelesen werden.
  • Heuristische Hinweise (konsolenartig, textartig) können Kacheln übersehen oder harmlose markieren.

So erhalten Sie die Dateien

  • Sichern Sie den gesamten Cache-Ordner jedes Profils mit KAPE (Target RDPCache), Velociraptor (Windows.Triage.Targets, RDPCache) oder aus einem Datenträgerabbild.
  • Dokumentieren Sie die Zeitstempel der Dateien: Sie sind der wichtigste Hinweis darauf, wann Sitzungen stattfanden.
  • Behalten Sie die Ordnerstruktur Users\<name>\ bei, damit jeder Cache seinem Konto zugeordnet wird.

FAQ

Werden meine Cache-Dateien irgendwo hochgeladen?

Nein. Der Decoder ist nach WebAssembly kompiliertes Rust und läuft in einem Web Worker in Ihrem Browser. Es gibt keinen Upload-Endpunkt; Kacheln, Collagen und Exporte werden lokal erstellt.

Worin unterscheidet sich das Tool von bmc-tools?

Es hat einen eigenen Decoder, unabhängig nach den Spezifikationen von Microsoft geschrieben und gegen bmc-tools validiert, und ergänzt, was auf der Kommandozeile mühsam ist: eine durchsuchbare Galerie, sofort änderbare Collage-Einstellungen, eine Drag-and-drop-Arbeitsfläche zur Rekonstruktion, Triage-Hinweise und Exporte (PNG, BMP mit bmc-tools-Namen, CSV, JSON). bmc-tools bleibt die Referenz, um wichtige Befunde gegenzuprüfen.

Kann das Tool zeigen, wann eine Kachel angezeigt wurde?

Nein — der Cache speichert keine Zeit pro Kachel, und dieses Tool erfindet keine. Datieren Sie die Sitzungen anhand der Zeitstempel der Cache-Dateien, des Ereignisprotokolls RDPClient/Operational (Ereignis 1024) und der Registry-Schlüssel des Terminal Server Client.

Auf welchem Rechner liegt der Cache?

Auf dem Client: dem Rechner, auf dem die Remotedesktopverbindung lief, im Profil des Benutzers, der sie gestartet hat. Er zeigt den entfernten Bildschirm — wechselt ein Angreifer von Host A zu Host B, bleiben Bildschirmfragmente von B auf A zurück.

Warum passen die Zeilen meiner Collage nicht zusammen?

Kacheln werden in der Reihenfolge gespeichert, in der sie zwischengespeichert wurden, identische nur einmal, und Randkacheln sind kleiner. Probieren Sie andere Breiten aus und schließen Sie die Arbeit dann in der Ansicht Rekonstruieren von Hand ab.

Über den Decoder

Der Decoder ist eine eigenständige Rust-Implementierung, geschrieben nach den offenen Spezifikationen von Microsoft ([MS-RDPBCGR] für Interleaved RLE, [MS-RDPEGDI] für den planaren RDP-6.0-Codec) und öffentlichen Arbeiten wie dem CERT-FR-Bulletin CERTFR-2016-ACT-017. bmc-tools der ANSSI (github.com/ANSSI-FR/bmc-tools), das Referenzwerkzeug für dieses Artefakt, diente dazu, die Ausgabe Kachel für Kachel zu validieren; Code daraus wird nicht verwendet. Dokumentierte Abweichungen: Kacheln unter 64 px Breite behalten ihre tatsächliche Breite, dekomprimierte Kacheln mit 8 und 32 bpp behalten ihre tatsächliche Farbtiefe, planare RDP-6.0-Kacheln werden dekodiert, und beschädigte Dateien werden so weit wie möglich dekodiert. Gleichen Sie wichtige Fälle mit bmc-tools ab.

Schritt für Schritt: bcache*.bmc und Cache*.bin im kostenlosen Browser-Parser laden, Kacheln sichten, Collage und Bildschirm aufbauen, Beweise exportieren.
Welche Artefakte auf dem RDP-Quellsystem zeigen, wohin und wann sich ein Benutzer verbunden hat, und wie Sie damit den Inhalt des Bitmap-Caches einordnen.
Warum eine RDP-Cache-Collage stellenweise passt und stellenweise verrutscht, wie Sie die Breite wählen und einen Bildschirm Kachel für Kachel neu aufbauen.