Skip to content

Execution

Event Trace Logs (ETL files)

ETL files cheat sheet: what ETW trace logs are, forensically useful .etl files (WDI boot traces, Wifi.etl, DiagTrack), collection, tracerpt and etl-parser.

Location
C:\Windows\System32\LogFiles\WMI\*.etl
Proves
Low-level system activity (boot processes, Wi-Fi connections, updates) recorded by ETW sessions
Timestamps
Per-event raw clock (QPC, system time or CPU cycles) converted to FILETIME, UTC; header start/end times; .etl NTFS times
Retention
Most system .etl files are circular and overwrite old events at max size; boot and shutdown traces keep only the latest cycle
Access
Administrator; files of running sessions may be locked: copy from a shadow copy if a plain copy fails
Type
File / file system
Windows
Vista / 78 / 8.11011
KAPE target
EventTraceLogsWindowsUpdate
Velociraptor
Windows.Triage.Targets:EventTraceLogsWindowsUpdate

What it is

Event Tracing for Windows (ETW) is the kernel-level tracing framework behind most Windows logging. Providers (the kernel, network stack, services, applications) emit events into trace sessions. A session can feed a real-time consumer, such as the Event Log service or an EDR, or write its buffers to a binary Event Trace Log (.etl) file.

Windows ships with many sessions that write .etl files for diagnostics, performance and telemetry. Most are circular and short-lived, but some record activity that no EVTX log keeps: boot-time process and file activity, Wi-Fi connections, update and download history. They are an overlooked supplement to event logs, not a replacement.

Location

File or folderContent reported by researchersNotes
C:\Windows\System32\LogFiles\WMI\AutoLogger session files, such as Wifi.etl (SSID, adapter, BSS type, encryption of wireless connections)Many files are circular
C:\Windows\System32\WDI\LogFiles\BootCKCL.etl, ShutdownCKCL.etl: circular kernel context logs covering boot and shutdown (file I/O, DLL loads, disk reads)Overwritten at each boot / shutdown
C:\ProgramData\Microsoft\Windows\Power Efficiency Diagnostics\energy-ntkl.etlDisk, PnP and external device information from power diagnosticsWritten when diagnostics run
C:\Users\<user>\AppData\Local\Microsoft\Windows\Explorer\ExplorerStartupLog*.etlExplorer start-up activity, including shell items and Run key dataPer user
C:\ProgramData\Microsoft\Diagnosis\ETLLogs\AutoLogger\AutoLogger-Diagtrack-Listener.etlDiagTrack telemetry; FortiGuard found process-execution traces of deleted malware in itPopulation is inconsistent across builds
C:\Windows\Logs\WindowsUpdate\*.etl (Windows 10+)Windows Update client activityConverted with Get-WindowsUpdateLog
C:\Windows\ServiceProfiles\NetworkService\AppData\Local\Microsoft\Windows\DeliveryOptimization\Logs\*.etlDelivery Optimization download activityRead with Get-DeliveryOptimizationLog
C:\Windows\System32\SleepStudy\Sleep and power transition traces on modern-standby devices

Ad-hoc traces also end up as .etl: netsh trace captures (NetTrace.etl), Windows Performance Recorder output, and tool-specific logs.

What it proves

  • Depends on the provider. Examples: a wireless network the host connected to (Wifi.etl), processes and files touched during a boot (BootCKCL.etl), updates and downloads (Windows Update, Delivery Optimization).
  • A session file shows that the provider was enabled and logging at the time covered by the file.
  • It does not give continuous history: circular files cover a short window, and many providers log nothing of forensic interest. Treat findings as corroboration.

Key fields

FieldMeaning
Header: logger name, start and end time, boot time, clock type, buffer sizeDescribes the session and how to convert timestamps
Provider GUID / nameWhich component produced the event
Event ID, version, opcode, taskIdentify the event type within a provider (manifest-based events)
Process ID / thread IDContext of the process that logged the event
PayloadProvider-specific data (paths, SSIDs, URLs, error codes)
Lost events / buffersIndicates dropped data when the session could not keep up

Timestamps

TimestampSet whenFormatPitfalls
Event timestampEvent written to the session bufferRaw counter (QPC, system time or CPU cycles, per the header's clock type) converted to FILETIME UTC by parsersWrong conversion if the header is damaged; tools may display local time
Header start / end timeSession started / file closedFILETIME, UTCA circular file's start time predates its oldest surviving event
.etl file $SI timesFile created / last flushedNTFS, UTCAutoLogger files are recreated or rewritten at boot

Retention and clearing

  • Most system .etl files are circular: when the maximum size is reached, old events are overwritten and cannot be recovered from the file.
  • Boot and shutdown traces are replaced at each boot or shutdown, so only the latest cycle survives (older copies may exist in volume shadow copies).
  • Sessions are configured under HKLM\SYSTEM\CurrentControlSet\Control\WMI\Autologger; an attacker with admin rights can stop sessions or disable providers, which is itself an anti-forensic signal.
  • Deleting .etl files needs admin rights for system folders; look for deletions in the USN journal.

Collection

  • KAPE target: EventTraceLogs (WDI, LogFiles\WMI, SleepStudy, energy-ntkl.etl, Delivery Optimization logs) and WindowsUpdate (Windows Update .etl). Neither covers ExplorerStartupLog*.etl in user profiles nor the DiagTrack AutoLogger folder; collect those explicitly.
  • Velociraptor (Windows.Triage.Targets): EventTraceLogs, WindowsUpdate. For live ETW (not files), Windows.ETW.* artifacts subscribe to providers in real time.
  • Built-in: files of running sessions may be locked; copy them from a shadow copy if a plain copy fails. logman query -ets lists the sessions running at collection time.
logman query -ets
robocopy C:\Windows\System32\LogFiles\WMI E:\case\ETL\WMI *.etl /COPY:DAT
robocopy C:\ProgramData\Microsoft\Diagnosis\ETLLogs E:\case\ETL\Diagnosis /E /COPY:DAT
tracerpt E:\case\ETL\WMI\Wifi.etl -o E:\case\Wifi.xml -of XML
Get-WinEvent -Path E:\case\ETL\WMI\Wifi.etl -Oldest | Select-Object -First 20

Parsing tools

  • tracerpt (built into Windows): converts .etl to XML or CSV plus a summary report.
  • Get-WinEvent (PowerShell): reads .etl files when -Oldest is used.
  • Windows Performance Analyzer (Windows ADK, free): graphical analysis of kernel traces such as BootCKCL.etl.
  • PerfView (Microsoft, open source): opens and exports ETL traces.
  • etl-parser (Airbus CERT, open source, Python): parses manifest-based, TraceLogging and kernel MOF events on any OS; etl2xml and etl2pcap (for netsh trace captures). WPP events are not yet supported.
  • Get-WindowsUpdateLog and Get-DeliveryOptimizationLog (built-in cmdlets): decode those specific trace logs.

Investigation tips

  • Collect ETL folders by default in a triage collection; they are small and often the only record of boot-time or wireless activity.
  • Parse Wifi.etl alongside network profiles and SRUM to place the host on a specific wireless network.
  • Use BootCKCL.etl to look for early-boot binaries and drivers that ran before the Event Log service started.
  • WPP-based traces need the provider's format files (TMF), which are usually not public, so many files will only yield partial output.
  • Convert parsed events to a common time zone and merge them into a super timeline instead of reviewing them in isolation.
  • Absent or tiny ETL files on a system that normally writes them can indicate disabled AutoLogger sessions; check the Autologger registry key.

Related artifacts

Glossary terms

Guides

All artifacts on one page: cheat sheet