Skip to content

Zwischenablage-Forensik in ActivitiesCache.db

Wie Windows Text aus der Zwischenablage in ActivitiesCache.db speichert: Typen 10 und 16, nötige Einstellungen, Ablauf nach 12 Stunden und Base64-Dekodierung.

Veröffentlicht am 6 Min. Lesezeit

Kurz gesagt. Der Inhalt der Zwischenablage ist Aktivitätstyp 10: Base64-Text in ClipboardPayload, 12 Stunden aufbewahrt. Kopier- und Einfügeereignisse sind Typ 16, mit Group = Copy oder Paste und einer verbindenden clipboardDataId. Typ 10 wurde nur beobachtet, wenn Zwischenablageverlauf und geräteübergreifende Synchronisierung beide eingeschaltet waren, daher fehlt er in den meisten Datenbanken. Wenn er da ist, ist er Gold wert: Befehle, Pfade, manchmal Zugangsdaten.

Beweise aus der Zwischenablage sind in Timeline selten. Gerade deshalb lohnt es sich, sie genau zu kennen: Wenn sie auftauchen, beantworten sie oft die Frage, um die der Rest des Falls nur kreist.

Die zwei Aktivitätstypen

Typ 10Typ 16
WasDer Inhalt der ZwischenablageEin Kopier- oder Einfügevorgang
SchlüsselspalteClipboardPayload (Base64 in JSON)Group („Copy“ / „Paste“)
VerknüpfungclipboardDataId in Payload
AppApp, aus der die Daten stammenApp, aus der kopiert / in die eingefügt wurde
Lebensdauer12 Stunden (ExpirationTime - LastModifiedTime = 43.200 s)Standardablauf
Quellekacos2000, inversecoskacos2000

kacos2000 beobachtete Typ 10 erstmals in einem Insider-Build von Windows 10 1809 und merkte an, bisher nur Text gesehen zu haben; Bilder wurden damals nicht auf dieselbe Weise synchronisiert (kacos2000).

Wann Inhalte der Zwischenablage aufgezeichnet werden

inversecos nennt zwei Voraussetzungen für die Protokollierung der Zwischenablage in ActivitiesCache.db: aktivierter Zwischenablageverlauf und aktivierte geräteübergreifende Synchronisierung der Zwischenablage (inversecos). In den meisten Umgebungen ist keine von beiden standardmäßig eingeschaltet, weshalb Typ-10-Zeilen selten sind.

Wo Sie die Einstellungen prüfen:

EinstellungOrt
ZwischenablageverlaufNTUSER.DAT\Software\Microsoft\Clipboard\EnableClipboardHistory (1 = an) (kacos2000)
Letzte Bereinigung abgelaufener EinträgeNTUSER.DAT\Software\Microsoft\Clipboard\HistoryOldItemsLastCleanupTimestamp (FILETIME) (kacos2000)
Unternehmensrichtlinie zur Synchronisierung der ZwischenablageAllowCrossDeviceClipboard im Privacy-Policy-CSP, Windows 10 1809 und neuer (Microsoft Learn)

Lesen Sie die Benutzer-Hives mit dem Registry-Parser. Bedenken Sie, dass Microsoft die Cloud-Synchronisierung des Aktivitätsverlaufs für Microsoft-Konten 2021 und für Entra-ID-Konten ab Januar 2024 eingestellt hat (Microsoft Support). Wie sich das auf lokale Zwischenablage-Zeilen in aktuellen Builds auswirkt, ist nicht dokumentiert; testen Sie es mit eigenen Abbildern, statt es anzunehmen.

ClipboardPayload dekodieren

Die Spalte enthält ein JSON-Array. Jedes Element hat einen Base64-content und einen formatName:

[{"content": "cmNsb25lIGNvcHkgRTpcZXhmaWwgbWVnYTpmaW4tYmFja3VwIC0tdHJhbnNmZXJzIDg=", "formatName": "Text"}]

Das Dekodieren des Base64 ergibt den Text. inversecos fasst es knapp zusammen: Die Daten sind lediglich Base64-kodiert (inversecos). Das obige Beispiel aus der fiktiven Stichprobe dieser Website ergibt dekodiert einen rclone copy-Befehl.

Der Windows Timeline Parser dekodiert ClipboardPayload in jeder Zeile, die eines hat, versucht zuerst UTF-8 und dann UTF-16LE, entfernt abschließende NUL-Zeichen und fügt mehrere Textelemente zusammen. Das Ergebnis erscheint in der Tabelle, markiert als Zwischenablage, ist mit dem Textfilter durchsuchbar und wird in der CSV-Spalte ClipboardText exportiert. Der Glossareintrag ClipboardPayload bietet die Kurzfassung.

Von Angreifern kontrollierter Text ist in einer Tabellenkalkulation gefährlich. Der CSV-Export des Werkzeugs versieht Zellen, die mit =, +, - oder @ beginnen, mit einem Präfix, damit eine kopierte Formel nicht ausgeführt wird, wenn der Analyst den Export öffnet.

Kopier- und Einfügeereignisse lesen

