ShellBags und ZIP-Dateien: Archivnavigation nachweisen
Wie ShellBags das Navigieren in ZIP-Dateien und anderen Archiven im Explorer aufzeichnen, was die Items im Archiv enthalten und wie man Archivpfade deutet.
TL;DR. Öffnet ein Benutzer eine ZIP-Datei im Explorer, behandelt Windows sie wie einen Ordner, und der ShellBags-Baum erhält einen Eintrag für das ZIP (ein File-Entry-Item) mit Kindeinträgen für jedes darin durchsuchte Verzeichnis. Das belegt, dass der Benutzer in das Archiv geschaut hat und welche internen Ordner er geöffnet hat. Es belegt weder Entpacken noch Ausführung. Laut libfwsi sind die Items in einem ZIP „Compressed Folder“-Items, die über ihren Vorfahren erkannt werden; unter Windows 10 enthalten sie die Größen des Eintrags, die Komprimierungsmethode, CRC-32 und die Änderungszeit als Text.
Archive tauchen in fast jedem Einbruchs- und Insider-Fall auf: als ZIP ausgelieferte Toolkits, vor der Exfiltration in Archive gepackte Daten, ein Benutzer, der behauptet, einen Anhang „nie geöffnet“ zu haben. ShellBags gehören zu den wenigen Artefakten, die zeigen können, was ein Benutzer in einem Archiv angesehen hat, ohne es zu entpacken.
Wie der Explorer mit Archiven umgeht
Seit Windows XP lässt der eingebaute Handler für komprimierte Ordner den Explorer eine ZIP-Datei wie einen Ordner anzeigen. Ein Doppelklick auf tools.zip öffnet eine Ordneransicht; ein Doppelklick auf ein Verzeichnis darin navigiert weiter. Jede dieser Navigationen läuft über den Shell-Namespace und erhält daher wie jeder andere Ordner einen BagMRU-Eintrag.
Unter Windows 11 hat Microsofts Update KB5031455 (Oktober 2023) das native Lesen von .rar, .7z, .tar, .tar.gz, .tgz und verwandten Formaten über das Projekt libarchive ergänzt. Das Durchsuchen dieser Formate im Explorer hinterlässt vermutlich vergleichbare Spuren, eine öffentliche, getestete Beschreibung ihrer Shell-Items habe ich aber nicht gesehen. Hängt Ihr Fall davon ab, testen Sie auf derselben Build.
In Drittanbieter-Werkzeugen (7-Zip-Dateimanager, WinRAR) geöffnete Archive laufen nicht über den Archiv-Handler des Explorers und erzeugen daher keine Einträge unterhalb des Archivs. Diese Werkzeuge führen einen eigenen Verlauf, oft in NTUSER.DAT unter herstellerspezifischen Schlüsseln.
So sieht der Baum aus
Aus dem Sample des ShellBags Parser (fiktive Daten):
My Computer\C:\Users\svc_backup\Downloads directory MFT 88530/1
My Computer\C:\Users\svc_backup\Downloads\tools.zip file MFT 91004/2 [archive]
My Computer\C:\Users\svc_backup\Downloads\tools.zip\x64 [archive]
tools.zipist ein File-Entry-Item mit dem „Datei“-Flag (Klassentyp0x32), kein Verzeichnis. Es hat normale eingebettete Zeiten und eine MFT-Referenz, weil das ZIP selbst eine NTFS-Datei ist.x64liegt innerhalb des Archivs. Sein Elternteil im Baum ist der Schlüssel des ZIP. Diese Beziehung ist der Nachweis der Navigation im Archiv.- Der LastWrite des Schlüssels
tools.zip, mitx64an erster Stelle seinerMRUListEx, liefert die „letzte Interaktion“ fürx64. Siehe ShellBags-Zeitstempel erklärt.
Der Parser markiert jeden Pfad durch .zip, .7z, .rar, .cab, .iso, .tar, .gz, .tgz oder .vhd(x) als In einem Archiv, sodass diese Einträge mit dem Filter Nur markierte sichtbar werden. ISO- und VHD-Dateien stehen auf der Liste, weil Windows sie als Laufwerke einbindet; dann erscheint der Inhalt meist unter einem neuen Laufwerksbuchstaben statt unterhalb der Datei.
Was die Items im Archiv enthalten
libfwsis Windows Shell Item format dokumentiert das Compressed Folder Shell Item als über seine Abstammung erkannt (sein Elternteil ist das Archiv) statt über einen Klassentyp-Wert. Das Layout unterscheidet sich je nach Version:
| Version | Wichtige Felder |
|---|---|
| Windows XP | Änderungszeit als UTF-16-Zeichenkette (mm/dd/yy HH:MM), Namenszeichenketten |
| Windows 10 | Unkomprimierte und komprimierte Größe, Komprimierungsmethode (0x00 gespeichert, 0x08 DEFLATE), CRC-32, Änderungszeit als Text (mm/dd/yyyy HH:MM:SS oder eine „N/A“-Zeichenkette), Namenszeichenketten |
Das ist verwertbar:
- CRC-32 und Größen des Eintrags, wie er im Archiv lag, helfen, ein auf diesem Rechner gesehenes Archiv mit einem anderswo gefundenen abzugleichen.
- Die Änderungszeit ist die im ZIP für diesen Eintrag gespeicherte Zeit, als Text, keine Dateisystemzeit dieses Rechners. Behandeln Sie ihre Zeitzone als unbekannt, solange Sie sie nicht getestet haben.
- Keine MFT-Referenz: Der Inhalt existiert erst nach dem Entpacken als NTFS-Datei.
Unterstützung durch Parser
Die Dekodierung ist unterschiedlich. Der ShellBags Parser dekodiert den File Entry des Archivs selbst und behält den vollständigen Pfad, laut seiner README werden ZIP-Inhalts-Items (0x52) aber noch nicht vollständig dekodiert: Rechnen Sie mit einem Näherungsnamen oder der Bezeichnung „unknown shell item“ mit Roh-Hex im Detailbereich. SBECmd und ShellBags Explorer verarbeiten mehr dieser Items. In archivlastigen Fällen prüfen Sie dort gegen (Werkzeugvergleich).
Archiveinträge deuten
| Sie sehen | Sie können sagen | Sie können nicht sagen |
|---|---|---|
Eintrag für x.zip ohne Kinder | Der Elternordner des ZIP wurde durchsucht und das ZIP dort gelistet/ausgewählt | Dass das ZIP geöffnet wurde |
Kinder unterhalb von x.zip | Der Benutzer hat das ZIP im Explorer geöffnet und diese internen Ordner durchsucht | Dass Dateien entpackt, geöffnet oder ausgeführt wurden |
x.zip in Downloads, Minuten vor dem Durchsuchen angelegt | Passt zu Download mit sofortiger Sichtung | Woher es stammt (prüfen Sie Zone.Identifier, den Browserverlauf) |
| Gelöschtes ZIP (nicht mehr auf dem Datenträger) mit Kindern in den ShellBags | Das Archiv existierte und wurde durchsucht; sein MFT-Datensatz lässt sich prüfen | Was es außer den durchsuchten Ordnern enthielt |
Den nächsten Schritt belegen
- Entpacken: Suchen Sie die entpackten Dateien in der $MFT und im USN-Journal (Häufungen von Dateierstellungen unter einem neuen Ordner direkt nach der Navigationszeit).
- Öffnen einer Datei aus dem ZIP: Windows öffnet sie in der Regel aus einer temporären Kopie; LNK-Dateien und Jump Lists verweisen auf den temporären Pfad.
- Ausführung: Prefetch, Amcache, ShimCache.
- Herkunft: Browser-Downloads (Browser-Forensik), E-Mail-Anhänge (Messaging-Forensik).
Staging-Archive für die Exfiltration
Das umgekehrte Muster ist ebenfalls häufig: Daten werden in ein Archiv gepackt und dann verschoben. ShellBags helfen, wenn der Benutzer in das Archiv navigiert ist, um den Inhalt zu prüfen, oder den Ordner durchsucht hat, der es enthielt. Ein Archiv, das per 7z.exe oder PowerShell Compress-Archive auf der Konsole erstellt wurde, hinterlässt keine ShellBags; sehen Sie sich stattdessen Ausführungsartefakte und das USN-Journal an.
Häufige Fragen
Zeigen ShellBags, dass eine ZIP-Datei entpackt wurde?
Nein. Sie zeigen, dass der Benutzer im Explorer im Archiv navigiert hat. Beim Entpacken entstehen Dateien auf dem Datenträger, die Sie mit der MFT, dem USN-Journal oder LNK-Dateien belegen, nicht mit ShellBags.
Zeichnen ShellBags 7z- und RAR-Archive auf?
Nur wenn der Explorer selbst sie durchsucht hat. Windows 11 öffnet RAR, 7z und tar-Varianten seit dem Update KB5031455 vom Oktober 2023 nativ, deren Spuren sind aber noch kaum dokumentiert; in 7-Zip oder WinRAR geöffnete Archive laufen nicht über den Archiv-Handler des Explorers.