Skip to content

RDP-Bitmap-Cache: Speicherort und Sicherung

Wo der RDP-Bitmap-Cache je Benutzer liegt und wie Sie ihn mit PowerShell, dem KAPE-Target RDPCache, Velociraptor oder aus einem Abbild sauber sichern.

Veröffentlicht am 5 Min. Lesezeit

Kurz gesagt. Der RDP-Bitmap-Cache liegt unter C:\Users\<user>\AppData\Local\Microsoft\Terminal Server Client\Cache\ auf dem Rechner, von dem aus der Benutzer die Verbindung aufgebaut hat, ein Ordner pro Konto. Sichern Sie den kompletten Ordner für jeden Benutzer, behalten Sie den Pfadteil Users\<name>\ bei, damit jede Datei ihrem Konto zugeordnet bleibt, und schließen Sie vorher offene Remotedesktopsitzungen, weil die Dateien in Benutzung sein können. Das KAPE-Target RDPCache und Windows.Triage.Targets von Velociraptor erledigen das für Sie; eine kurze PowerShell-Schleife oder ein find auf einem eingebundenen Abbild funktionieren ebenfalls.

Was der Cache enthält und warum er zählt, erklärt der Leitfaden zur RDP-Bitmap-Cache-Forensik.

Wo der Cache liegt

Der RDP-Bitmap-Cache wird vom Client Remotedesktopverbindung, mstsc, in das lokale (nicht servergespeicherte) AppData des Benutzers geschrieben, der ihn gestartet hat.

SystemPfad
Aktuelles WindowsC:\Users\<user>\AppData\Local\Microsoft\Terminal Server Client\Cache\
Windows XPC:\Documents and Settings\<user>\Local Settings\Application Data\Microsoft\Terminal Server Client\Cache\
Nach einem In-Place-UpgradeC:\Windows.old\Users\<user>\AppData\Local\Microsoft\Terminal Server Client\Cache\

In diesem Ordner finden Sie zwei Dateifamilien:

DateienFormat
bcache2.bmc, bcache22.bmc, bcache24.bmcÄlterer BMC-Cache, feste Slots, 8/16/32 bpp
Cache0000.bin, Cache0001.bin, ...Persistenter RDP-8-Cache, 32-Bit-Kacheln

Beide Familien können nebeneinander im selben Ordner liegen. Sichern Sie alles darin; filtern Sie nicht nach Dateiendung.

Welcher Host, welcher Benutzer

Zwei Fehler kosten am meisten Zeit:

  • Falscher Host. Der Cache hält fest, was der Client angezeigt hat, er liegt also auf dem Quellsystem. Ist ein Angreifer von WKS-A auf SRV-B gesprungen, liegen die Spuren der Sitzung auf SRV-B im Cache auf WKS-A. Auch auf dem Ziel lohnt sich die Sicherung, dann aber für Sitzungen, die vom Ziel aus gestartet wurden.
  • Falsches Konto. Der Cache gehört dem Konto, das mstsc ausgeführt hat, nicht dem Konto, mit dem sich jemand am entfernten Host angemeldet hat. Ein lokales Profil svc_backup auf dem Quellsystem kann die Bildschirme einer Sitzung enthalten, die auf dem Ziel mit Domänen-Anmeldedaten geöffnet wurde.

Deshalb zählt der Pfad: RDP Bitmap Cache Parser ordnet jede Datei dem Konto zu, das aus Users\<name>\ im Pfad stammt. Entfernen Sie den Pfad, verlieren Sie die Zuordnung.

Option 1: PowerShell auf einem laufenden System

Als Administrator ausführen. Schließen Sie vorher offene Remotedesktopsitzungen.

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

Was das Skript tut: Für jeden Profilordner kopiert es den Ordner Cache mit robocopy im Backup-Modus (/B), ohne Wiederholungen und mit knapper Ausgabe, und behält die Struktur Users\<name>\... unter C:\triage bei. Anschließend erzeugt tar -a aus dieser Struktur eine ZIP-Datei. Die ZIP lässt sich direkt im Werkzeug ablegen.

Diese Schleife betrachtet nur C:\Users. Pfade unter Windows.old oder von XP deckt sie nicht ab; nutzen Sie dafür KAPE oder ein eingebundenes Abbild.

Option 2: KAPE

KapeFiles liefert ein Target RDPCache mit (Quelle). Es sichert den Cache-Ordner jedes Benutzers sowie die Speicherorte unter Windows.old und von Windows XP.

kape.exe --tsource C: --tdest C:\triage\kape --target RDPCache

KAPE behält unter dem Ziel die ursprüngliche Verzeichnisstruktur bei, die Zuordnung zu Konten bleibt also erhalten. Packen Sie den Zielordner als ZIP oder legen Sie ihn als Ordner ab.

