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
Winshark — Un plugin Wireshark pour instrumenter ETW | Kitploit
Outils/GitHubGitHub/airbus-cert/winshark
Sniffing et Analyse de PaquetsAnalyse ForensiqueSécurité RéseauAnalyse de Journaux
GitHubairbus-cert/winshark

Winshark

Un plugin Wireshark pour instrumenter ETW

Voir le dépôt
59360il y a 4 ansVé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

Winshark

Plugin Wireshark pour travailler avec Event Tracing for Windows

Microsoft Message Analyzer est en fin de vie et ses paquets de téléchargement ont été retirés des sites microsoft.com le 25 novembre 2019. Wireshark a construit une immense bibliothèque de dissecteurs de protocoles réseau. Le meilleur outil pour Windows serait celui qui peut collecter et mélanger tous les types de logs...

Bienvenue Winshark!!!

Winshark est basé sur un backend libpcap pour capturer ETW (Event Tracing for Windows), et un générateur qui produira tous les dissecteurs pour les fournisseurs ETW connus sur votre machine. Nous avons ajouté le support de Tracelogging pour couvrir presque toutes les techniques de journalisation sur le système d'exploitation Windows.

Avec Winshark et la puissance de Windows, nous pouvons désormais capturer les logs réseau et événementiels dans le même outil. Windows expose de nombreux fournisseurs ETW, en particulier un pour la capture réseau ;-) Fini le besoin d'un pilote NDIS externe.

C'est une énorme amélioration en termes d'utilisation :

  • Permet de mélanger tous types d'événements (système et réseau)
  • Permet d'utiliser le filtrage Wireshark sur les logs d'événements
  • Permet de suivre les logs système et réseau par ID de processus !!!
  • Permet de capturer les logs Windows et la trace réseau dans un unique fichier pcap !!!
  • Capture des NamedPipe via le pilote de filtre système de fichiers NpEtw

Si vous voulez :

  • Capturer le trafic réseau avec Winshark
  • Filtrer par ID de processus
  • Capturer le trafic NamedPipe

Install

Veuillez d'abord installer Wireshark. Ensuite, installez simplement Winshark.

Actuellement, vous devez demander à Wireshark d'interpréter le DLT_USER 147 comme ETW. Cela est dû au fait que vous n'avez pas encore de valeur réelle de libpcap pour notre nouvelle couche de liaison. Nous avons soumis une pull request pour obtenir une valeur DLT dédiée ; elle est toujours en attente. Pour ce faire, vous devez ouvrir l'onglet Preferences sous le panneau Edit. Sélectionnez DLT_USER sous Protocols et Edit la table d'encapsulation :

DLT_USER configuration

Et définissez winshark pour DLT = 147 :

DLT 147 set to ETW protocol

Profitez-en !

Build

Winshark est propulsé par cmake :

root@kitploit:~
git clone https://github.com/airbus-cert/winshark --recursive
mkdir build_winshark
cd build_winshark
cmake ..\Winshark
cmake --build . --target package --config release

Comment ça marche

Pour mieux comprendre comment Winshark fonctionne, nous devons d'abord comprendre comment ETW fonctionne.

ETW est divisé en trois parties :

  • Un Provider qui émettra des logs et est identifié par un ID unique
  • Une Session qui mélangera un ou plusieurs providers
  • Un Consumer qui lira les logs émis par une session

Provider

Il existe de nombreux types de providers. Les plus courants et utilisables sont les providers enregistrés. Un provider enregistré, ou basé sur un manifeste, est enregistré sous la clé de registre HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WINEVT\Publishers. Cela fait le lien entre un ID de provider et une dll. Le manifeste est intégré dans la dll associée sous un nom de ressource WEVT_TEMPLATE.

Vous pouvez lister tous les providers enregistrés sur votre machine en utilisant logman :

root@kitploit:~
logman query providers

Vous pouvez également lister tous les providers liés à un processus particulier :

root@kitploit:~
logman query providers -pid 1234

Certains peuvent apparaître sans nom ; ces types de providers peuvent produire des logs WPP ou TraceLogging.

Session

Les sessions sont créées pour collecter les logs de plus d'un provider. Vous pouvez créer votre propre session en utilisant logman :

root@kitploit:~
logman start Mysession -p "Microsoft-Windows-RemoteDesktopServices-RdpCoreTS" -ets -rt
logman update MySession -p "Microsoft-Windows-NDIS-PacketCapture" -ets -rt

Vous pouvez lister toutes les sessions actives à partir d'une ligne de commande administrateur :

root@kitploit:~
logman query -ets

