PowerShell-Protokolle, Transkripte und Verlauf sichern
PowerShell-Ereignisprotokolle, PSReadLine-Verlauf und Transkripte von einem Live-System, aus einer Triage-Sammlung oder einem Datenträgerabbild sichern – mit kopierfertigen Befehlen und den typischen Fallstricken.
Kurzfassung. Auf einem Live-System exportieren Sie die beiden PowerShell-Ereignisprotokolle mit wevtutil epl (eine einfache Kopie schlägt fehl – der Dienst hält sie geöffnet) und kopieren per Robocopy die Dateien *_history.txt und PowerShell_transcript.*.txt jedes Benutzers. Alternativ sichern Sie sie mit KAPE / Velociraptor oder aus einem eingebundenen Abbild. Behalten Sie den Pfad Users\<name>\ bei, damit Verlauf und Transkripte zugeordnet werden. Anschließend analysieren Sie sie im Browser. Die Ablagezone enthält dieselben Befehle mit Kopier-Schaltflächen.
Live-System (am schnellsten)
Starten Sie Windows PowerShell als Administrator:
New-Item -ItemType Directory -Force C:\triage\logs | Out-Null
wevtutil epl Microsoft-Windows-PowerShell/Operational "C:\triage\logs\Microsoft-Windows-PowerShell%4Operational.evtx" /ow:true
wevtutil epl "Windows PowerShell" "C:\triage\logs\Windows PowerShell.evtx" /ow:true
wevtutil epl PowerShellCore/Operational "C:\triage\logs\PowerShellCore%4Operational.evtx" /ow:true 2>$null
robocopy C:\Users C:\triage\Users *_history.txt PowerShell_transcript.*.txt /S /XJ /R:0 /W:0 /NP /NDL
Die dritte Zeile sichert das PowerShell-7-Protokoll, sofern vorhanden (ist es nicht vorhanden, schadet sie nicht). Packen Sie danach alles mit dem in Windows 10 1803+ integrierten tar.exe in ein Archiv:
tar -a -c -f C:\triage\powershell.zip -C C:\triage logs Users
Triage-Tools
KAPE – das Target EventLogs kopiert jede .evtx-Datei (einschließlich der PowerShell-Protokolle) direkt vom Rohdatenträger; PowerShellConsole und PowerShellTranscripts sichern die Verlaufs- und Transkriptdateien:
kape.exe --tsource C: --tdest C:\triage\kape --target EventLogs,PowerShellConsole,PowerShellTranscripts
Velociraptor – aktuelle Versionen erstellen in der GUI einen Offline-Collector aus Windows.Triage.Targets mit denselben Targets EventLogs, PowerShellConsole und PowerShellTranscripts. Ältere Versionen, die noch Windows.KapeFiles.Targets mitbringen, können Folgendes ausführen:
velociraptor.exe artifacts collect Windows.KapeFiles.Targets --args Device=C: --args EventLogs=Y --args PowerShellConsole=Y --args PowerShellTranscripts=Y --output C:\triage\powershell.zip
Beide Target-Namen sind gegen den Velociraptor triage collector geprüft. Legen Sie das Sammlungs-ZIP unverändert ab – Nicht-PowerShell-Protokolle werden beim Laden ignoriert.
Datenträgerabbild
Binden Sie das Abbild schreibgeschützt ein und kopieren Sie aus winevt\Logs sowie aus jedem Benutzerprofil. Unter Linux/macOS mit dem Abbild unter /mnt/win:
mkdir -p ~/triage/logs && cp "/mnt/win/Windows/System32/winevt/Logs/Microsoft-Windows-PowerShell%4Operational.evtx" "/mnt/win/Windows/System32/winevt/Logs/Windows PowerShell.evtx" ~/triage/logs/ 2>/dev/null
(cd /mnt/win && find Users \( -iname '*_history.txt' -o -iname 'PowerShell_transcript.*.txt' \) -exec cp --parents {} ~/triage/ \;)
Prüfen Sie auch die Volumeschattenkopien des Abbilds: Ein älterer Snapshot kann Protokolle enthalten, die inzwischen überschrieben wurden, und einen Verlauf, der später gelöscht wurde.
Fallstricke
- Die Skriptblockprotokollierung (4104) ist standardmäßig deaktiviert, bis sie per Richtlinie aktiviert wird; selbst dann protokolliert Windows verdächtige Blöcke auf Warnstufe. Das klassische Protokoll
Windows PowerShellund der PSReadLine-Verlauf sind standardmäßig aktiv. - Der EventLog-Dienst hält die Protokolle geöffnet, verwenden Sie daher
wevtutil epl, KAPE oder Velociraptor – keine einfache Kopie. - Der PSReadLine-Verlauf hat keine Zeitstempel und kann Wochen älter sein als die Protokolle; seine Reihenfolge ist die einzige Chronologie.
- Transkripte speichern die Ortszeit ohne Zeitzone: Notieren Sie die Zeitzone des Systems, bevor Sie sie mit den UTC-Ereignisprotokollen korrelieren.