19. August 2022, 21:47
Lesezeit: ca. 2 Min

Begehrenswerte Überbleibsel

Immer wenn ich im offiziellen Auftrag Windows-Systeme hacken darf, steht ein Ordner ganz oben auf meiner “zu untersuchen” Liste. Praktisch überall, wo Remote-Desktop oder Remote-Apps zum Einsatz kommen, wird die Brisanz von angesammelten Cache-Daten auf den verbindenden Clients unterschätzt.

Im Profil eines Benutzers unter %APPDATALOCAL%\Microsoft\Terminal Server Client\Cache bzw. C:\Users(Benutzername)\AppData\Local\Microsoft\Terminal Server Client\Cache finden sich die begehrten Überbleibsel einer RDP-Sitzung. Die von einem Terminalserver übermittelten Bildschirminhalte sind hier in Gestalt von .bmc und .bin Dateien zu finden. Die Dateien sind durchnummeriert und repräsentieren Farbtiefen und Indexpositionen, die uns nicht weiter zu interessieren brauchen. Wichtiger ist das in Python geschriebene bmc-tools1, welches jedem mit Zugriff auf diese Daten Einblick auf den Bildschirm eines Anwenders gewährt, meist rückwirkend auf längst vergangene RDP-Sitzungen.

Screenshot von bmc-Tiles, die aus dem Cache extrahiert wurden

Die im Screenshot sichtbaren Tiles sind von harmloser Natur und zeigen den typischen Windows 2016 Anmeldebildschirm. Brisanter wird es, wenn vertrauliche Dokumente, E-Mails oder Passwörter sichtbar werden. 100 Punkte gibt es bei Passwortlisten in Klartext in Excel oder Desktop-Notizzettel. 200 Punkte bei S/MIME oder PGP verschlüsselten E-Mails, die in E-Mail-Clients transparent entschlüsselt und angezeigt werden. Den Jackpot gibt es bei QR-Codes für TOTP-gesicherte Zugänge, die auf diesem Weg unerkannt in die Hände Dritter gelangen.

python bmc-tools.py -s (originalordner) -d (zielordner)

By Design and Default ist das Caching in jedem Windows-Clienten aktiviert. Das Ausschalten per GPO hilft als Gegenmaßnahme nur wenig, da genau dieses Caching die Remotedesktop-Verbindungen latenzfrei und so komfortabel macht. Auch ein Leeren des Caches bei Verbindungsende verhindert nicht, dass während einer Sitzung mitgelesen werden kann, idealerweise über einen längeren Zeitraum. Ein Bash-Skript mit Einbindung von Tesseract-OCR hilft, die passenden Signalwörter aus Tausenden von Tiles schnell zu identifizieren.

In diesem Sinne, ein schönes Wochenende für jeden, der mit Windows arbeiten darf/muss. Für alle anderen mit sicheren Systemen natürlich auch ;-)

Euer Tomas Jakobs

© 2022 Tomas Jakobs - Impressum und Datenschutzhinweis