Microsoft Network Monitor est un outil legacy d’analyse de paquets réseau de Microsoft qui a atteint la fin de son cycle de développement. Cet article fournit un guide technique approfondi sur son architecture, ses méthodes de capture et la mise en œuvre de son langage de filtres spécifique pour un diagnostic réseau précis, ainsi que le contexte de ses remplaçants modernes.
Microsoft Network Monitor (souvent appelé NetMon) est une application propriétaire d’analyse de paquets développée par Microsoft pour les systèmes d’exploitation Windows. Il fonctionne comme un analyseur de protocoles et un renifleur réseau capable de capturer, décoder, afficher et analyser les trames de données traversant une interface réseau. Techniquement, il opère aux couches Liaison de données (Couche 2) et Réseau (Couche 3) du modèle OSI, permettant l’inspection des en-têtes et des charges utiles de divers protocoles comme Ethernet, IPv4/IPv6, TCP, UDP et les protocoles applicatifs. Cependant, il est crucial de noter que Microsoft a annoncé la fin de vie de cet outil et l’a retiré de la distribution officielle vers 2016. Son successeur, le Microsoft Message Analyzer, a également été archivé.
Architecture et Guide d’Installation
Microsoft Network Monitor 3.4 est construit sur un Pilote Network Monitor dédié qui doit être installé. Ce pilote permet à l’application en mode utilisateur de capturer les paquets en mode promiscuité, un mode où l’adaptateur réseau peut recevoir tout le trafic sur le segment de réseau, indépendamment de savoir si le paquet est destiné à l’adresse MAC de cet adaptateur. Voici la procédure technique d’installation :
- Téléchargement du Binaire : Téléchargez le package d’installation (
NM34_x64.exeouNM34_x86.exe) depuis une archive tierce de confiance, car le lien officiel de Microsoft n’est plus actif. Assurez-vous de vérifier le hash du fichier (MD5/SHA1) s’il est fourni pour confirmer l’intégrité du binaire. - Installation et Configuration du Pilote : Exécutez l’installateur avec les privilèges d’administrateur. Ce processus installera l’application elle-même ainsi que le Pilote Network Monitor. Vous pourrez voir des demandes du Contrôle de compte d’utilisateur (UAC) Windows et de la Sécurité Windows pour installer un pilote non signé, selon la politique du système.
- Exécution avec Privilèges : Après l’installation, exécutez toujours l’application « Microsoft Network Monitor 3.4 » avec l’option « Exécuter en tant qu’administrateur ». Ceci est crucial car le processus de capture nécessite un accès au niveau du noyau via le pilote. Sans ce privilège, les fonctionnalités de capture et d’analyse des processus ne fonctionneront pas.

- Sélection de l’Adaptateur Réseau : Dans le panneau supérieur gauche, cochez un seul adaptateur réseau qui sera la source de capture. Sélectionner plus d’un adaptateur peut entraîner une surcharge CPU significative et mélanger les trames de différents segments réseau, compliquant l’analyse. Choisissez l’adaptateur correspondant à la Carte d’Interface Réseau (NIC) connectée au segment cible.

Méthodologie de Capture et d’Analyse de Trames
Le processus central de Microsoft Network Monitor implique la capture et l’interprétation des trames réseau. Chaque trame capturée est analysée en fonction des analyseurs de protocoles intégrés. Voici le flux de travail technique :
- Initiation de la Session de Capture : Cliquez sur le bouton « Nouvelle Capture » (l’icône de nouvelle page) puis sur le bouton « Démarrer » (l’icône de triangle vert). En interne, l’application initie une session de capture avec le pilote, allouant un tampon mémoire circulaire dans la RAM pour stocker temporairement les trames avant de les écrire sur le disque (si configuré).

- Interprétation des Données dans le Panneau Résumé de Trame : Chaque ligne du panneau « Résumé de Trame » représente une trame. Les colonnes importantes incluent :
- Numéro de Trame : Numéro séquentiel de la trame depuis le début de la session.
- Décalage Temporel : Delta de temps depuis la première trame capturée.
- Adresse MAC Source et Destination : Adresses de la couche Liaison de données.
- Protocole : Le protocole de couche supérieure identifié avec succès dans la trame (par exemple, TCP, HTTP, DNS).
- Description : Résumé lisible par un humain du contenu de la trame, généré par l’analyseur.

