Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
etl-parser — Analyseur de fichiers de journalisation de traces d'événements en Python pur | Kitploit
Outils/GitHubGitHub/airbus-cert/etl-parser
Rétro-ingénierieAnalyse ForensiqueCriminalistique NumériqueAnalyse de Journaux
GitHubairbus-cert/etl-parser

etl-parser

Analyseur de fichiers de journalisation de traces d'événements en Python pur

Voir le dépôt
1562410il y a 3 moisVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

etl-parser

Lecteur de fichiers de trace d'événements (ETL) en pur Python

etl-parser est une bibliothèque d'analyse en pur Python pour les fichiers journaux Windows ETL. ETL est le format par défaut pour ETW ainsi que pour le journaliseur du noyau.

etl-parser n'a aucune dépendance système et fonctionnera aussi bien sous Windows que sous Linux.

Étant donné que ce format n'est pas documenté, nous avons fusionné les informations du blog de Geoff Chappel et les activités de rétro-ingénierie menées par l'équipe CERT d'Airbus.

Qu'est-ce que ETL et pourquoi est-ce pénible à utiliser ? Considérez ETL comme un conteneur, analogue à AVI pour les fichiers vidéo. Lire ETL est tout aussi frustrant que de lire un fichier AVI sans le bon codec.

etl-parser tente de résoudre ce problème en incluant des analyseurs pour les formats de journal bien connus suivants :

  • Fournisseur de base de manifeste ETW
  • TraceLogging
  • MOF pour le journal du noyau

Comment utiliser etl-parser ?

etl-parser propose deux scripts. Le premier script, etl2xml, transforme tous les événements ETL connus en XML :

root@kitploit:~
etl2xml -i example.etl -o example.xml

Le deuxième script, etl2pcap, transforme les captures réseau créées via netsh au format de fichier pcap :

root@kitploit:~
netsh trace start capture=yes
netsh trace stop 

etl2pcap -i NetTrace.etl -o NetTrace.pcap

Vous pouvez également utiliser etl-parser comme une bibliothèque :

root@kitploit:~
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):
        """Message MOF du noyau avec ID de processus et ID de thread"""
        mof = event.get_mof() # Appel de l'analyseur MOF

    def on_perfinfo_trace(self, event: PerfInfo):
        """Message MOF du noyau avec horodatage"""
        mof = event.get_mof() # Appel de l'analyseur MOF

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

    def on_event_record(self, event: Event):
        """Événement ETW, c'est ce que vous recherchez"""
        # Choisissez la fonction "parse_" qui correspond à votre événement
        message = event.parse_tracelogging() # Appel de l'analyseur TraceLogging
        message = event.parse_etw() # Appel de l'analyseur basé sur le manifeste

    def on_win_trace(self, event: WinTrace):
        """inconnu"""
        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 est disponible via pip :

root@kitploit:~
pip install etl-parser

Sinon, vous pouvez installer etl-parser en utilisant setup.py :

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

Un analyseur manquant ?

Si vous rencontrez une erreur d'analyse, veuillez ouvrir un ticket sur le dépôt GitHub d'Airbus CERT.

Pourquoi un analyseur ETL ?

Le format de journal EVTX est assez bien documenté, avec de nombreuses bibliothèques et outils disponibles aujourd'hui. Ce n'est pas le cas pour ETL : au moment du développement, il n'existe aucun projet open-source significatif à notre connaissance et le format ETL n'est pas bien documenté.

ETL est massivement utilisé par les programmeurs système Windows pour journaliser des artefacts utiles :

  • 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.

De nombreuses nouvelles API telles que Tracelogging ou WPP sont basées sur ETW. Ces API sont largement utilisées par les développeurs Microsoft pour Windows. Tracelogging est pris en charge par etl-parser, WPP le sera dans une future version.

Microsoft propose de nombreux consommateurs qui créent des traces ETL, comme xperf.exe, logman.exe, netsh.exe, etc.

Nous pensons que c'est une mine d'or pour les analystes DFIR.

Crédits

  • Ce projet est sous la responsabilité de l'Airbus Computer Emergency Response Team (CERT) et distribué sous la licence Apache 2.0
  • Geoff Chappel pour toutes les informations sur son blog

Licence

etl-parser est publié sous la licence Apache 2.0.

Télécharger l’outil