Data Collector Set                      Type                          Status
-------------------------------------------------------------------------------
...
EventLog-Application                    Trace                         Running
EventLog-Microsoft-Windows-Sysmon-Operational Trace                         Running
EventLog-System                         Trace                         Running
...
The command completed successfully.

Vous pouvez voir ici quelques sessions intéressantes utilisées par le journaliseur d'événements pour capturer les logs des sessions Application et System ainsi que de Sysmon.

Consumer

Un consumer est un programme simple qui lira les logs d'une session. Les consumers bien connus sont :

  • Event Logger
  • logman
  • netsh
  • tracert

Et maintenant Winshark!!! Winshark est un simple consumer ETW. Le consumer sous-jacent réel est libpcap, (wpcap.dll pour Windows) qui est utilisé par dumpcap.exe, le processus en charge de la capture de paquets.

Wireshark

Wireshark est divisé en trois parties (oui, lui aussi) :

  • Wireshark.exe qui est en charge de l'analyse et du dissage des protocoles
  • dumpcap.exe qui est en charge de la capture des paquets
  • libpcap (wpcap.dll) qui est en charge de l'interface entre dumpcap.exe et le système d'exploitation

Winshark prend place dans la première et la dernière partie. Il implémente un backend pour libpcap afin de capturer les événements ETW. Winshark fonctionne sur les sessions ETW, c'est pourquoi vous pouvez sélectionner une session ETW à la place d'une interface réseau au début de la capture. Ensuite, Winshark génère des dissecteurs lua pour chaque provider basé sur un manifeste enregistré sur votre ordinateur, lors de l'étape d'installation. Winshark est également capable d'analyser les providers basés sur Tracelogging.

Capturer le trafic réseau

Pour capturer le trafic réseau avec Winshark, vous pouvez utiliser deux méthodes simples :

pktmon (Packet Monitor)

pktmon est un outil de diagnostic réseau intégré et multi-composants pour Windows. Il peut être utilisé pour la capture de paquets, la détection de perte de paquets, le filtrage et le comptage (supporté à partir de RS5)

(https://docs.microsoft.com/en-us/windows-server/networking/technologies/pktmon/pktmon)

root@kitploit:~
pktmon start -c -m real-mode

vous pouvez exécuter pktmon -h pour plus d'options (en tant qu'administrateur)

Par exemple : Ajoutez un filtre pour les paquets

root@kitploit:~
pktmon filter add -t icmp
pktmon filter add -t tcp -p 80

Ensuite, lancez Wireshark avec des privilèges administrateur et sélectionnez l'interface Pktmon : ETW interface selection

Cela démarrera la capture de paquets :

ETW packet capture

netsh trace

root@kitploit:~
netsh.exe trace start capture=yes report=no correlation=no

Et créez ensuite une session ETW associée au fournisseur Microsoft-Windows-NDIS-PacketCapture :

root@kitploit:~
logman start Winshark-PacketCapture -p "Microsoft-Windows-NDIS-PacketCapture" -rt -ets

Ensuite, lancez Wireshark avec des privilèges administrateur et sélectionnez l'interface Winshark-PacketCapture :

ETW interface selection

Cela démarrera la capture de paquets :

ETW packet capture

Filtrage par ID de processus

ETW marque chaque paquet avec un en-tête qui définit certaines métadonnées sur l'expéditeur. L'une d'elles est l'ID de processus de l'émetteur. C'est une énorme amélioration par rapport à une capture de paquets classique depuis un pilote NDIS. Remplissez simplement le champ de filtre de Wireshark avec l'expression suivante :

root@kitploit:~
winshark.header.ProcessId == 1234

ETW packet capture

Capturer les NamedPipe

@kobykahane fournit un pilote de filtre système de fichiers qui émet un ETW pour chaque action effectuée sur un NamedPipe.

Install

  • Passez la vérification de signature du pilote en mode test
root@kitploit:~
bcdedit /set testsigning on
  • Installez NpEtwSetup.msi
  • Redémarrez
  • Mettez à jour le dissecteur Winshark en double-cliquant sur C:\Program Files\Wireshark\WinsharkUpdate.bat avec les droits Admin

Capture

  • Ouvrez une cmd.exe en mode Admin
  • Démarrez le pilote
root@kitploit:~
sc start NpEtw
  • Créez une session ETW
root@kitploit:~
logman start namedpipe -p NpEtw -ets -rt
  • Lancez Wireshark et sélectionnez la session namedpipe. Profitez-en !

ETW namedpipe capture

SSTIC (Symposium sur la sécurité des technologies de l'information et des communications)

Ce projet fait partie d'une présentation faite pour SSTIC

Télécharger l’outil