Zeilen vom Typ 16 enthalten den Text nicht, verraten aber Richtung und App:

  1. Filtern Sie auf Kopieren / Einfügen.
  2. Lesen Sie im JSON-Export group (Copy oder Paste) jeder Zeile; öffnen Sie die Zeile, um die clipboardDataId im Payload zu sehen.
  3. Ordnen Sie ein Copy und ein Paste mit derselben clipboardDataId einander zu: Die erste App ist die Quelle, die zweite das Ziel (kacos2000).
  4. Gibt es für dasselbe Element eine Typ-10-Zeile, haben Sie auch den Inhalt.

So wird aus „der Benutzer hat einen Pfad aus Notepad kopiert und in eine Konsole eingefügt“ eine Abfolge, die Sie zeigen können, statt sie zu erschließen.

Was Zwischenablage-Zeilen verraten können

In echten Fällen enthält die Zwischenablage oft, was Benutzer nicht zweimal tippen:

InhaltWarum wichtig
Befehle (net use, rclone, PowerShell-Einzeiler)Absicht und Werkzeuge, oft mit Argumenten
UNC-Pfade und URLsZiele: Freigaben, Upload-Dienste, C2-Panels
Benutzernamen und PasswörterUmgang mit Zugangsdaten; zugleich sensible Daten für Ihren Bericht
DokumentfragmenteWelche Daten bewegt wurden

Behandeln Sie das als sensibles Material: Schwärzen Sie Zugangsdaten in Berichten und beschränken Sie den Zugriff auf den Export.

Zwischenablage-Triage in fünf Minuten

Eine Routine für jede Sicherung, ob Sie Zwischenablagedaten erwarten oder nicht:

  1. Laden Sie die Datenbank jedes Benutzers mit ihrem WAL in den Windows Timeline Parser und lesen Sie den Zähler Zwischenablage. Null ist auch eine Antwort: Notieren Sie sie.
  2. Filtern Sie auf Zwischenablage. Notieren Sie für jede Zeile Quell-App, UTC-Zeit und dekodierten Text. Achten Sie auf die Markierung Nur im WAL: Zwischenablage-Zeilen leben kurz, und die neuesten stehen oft nur im WAL.
  3. Filtern Sie auf Kopieren / Einfügen und ordnen Sie die Ereignisse um jede Zwischenablage-Zeile an. Ein Kopieren in Notepad, gefolgt vom Einfügen in eine Konsole wenige Sekunden später, ist einen Satz im Bericht wert.
  4. Durchsuchen Sie den dekodierten Text nach Hosts, Freigaben, URLs und Kontonamen und pivotieren Sie: Dieselben Zeichenketten können in Ereignisprotokollen, im Browserverlauf oder in Messaging-Apps auftauchen.
  5. Ziehen Sie den Benutzer-Hive heran und notieren Sie EnableClipboardHistory, damit der Bericht erklärt, warum auf diesem Rechner Zwischenablagedaten existieren (oder nicht).

Grenzen

  • Selten. Abhängig von Einstellungen, und die Lebensdauer von 12 Stunden lässt nur ein kurzes Fenster.
  • Nur Text in den bisher veröffentlichten Beobachtungen.
  • Gelöschte Zeilen. kacos2000 merkt an, dass sich viele abgelaufene Typ-10-Einträge wiederherstellen lassen, auch nach Monaten, und bietet dafür Carving-Werkzeuge an (kacos2000/WindowsTimeline). Der Parser dieser Website zeigt nur aktive Zeilen (zurückgeschrieben und aus dem WAL).
  • Andere Quellen. Zwischenablagedaten können auch im Arbeitsspeicher liegen; siehe inversecos zur Analyse der Zwischenablage im Speicher (inversecos) und den RAM-Parser. Velociraptor bietet im Exchange das Artefakt Windows.Forensics.Clipboard (Velociraptor).

FAQ

Enthält ActivitiesCache.db immer den Zwischenablageverlauf?

Nein. Inhalte der Zwischenablage (Aktivitätstyp 10) wurden nur beobachtet, wenn sowohl der Zwischenablageverlauf als auch die geräteübergreifende Synchronisierung aktiviert waren, und diese Einträge laufen nach 12 Stunden ab. Die meisten Datenbanken enthalten keine.

Wie wird Text aus der Zwischenablage in ActivitiesCache.db gespeichert?

In der Spalte ClipboardPayload als JSON-Array, dessen Feld content den Base64-kodierten Text enthält. Das Dekodieren des Base64 ergibt den kopierten Text.

Lassen sich gelöschte Zwischenablage-Einträge wiederherstellen?

Manchmal. kacos2000 berichtet, abgelaufene Einträge mit einem Carving-Werkzeug aus der Datenbank und ihrem WAL wiederherzustellen. Standard-Parser zeigen nur aktive Zeilen.

Verwandte Artikel

Verwandte Artikel

Fiktiver Fall Schritt für Schritt: interaktive Sitzung eines Dienstkontos und Exfiltration von Gehaltsdaten aus ActivitiesCache.db und WAL rekonstruieren.
Was eine Windows-Timeline-Zeile wirklich belegt: geöffnete Datei, App im Fokus, Nutzungsdauer. Wie Sie es formulieren und welche Artefakte es bestätigen.
Fairer Vergleich von Windows-Timeline-Parsern: WxTCmd, Werkzeuge von kacos2000, Plaso, Velociraptor, SQL-Abfragen und dieser Browser-Parser, samt WAL-Handling.