Option 3: Velociraptor

Sammeln Sie Windows.Triage.Targets (aus dem Velociraptor-Triage-Projekt) mit dem Target RDPCache, entweder über die GUI von einem laufenden Client oder mit einem Offline-Collector. Die entstehende Sammlungs-ZIP können Sie unverändert laden: Das Werkzeug liest ZIPs, auch solche von KAPE und Velociraptor, und findet die Cache-Dateien darin.

Option 4: ein eingebundenes Datenträgerabbild

Mit dem Windows-Volume schreibgeschützt eingebunden unter /mnt/win:

cd /mnt/win && find Users -ipath '*/Terminal Server Client/Cache/*' -type f | zip -@ ~/triage/rdpcache.zip

-ipath unterscheidet nicht zwischen Groß- und Kleinschreibung, was bei Abbildern mit unterschiedlich geschriebenen Ordnernamen wichtig ist. Passen Sie das Startverzeichnis für ältere Strukturen auf Windows.old/Users oder Documents and Settings an.

Stolperfallen

ProblemUrsacheLösung
Kopie schlägt fehl oder Dateien werden übersprungenEine Sitzung ist offen und der Client hält die DateienSitzungen schließen oder Backup-Modus / Raw-Disk-Collector nutzen
Dateien keinem Konto zugeordnetPfade bei der Sicherung abgeflachtUsers\<name>\... im Archiv beibehalten
Nichts für das erwartete KontoFalscher Host oder falsches ProfilPrüfen, welches Konto mstsc auf welchem Host ausgeführt hat
Upgrade-Historie übersehenWindows.old nicht gesichertDas KAPE-Target nutzen oder das Abbild durchsuchen
Großes ArchivCache-Dateien können Dutzende MB mit Tausenden Kacheln umfassenNormal; das Werkzeug verarbeitet sie lokal

Sichern Sie außerdem die NTFS-Metadaten ($MFT, $UsnJrnl) und die Artefakte, mit denen Sie die Sitzungen datieren, denn die Kacheln selbst tragen keine Zeit: das Ereignisprotokoll des RDP-Clients, die NTUSER.DAT des Benutzers für die Registry-Schlüssel von Terminal Server Client, Jump Lists und Prefetch. Die Liste und ihre Verwendung finden Sie in RDP-Lateral-Movement: Artefakte auf dem Quellsystem.

Eingrenzung: von welchen Hosts sichern

Sichern Sie von jedem Host, auf dem im relevanten Zeitraum jemand eine Remotedesktopsitzung gestartet haben könnte, nicht nur von den Servern, auf die zugegriffen wurde. Gute Kandidaten sind Admin-Workstations, Jump Hosts und jeder Rechner, auf dem das Ereignisprotokoll des RDP-Clients oder die Registry-Schlüssel von Terminal Server Client ein relevantes Ziel nennen. Ein Cache, der sich als leer oder alt herausstellt, kostet wenig; ein übersehenes Quellsystem kann die einzige Sicht auf das kosten, was auf dem Ziel geschah.

Integrität

Hashen Sie das Archiv oder die Dateien im gesicherten Zustand, dokumentieren Sie Werkzeug und Befehl und arbeiten Sie mit Kopien. Das Browser-Werkzeug liest nur die Bytes, die Sie ihm geben, und verändert oder lädt sie nicht hoch; gute Praxis hängt aber nicht vom Werkzeug ab.

Nächster Schritt

Laden Sie die ZIP oder den Ordner in RDP Bitmap Cache Parser oder folgen Sie Schritt für Schritt der Anleitung den RDP-Bitmap-Cache im Browser analysieren.

FAQ

Wo wird der RDP-Bitmap-Cache gespeichert?

Im Profil jedes Benutzers auf dem Rechner, auf dem der Remotedesktop-Client lief: C:\Users\<user>\AppData\Local\Microsoft\Terminal Server Client\Cache\. Unter Windows XP liegt er unter Documents and Settings\<user>\Local Settings\Application Data. Prüfen Sie nach einem Upgrade zusätzlich C:\Windows.old\Users.

Warum schlägt meine Kopie des Caches fehl?

Die Dateien können in Benutzung sein, solange eine Remotedesktopsitzung offen ist. Schließen Sie zuerst die Sitzungen oder kopieren Sie im Backup-Modus (robocopy /B) bzw. mit einem Raw-Disk-Collector wie KAPE oder Velociraptor.

Gibt es ein KAPE-Target für den RDP-Bitmap-Cache?

Ja. Das KapeFiles-Target RDPCache sichert den Cache-Ordner jedes Benutzers, einschließlich der Pfade unter Windows.old und von Windows XP.

Verwandte Artikel

Verwandte Artikel

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.