XI. Netstat▲
Ce chapitre est une traduction de la page http://commandwindows.com/netstat.htm dont l'auteur original est Victor Laurie.
Netstat est un outil utile pour vérifier les connexions réseau et Internet. Plusieurs utilisations pour les ordinateurs personnels sont décrites dans ce chapitre, nottamment la détection de connexions malveillantes.
XI-A. Syntaxe et options▲
La syntaxe de la commande est :
netstat
[-a] [-b] [-e] [-n] [-o] [-p proto] [-r] [-s] [-v] [intervalle]
Une brève description des options est donnée dans le tableau I ci-dessous. Remarquez que les commutateurs de Netstat utilisent le symbole "-" au lieu du slash "/"..
Tableau I. Options de la commande Netstat
Commutateur | Description |
---|---|
-a | Affiche toutes les connexions et les ports en écoute |
-b | Affiche l'exécutable impliqué dans la création de chaque connexion ou port d'écoute. (Ajouté dans XP SP2). |
-e | Affiche les statistiques Ethernet |
-n | Affiche les adresses et les numéros de ports au format numérique |
-o | Affiche l'identificateur du processus propriétaire associé à chaque connexion. |
-p proto | Affiche les connexions pour le protocole spécifié par proto ; proto peut être une des valeurs suivantes : TCP, UDP, TCPv6 ou UDPv6. |
-r | Affiche la table de routage. |
-s | Affiche les statistiques par protocole. |
-v | Quand -v est utilisé avec -b, netstat va afficher la séquence des composants impliqués dans la création de la connexion ou du port d'écoute pour tous les exécutables. |
[intervalle] | Affiche régulièrement les statistiques sélectionnées, en faisant une pause pendant le nombre de secondes spécifié par l'intervalle entre chaque affichage. Appuyez sur CTRL+C pour arrêter l'affichage des statistiques. Si l'intervalle est omis, netstat n'affichera les informations de configuration actuelle qu'une seule fois. |
XI-B. Applications de Netstat▲
Netstat est l'un des nombreux outils en ligne de commande permettant de vérifier le fonctionnement d'un réseau. (Consultez cette page pour plus d'informations sur les autres outils). Elle permet de vérifier si plusieurs éléments de TCP/IP fonctionnent et quelles sont les connexions établies. A partir de Windows XP SP2, une nouvelle option "-B" a été ajoutée. Elle permet de connaitre le fichier exécutable qui a ouvert une connexion. Cette nouvelle possibilité fournit un moyen de découvrir si un fichier malveillant utilise votre ordinateur de manière incorrecte en accédant à Internet. Il y a de nombreuses façons pour un administrateur système d'utiliser les options de Netstat, mais je vais vous donner deux exemples qui seront utiles à la majorité des utilisateurs de PC.
XI-B-1. Vérifier les connexions TCP/IP▲
Les connexions TCP et UDP ainsi que leurs adresses IP et port peuvent être obtenues en entrant la commande :
netstat
-an
La figure 1 montre un exemple de résulat obtenu.
Figure 1. Exemple de résultat pour la commande "netstat -an"
Les informations affichées sont le protocole, l'adresse locale, l'adresse distante et l'état de la connexion. Remarquez que de nombreuses adresses IP sont affichées avec le numéro de port. Les différents statuts de connexion sont décrits dans le tableau II.
Tableau II. Description des diiférents statuts de connexion
État | Description |
---|---|
CLOSED | Indique que le serveur a reçu un signal ACK envoyé par le client et que la connexion est fermée. |
CLOSE_WAIT | Indique que le serveur a reçu le premier signal FIN envoyé par le client et que la connexion est en train d'être fermée. |
ESTABLISHED | Indique que le serveur a reçu le signal SYN envoyé par le client et que la session est établie. |
FIN_WAIT_1 | Indique que la connexion est toujours active mais n'est pas utilisée actuellement. |
FIN_WAIT_2 | Indique que le client vient juste de recevoir l'accusé de réception du premier signal FIN envoyé par le serveur. |
LAST_ACK | Indique que le serveur est en train d'envoyer son propre signal FIN. |
LISTENING | Indique que le serveur est prêt à accepter une connexion. |
SYN_RECEIVED | Indique que le serveur vient de recevoir un signal SYN envoyé par le client. |
SYN_SEND | Indique que la connexion est ouverte et active. |
TIME_WAIT | Indique que le client reconnait la connexion comme encore activé mais non utilisée actuellement. |
XI-B-2. Rechercher les programmes malveillants en regardant quels programmes ouvrent des connexions▲
Pour trouver quels sont les programmes qui établissent des connexions vers le monde extérieur, on peut utiliser la commande
netstat
-b
Il est préférable d'effectuer cette vérification sur une certaine période de temps. Nous ajoutons donc un chiffre qui va indiquer à la commande de s'exécuter à intervalles fixes. Il est également préférable de conserver une trace écrite des connexions qui sont établies durant une certaine période de temps. La commande sera donc
netstat
-b 5 >>
C:\con
nexions.txt
Avec cette syntaxe, la commande va s'exécuter toutes les 5 secondes jusqu'à ce que l'utilisateur tape "Ctrl+C" (qui est la commande usuelle pour quitter). (Certains disent que cela peut entrainer une utilisation intensive du processeur de sorte que cela peut provoquer un ralentissement sur des machines "simple coeur" peu rapides. Mais cela n'était pas visible sur ma machine dual-core). La Figure 2 montre un exemple simple de résultat. Remarquez que le numéro de processus (PID) est affiché. Cette commande peut être combinée avec d'autres outils comme le gestionnaire de tâches pour analyser quels fichiers et processus sont actifs et essaient de se connecter à Internet.
Figure 2. Exemple de résultat pour la commande "netstat -b"
XI-B-3. Programme batch pour vérifier les connexions et s'arrêter automatiquement▲
L'exemple précédent (contrôle des connexions avec "netstat -b") présente l'inconvénient de nécessiter un arrêt manuel (CTRL+C). Il est également possible d'utiliser un fichier batch qui s'exécute un certain nombre de fois à un intervalle donné et se termine automatiquement. Dans Windows XP on peut utiliser la commande "Sleep" provenant des outils Windows 2003 Serveur. Voici un exemple de fichier batch :
@
echo
off
for
/L %%X
in
(1,1,100) do
(netstat
-b >>
C:\con
nexions.txt)&
(sleep
5)
Cet exemple exécute 100 fois la commande netstat à 5 secondes d'intervalle.