- Inspection Approfondie des Paquets dans le Panneau Détails de Trame : Cliquez sur une ligne de trame pour voir une analyse approfondie dans le panneau inférieur. Ce panneau utilise une vue arborescente hiérarchique montrant la décomposition de la trame par couche de protocole (par exemple, En-tête Ethernet, En-tête IP, En-tête TCP, Charge utile HTTP). C’est ici que le dépannage technique est effectué, comme analyser les drapeaux TCP, les valeurs TTL, les erreurs de somme de contrôle ou les séquences de poignée de main en trois étapes.
- Application de Filtres pour une Analyse Spécifique : Utilisez la boîte « Filtre » au-dessus du panneau Résumé de Trame pour filtrer des milliers de trames selon des critères techniques très spécifiques. Ces filtres utilisent le puissant Langage d’Analyse de Network Monitor (NPL).
Mise en Œuvre du Langage de Filtres NPL pour le Diagnostic
La principale force analytique de Microsoft Network Monitor réside dans le Langage d’Analyse de Network Monitor (NPL). C’est un langage d’expression booléenne permettant de construire des filtres basés sur des champs d’en-têtes de protocole ou des propriétés calculées. Comprendre la syntaxe NPL est essentiel pour l’isolation des problèmes.
Filtres de Couche IP et Transport
| Champ/Propriété | Description Technique et Cas d’Utilisation | Exemple de Syntaxe NPL |
|---|---|---|
IPv4.Address | Correspond à une adresse IPv4 en tant que source OU destination. Utile pour surveiller toute l’activité d’un hôte. | IPv4.Address == 192.168.1.10 |
IPv4.SourceAddress | Spécifique à l’adresse source du paquet. Pour suivre le trafic envoyé par un hôte particulier. | IPv4.SourceAddress == 10.0.0.5 |
TCP.Port | Correspond à un numéro de port TCP en tant que source OU destination. Essentiel pour filtrer des services spécifiques (port 443 pour HTTPS, 3389 pour RDP). | TCP.Port == 443 |
TCP.Flags | Vérifie les combinaisons de drapeaux TCP. Analyse les modèles de connexion (SYN pour l’initiation, RST pour la réinitialisation forcée, FIN pour la terminaison gracieuse). | TCP.Flags.Syn == 1 && TCP.Flags.Ack == 0 (paquets SYN purs uniquement) |
Property.TCPRetransmit | Propriété définie à 1 si détectée comme une retransmission TCP. Un indicateur principal de perte de paquets, de congestion ou de RTT élevé. | Property.TCPRetransmit == 1 |
Par exemple, pour diagnostiquer des connexions lentes à un serveur web, vous pouvez combiner des filtres :
// Filtre pour capturer les retransmissions TCP destinées au serveur web 203.0.113.5 sur le port 80
IPv4.DestinationAddress == 203.0.113.5 && TCP.Port == 80 && Property.TCPRetransmit == 1Filtres Basés sur le Processus d’Application
Une caractéristique unique de NetMon est sa capacité à corréler le trafic réseau avec le ID de Processus (PID) et le Nom du Processus qui a généré ou reçu le trafic. Ceci est réalisé grâce à l’intégration avec l’API Réseau de Windows. Ces filtres sont très utiles pour identifier quelle application consomme de la bande passante.
| Propriété | Description | Exemple |
|---|---|---|
Property.ProcessName | Le nom du fichier image du processus (par exemple, chrome.exe, svchost.exe). La recherche ne fait pas de distinction entre majuscules et minuscules. | Property.ProcessName.Contains("chrome") |
Property.ProcessId | L’ID numérique du processus. Utile s’il y a plusieurs instances de la même application. | Property.ProcessId == 4512 |
Filtres de Protocole Spécifique et Exemples Complexes
Pour un diagnostic plus profond, vous pouvez créer des filtres ciblant des comportements de protocole spécifiques. Voici des exemples pour analyser les problèmes DNS ou les connexions échouées :
// 1. Filtre pour capturer uniquement les paquets de requête et de réponse DNS
DNS
// 2. Filtre pour capturer les conversations TCP qui ont échoué lors du handshake en trois étapes
// (Détecte un paquet SYN suivi de RST, sans SYN-ACK)
TCP.Flags.Syn == 1 && TCP.Flags.Ack == 0 && TCP.Flags.Rst == 1
// 3. Filtre pour capturer le trafic HTTP contenant un mot-clé spécifique dans l'URI
HTTP.Request.URI.Contains("login")Conclusion et Recommandations pour les Environnements Modernes
En tant qu’outil obsolète, Microsoft Network Monitor conserve une valeur éducative pour comprendre les principes de base de l’analyse de paquets et du décodage de protocoles dans les environnements Windows. Ses forces résident dans une bonne intégration avec la pile réseau de Windows et des capacités de filtrage basées sur les processus. Cependant, pour les besoins professionnels, techniques et d’audit de sécurité modernes, son manque de mises à jour, l’absence de support pour les protocoles plus récents (comme HTTP/2, QUIC) et une communauté inactive en font un choix moins idéal.
Une recommandation pratique est de migrer vers Wireshark, le standard de facto pour l’analyse réseau. Wireshark offre une prise en charge des protocoles beaucoup plus large, des capacités de filtrage très expressives (Filtre de Paquets Berkeley et Filtres d’Affichage Wireshark), une grande communauté et des mises à jour de sécurité régulières. La compréhension approfondie des concepts obtenue en étudiant Microsoft Network Monitor, comme lire les dumps hexadécimaux et les structures d’en-tête, peut être transférée directement et constituer une base solide pour utiliser des outils d’analyse de paquets plus modernes.


