All Projects → airbus-cert → Etl Parser

airbus-cert / Etl Parser

Licence: apache-2.0
Event Trace Log file parser in pure Python

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Etl Parser

LevelDBDumper
Dumps all of the Key/Value pairs from a LevelDB database
Stars: ✭ 23 (-65.15%)
Mutual labels:  forensics, dfir
Ir Rescue
A Windows Batch script and a Unix Bash script to comprehensively collect host forensic data during incident response.
Stars: ✭ 311 (+371.21%)
Mutual labels:  dfir, forensics
ir scripts
incident response scripts
Stars: ✭ 17 (-74.24%)
Mutual labels:  forensics, dfir
EventTranscriptParser
Python based tool to extract forensic info from EventTranscript.db (Windows Diagnostic Data)
Stars: ✭ 22 (-66.67%)
Mutual labels:  forensics, dfir
Diffy
Diffy is a triage tool used during cloud-centric security incidents, to help digital forensics and incident response (DFIR) teams quickly identify suspicious hosts on which to focus their response.
Stars: ✭ 555 (+740.91%)
Mutual labels:  dfir, forensics
WELA
WELA (Windows Event Log Analyzer): The Swiss Army knife for Windows Event Logs! ゑ羅(ウェラ)
Stars: ✭ 442 (+569.7%)
Mutual labels:  forensics, dfir
Recuperabit
A tool for forensic file system reconstruction.
Stars: ✭ 280 (+324.24%)
Mutual labels:  dfir, forensics
iTunes Backup Reader
Python 3 Script to parse out iTunes backups
Stars: ✭ 108 (+63.64%)
Mutual labels:  forensics, dfir
Turbinia
Automation and Scaling of Digital Forensics Tools
Stars: ✭ 461 (+598.48%)
Mutual labels:  dfir, forensics
Swap digger
swap_digger is a tool used to automate Linux swap analysis during post-exploitation or forensics. It automates swap extraction and searches for Linux user credentials, web forms credentials, web forms emails, http basic authentication, Wifi SSID and keys, etc.
Stars: ✭ 354 (+436.36%)
Mutual labels:  dfir, forensics
PSTrace
Trace ScriptBlock execution for powershell v2
Stars: ✭ 38 (-42.42%)
Mutual labels:  forensics, dfir
Memlabs
Educational, CTF-styled labs for individuals interested in Memory Forensics
Stars: ✭ 696 (+954.55%)
Mutual labels:  dfir, forensics
DFIR-O365RC
PowerShell module for Office 365 and Azure log collection
Stars: ✭ 158 (+139.39%)
Mutual labels:  forensics, dfir
smram parse
System Management RAM analysis tool
Stars: ✭ 50 (-24.24%)
Mutual labels:  forensics, dfir
ad-privileged-audit
Provides various Windows Server Active Directory (AD) security-focused reports.
Stars: ✭ 42 (-36.36%)
Mutual labels:  forensics, dfir
truehunter
Truehunter
Stars: ✭ 30 (-54.55%)
Mutual labels:  forensics, dfir
CDIR
CDIR (Cyber Defense Institute Incident Response) Collector - live collection tool based on oss tool/library
Stars: ✭ 122 (+84.85%)
Mutual labels:  forensics, dfir
uac
UAC is a Live Response collection script for Incident Response that makes use of native binaries and tools to automate the collection of AIX, Android, ESXi, FreeBSD, Linux, macOS, NetBSD, NetScaler, OpenBSD and Solaris systems artifacts.
Stars: ✭ 260 (+293.94%)
Mutual labels:  forensics, dfir
Mac apt
macOS Artifact Parsing Tool
Stars: ✭ 329 (+398.48%)
Mutual labels:  dfir, forensics
Hindsight
Web browser forensics for Google Chrome/Chromium
Stars: ✭ 589 (+792.42%)
Mutual labels:  dfir, forensics

etl-parser

Event Trace Log file reader in pure Python

etl-parser is a pure Python 3 parser library for ETL Windows log files. ETL is the default format for ETW as well as the default format for the Kernel logger.

etl-parser has no system dependencies, and will work well on both Windows and Linux.

Since this format is not documented, we merged information from the blog of Geoff Chappel and reverse engineering activities conducted by Airbus CERT team.

What is ETL and why is it a pain to work with? Consider ETL as a container, like AVI is for video files. Reading ETL is similarly frustrating as reading an AVI file without the right codec.

etl-parser tries to solve this problem by including parsers for the following well known log formats:

  • ETW manifest base provider
  • TraceLogging
  • MOF for kernel log

How to use etl-parser?

etl-parser offers two scripts. The first script, etl2xml transforms all known ETL events into XML:

etl2xml -i example.etl -o example.xml

The second script, etl2pcap transforms network captures created through netsh into the pcap file format:

netsh start trace capture=yes
netsh stop trace

etl2pcap -i NetTrace.etl -o NetTrace.pcap

You can also use etl-parser as a library:

from etl.etl import IEtlFileObserver, build_from_stream
from etl.system import SystemTraceRecord
from etl.perf import PerfInfo
from etl.event import Event
from etl.trace import Trace
from etl.wintrace import WinTrace

class EtlFileLogger(IEtlFileObserver):
    def on_system_trace(self, event: SystemTraceRecord):
        """Mof kernel message with Process Id and Thread Id"""
        mof = event.get_mof() # Invoke MOF parser

    def on_perfinfo_trace(self, event: PerfInfo):
        """Mof kernel message with timestamp"""
        mof = event.get_mof() # Invoke MOF parser

    def on_trace_record(self, event: Trace):
        """unknown"""

    def on_event_record(self, event: Event):
        """ETW event this is what you search"""
        # Choose the "parse_" function which corresponds to your event
        message = event.parse_tracelogging() # Invoke TraceLogging parser
        message = event.parse_etw() # Invoke Manifest based parser

    def on_win_trace(self, event: WinTrace):
        """unknown"""
        etw = event.parse_etw()

with open("example.etl", "rb") as etl_file:
    etl_reader = build_from_stream(etl_file.read())
    etl_reader.parse(EtlFileLogger())

Installation

etl-parser is available from pip:

pip install etl-parser

Alternatively, you can install etl-parser using setup.py:

git clone https://github.com/airbus-cert/etl-parser.git
cd etl-parser
pip install -e .

Missing a parser?

If you encounter a parsing error, please open an issue on the Airbus CERT GitHub repository.

Why an ETL Parser?

The EVTX log format is fairly well documented, with lots of libraries and tools available today. This is not true for ETL: at time of development, there is no significant open-source project that we know of and the ETL format is not well documented.

ETL is massively used by Windows system programmers to log useful artifacts:

  • C:\Windows\System32\WDI\LogFiles\BootPerfDiagLogger.etl
  • C:\Windows\System32\WDI\LogFiles\ShutdownPerfDiagLogger.etl
  • NetTrace.etl via netsh
  • C:\Windows\System32\WDI\<GUID>\<GUID>\snapshot.etl
  • etc.

A lot of new APIs such as Tracelogging or WPP are based on ETW. These APIs are used extensively by Microsoft developers for Windows. Tracelogging is addressed by etl-parser, WPP will be addressed in a future release.

Microsoft offers a lot of consumers that create ETL traces, such as xperf.exe, logman.exe, netsh.exe, etc.

We believe it is a gold mine for DFIR analysts.

Credits

License

etl-parser is released under the Apache 2.0 license.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].