__:: Outils : Connexions TCP ::__

 

Nous avons longuement parlé du protocole TCP tout au long des chapitres théoriques. Vous verrez qu'en pratique, peu d'outils suffisent pour monitorer vos connexions TCP et comprendre ce qu'il se passe.
On dispose en effet de deux outils DOS assez puissants, c'est à peu près les seuls que je vais décrire ici ... Tant pis pour les allergiques à MS-DOS !!

 

Netstat

Le voilà cet outil !! Netstat vous permet d'obtenir toutes les informations que vous voulez sur l'ensemble des connections TCP en cours sur votre machine.
Voici la syntaxe à utiliser :


Cette fois-ci, pas besoin de préciser d'adresse IP puisque c'est votre machine qui vous intéresse.
Dans la très grande majorité des cas, on utilisera netstat avec l'option "-a" pour accéder en un coup à la totalité des connections TCP en cours, sans en laisser de côté.
Cette commande liste dons toutes les connections TCP ouvertes avec pour chacune : le port et adresse source (sur votre machine), le port et adresse cible (sur la machine distante), l'état de la connexion (établie, en cours d'établissement, en cours de fermeture, port à l'écoute...)

Prenons un petit exemple :

C:\>netstat -a

Connexions actives

Proto Adresse locale Adresse distante Etat
TCP bob:epmap bob:0 LISTENING
TCP bob:microsoft-ds bob:0 LISTENING
TCP bob:1025 bob:0 LISTENING
TCP bob:1027 bob:0 LISTENING
TCP bob:1029 bob:0 LISTENING
UDP bob:epmap *:*
UDP bob:microsoft-ds *:*
UDP bob:1026 *:*
UDP bob:1028 *:*

J'ai ici tapé la commande sans être en ligne. Le résultat indique donc que même Off-line, un certain nombre de ports TCP sont à l'écoute (LISTENING), en attente d'une connexion.
Détaillons les infos contenues sur une ligne :

TCP | bob:epmap | bob:0 | LISTENING

Pour mieux distinguer les colonnes, je les ai séparées par le signe "|". La première colonne précise le nom du protocole utilisé pour la connexion (sur la plus haute couche). On peut y trouver les valeurs IP, TCP ou UDP.
La deuxième colonne contient les informations relatives à l'adresse locale soit un nom DNS (ici bob) et un numéro de port. Ici, netstat affiche le service associé au numéro de port et non le numéro de port sous son format numérique. Il est possible d'obtenir toutes ces informations au format numérique uniquement (adresse IP et numéro de port) en précisant l'option "-n"
Le troisième champ contient les informations sur l'ordinateur distant : nom DNS et numéro de port. On remarque qu'ici, l'ordinateur distant est le même que l'ordinateur local : il n'y a donc pas de connexion vers l'exterieur sur ce port. Par ailleurs, le numéro de port distant est 0 ce qui indique également l'absence de connexion.
Le quatrième champ indique l'état de la connexion. LISTENING signifie qu'il n'y a pas de connexion en cours mais que le port est ouvert et à l'écoute, en attente d'une connexion entrante.

On aurait aussi bien pu obtenir le résultat suivant :

C:\>netstat -an

Connexions actives
Proto Adresse locale Adresse distante Etat
TCP 0.0.0.0:135 | 0.0.0.0:0 LISTENING
TCP 0.0.0.0:445 | 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1025 | 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1027 | 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1029 | 0.0.0.0:0 LISTENING
UDP 0.0.0.0:135 *:*
UDP 0.0.0.0:445 *:*
UDP 0.0.0.0:1026 *:*
UDP 0.0.0.0:1028 *:*
UDP 0.0.0.0:1143 *:*
UDP 127.0.0.1:1035 *:*

C:\>

Les informations fournies sont les mêmes, elles sont juste présentées sous un autre format. Vous remarquez donc que l'adresse IP indiquée pour la quasi totalité des ports à l'écoute est 0.0.0.0. Ceci confirme que la commande a été lancée Off-line. Ceci est aussi un autre moyen de trouver votre adresse IP !

Voici un exemple en ligne :

 

Vous voyez donc qu'a l'instant où la commande est lancée, plusieurs services sont en cours : tout d'abord une récupération de mail qui est en attente de fermeture (dont l'adresse distante est bob:pop3), deux connexions TCP supportant un transfert HTTP provenant du site club-internet.fr, autrement dit on est e train de charger cette page.
Un troisième service occupe deux autres connexions TCP vers aim1.radiate.com sur le port 1975. Il s'agit de l'instant messanger d'AOL.

En version numérique, cela donne :

 

On confirme donc : POP3 est équivalent au port 110, HTTP au port 80.
En principe, l'adresse distante du service mail (sur port 110) ne devrait pas être 127.0.0.1. Il s'agit d'une coquille car on devrait voir là l'adresse du serveur mail. Cependant, la connexion est en cours de fermeture et doit être dans une phase d'attente et ne reçoit plus de données, on ne connaît donc plus l'adresse IP distante.

Rem: Vous pouvez ainsi trouver l'adresse IP des sites que vous visitez : club-internet.fr --> 213.44.136.30

Cette commande est vraiment pratique car facile à utiliser. Vous pouvez ainsi toujours savoir quels ports sont ouverts sur votre machine (à l'écoute) et quelles sont les connexions en cours et verifier ainsi que vous n'avez pas de cheval de troie installé sur votre pc (voir plus bas).

Netcat

Netcat est un petit outil assez pratique et qui dispose d'un nombre impressionnant de fonctions, si bien qu'on l'appelle souvent le couteau suisse des réseaux.
En gros, cet outil est capable d'établir toutes les connexions TCP que vous voulez, de n'importe que port source vers n'importe quel port cible. Il permet aussi de laisser un port ouvert et à l'écoute sur une machine donnée. Enfin, il est capable de reproduire le fonctionnement de Telnet. Voici la syntaxe à utiliser :

Vous voyez donc que vous pouvez utiliser cet outil de deux manières :

1) Pour établir une connexion vers une machine distante. La syntaxe la plus simple est alors :

c:>nc -n 123.56.57.58 110

Pour vous connecter sur le port 110 de la machine 123.56.57.58. Le "-n" sert à préciser que vous utilisez une adresse IP numérique et qu'il n'est pas nécessaire d'utiliser le DNS. Si vous ne connaissez que le nom DNS de la machine, placez-le à l'endroit de l'adresse IP et supprimez le -n.
Vous pouvez également ajouter l'indicateur "-v" pour utiliser le mode "verbose" où les opérations effectuées seront affichées à l'écran. Le mode "-vv" permet d'afficher toutes les données envoyées par le serveur.
L'option "-o Nom_de_fichier" permet d'enregistrer tout le trafic (entrant et sortant) dans le fichier spécifié. Les données sont stockées sous un format hexadécimal. N'utilisez cette option que pour un petit transfert car le fichier d'enregistrement (dit fichier log) devient vite énorme et il est d'autre part évident que cette option va ralentir l'échange de données.

2) Pour ouvrir un port sur votre machine qui sera à l'écoute en attente d'une connexion. De multiples actions sont alors possibles : Vous pouvez limiter l'accès à ce port à un unique couple [adresse IP - Numéro de port], vous pouvez spécifier un programme à lancer à chaque connexion sur votre machine.
L'option "-l" permet de spécifier le mode écoute. L'option "-L" est un mode d'écoute avancé qui permet à netcat de se relancer automatiquement lorsque la connexion en cours se termine. La syntaxe générale est donc la suivante :

c:>nc -l -p 3310

Cette commande lance nc et ouvre le port 3310 de votre machine qui est alors à l'écoute. Attention, ce genre de commande est dangereux si vous êtes connecté sur internet ... Vous ouvrez ainsi une porte sur votre propre PC.

Netcat est un outil réellement très puissant. Vous pouvez lui demander d'exécuter un programme à chaque connexion sur le port 3310 grâce à l'option "-e programme". Prenons un petit exemple.

Lançons sur un serveur NT (machine_A) la commande suivante :

C:> nc -L -d -e cmd.exe -p 8080

Détaillons un peu cette commande complexe. Le coeur de cette commande est l'executable "cmd.exe". Cette commande permet de lancer sous NT l'interpréteur de commandes (fenêtre DOS). Sous Win98, l'équivalent est "command.com".
Netcat est donc exécuté : il ouvre en écoute (option -L) le port 8080 du serveur. A chaque fois qu'une machine va se connecter sur ce port, le serveur executera cmd.exe : il va donc envoyer à la machine distante un interpréteur de commandes. L'option -d permet à netcat de fonctionner en mode discret, c'est à dire en tâche de fond : la fenêtre DOS depuis laquelle cette commande est lancée peut être fermée, netcat fonctionnera toujours.


Il ne reste donc plus qu'a se connecter depuis votre machine (machine_B) vers le serveur (machine_A) grâce à une nouvelle execution de netcat sur votre machine cette fois. J'ai nommé D le lecteur de la machine_B pour plus de clarté. Soit 123.123.123.123 l'adresse IP de la machine A:

D:> nc 123.123.123.123 8080

Microsoft (R) Windows NT(TM)
(c) Copyright 1985-1996 Microsoft Corp

C:>

Vous avez alors la main sur le serveur distant !!!
Vous pouvez lancer les commandes que vous voulez, elle seront exécutées sur le serveur :

D:> nc 123.123.123.123 8080

Microsoft (R) Windows NT(TM)
(c) Copyright 1985-1996 Microsoft Corp

C:> ipconfig

Windows NT IP Configuration

IP Address.................................: 123.123
.123.123
Subnet Mask..............................: 255.255.255.0
Default Gateway........................:

C:>exit

D:>

J'ai pris soin de noter en gras les commandes entrées au clavier depuis votre machine. Lorsque vous tapez "exit", l'interpréteur de commande se ferme sur le serveur distant, la connexion TCP en cours se termine donc, et vous reprenez la main sur votre machine locale, donc sur le disque D:

Rem: Nous avons spécifié sur le serveur l'option "-L" et non "-l". Le serveur est donc toujours à l'écoute sur le port 8080, vous pouvez retenter une nouvelle connexion.

Vous devez bien comprendre que netcat est un outil redoutable. Placé entre de mauvaises mains, il peut ouvrir un accès complet sur votre machine à quiconque essaye de se connecter ... Et ce n'est pas tout, il possède encore d'autres fonctions que nous verrons, entre autre sous la rubrique scanner.

 

Chevaux de troie

Maintenant que vous avez vu comment fonctionne netcat, nous allons parler un petit peu d'un certain type de virus qui circulent très largement sur internet, les cheveaux de troie (trojans en anglais).

Le principe de ces virus est le même que netcat : ils ouvrent tout grand votre machine à quiconque connait leur existance. Ils sont généralement installés sur votre PC par vous même : vous venez de recevoir en pièce jointe d'un mail un super petit jeu très sympa que vous vous empressez d'installer. Ce fichier contient en fait en plus du petit jeu un programme virus qui va s'installer automatiquement au lancement du jeu. Comme le virus est malin, il va aller modifier la base de registre de manière à être lancé à chaque démarrage et voilà ... Le tour est joué !!

Netcat peut très bien servir à faire un trojan, mais un certain nombre de chevaux de troie proposent des fonctionnalités plus développées de prise de contrôle à distance qui permettent au hacker qui s'est introduit sur votre machine de jouer avec vos fichiers, de manifester sa présence, de faire redémarrer votre machine (ce qui est très stupide puisqu'il perd alors sa connexion ...).

Vous allez me dire : "Oui, mais ca n'est dangereux que quand je sui connecté, et mon adresse IP change à chaque connexion, il y donc peu de chance que le pirate me retrouve..."
Et bien détrompez-vous. Ce n'est effectivement dangereux que durant votre durée de connexion. Il est évident que si vous restez connecté deux minutes par jour il y a peu de risque... Cependant, le risque augmente considérablement avec le temps de connexion : les personnes qui ont un accès haut débit (type câble ou ADSL) et qui restent en ligne toute la journée ont beaucoup plus de chance d'être attaqués si ils possèdent un trojan sur leur machine.
Un autre petit point : on l'a vu, votre adresse IP change à chaque connexion. Cependant, l'identifiant réseau reste le même. Si le pirate connaît le numéro de port sur lequel s'installe le trojan, il peut scanner toutes les adresses IP ayant l'identifiant réseau en question. Il existe des outils très rapides pour effectuer ce genre de tâches ... Allez donc voir la rubrique scanner !!

Un bon antivirus suffit normalement pour détecter les chevaux de troie mais il en apparaît de nouveaux tous les jours ... On n'est jamais complètement à l'abri !!
Ces petites bêtes ont cependant un point faible : pour que le hacker les retrouve, il doit connaitre le numéro du port qui est ouvert sur votre machine par le cheval de troie. Ces virus utilisent donc toujours le même numéro de port. De plus, ce port reste ouvert en permanence, il est donc facile à repérer !
Voici une petite liste (non exhaustive) de quelques numéros de ports standards. Vous pourrez ainsi verifier, si vous apercevez grâce à netstat un numéro de port suspect, quel trojan vous a infecté. ;-)

Rassurez-vous cependant. Si vous êtes un peu prudent avec les pièces jointes de mail et les fichiers de provenance inconnue, il ne devrait pas y avoir de problèmes.

 

VNC

L'avant dernier outil que je présente dans cette section : un outil de prise de commande à distance. Et oui, cela existe ... Et vous allez voir, c'est assez impressionnant !!
Nous avons déjà vu que, grâce à netcat, on pouvait obtenir un interprèteur de commandes à distance. C'était déjà pas mal mais il existe mieux. Mieux, c'est d'obtenir un accès à distance sur l'interface graphique d'une machine. Un outil gratuit existe pour cela, il est disponible à cette adresse. Vous trouverez également à cette adresse de plus amples informations sur l'outil et son fonctionnement, qui est par ailleurs très simple.
En gros, VNC est constitué de deux programmes, un sur la machine distante qui va envoyer les données de cette dernière, il s'agit donc de la partie serveur de l'outil. Le second programme, placé chez vous, assure la connexion au serveur et l'affichage des données.
Une fois VNC lancé, une fenêtre s'ouvre sur votre machine et vous êtes alors sur la machine distante comme si vous étiez sur la votre ...

Allez voir le site si vous ne me croyez pas !!!

Je ne vais pas en dire plus long sur le fonctionnement de cet outil, mais il a sa place ici en temps qu'outil utilisant comme support TCP.

Firewalls personnels

Pour clore cette section sur les outils TCP, je vais parler - juste un petit peu - des firewalls personnels. Un firewall (mur pare-feu en français ...) est un outil qui va "filtrer" toutes les données qui entrent et sortent de votre machine afin de mieux contrôler ce qu'il s'y passe.
Il existe, pour les entreprises qui possèdent un gros réseau informatique, des serveurs dédiés à cette tâche, une machine entière est alors responsable de ce dur travail.
Je parlerai dans cette section de petits logiciels qui servent à assurer cette fonction sur votre ordinateur personnel, chez vous.
Le firewall va en fait surveiller étroitement tous les ports TCP de votre machine.
Au départ, en principe, il va bloquer tout trafic entrant et sortant et vous demander une autorisation à chaque fois qu'un logiciel essaye de communiquer avec le réseau ou à chaque fois qu'une personne essaye de se connecter sur votre machine.
Il faut donc passer par une phase de paramétrage ou vous aller indiquer au firewall les applications qui sont autorisées à communiquer sur le Net (navigateur web, logiciel de messagerie ...) et celles qui ne le sont pas.
Votre firewall appliquera ensuite ces règles et vous préviendra en cas de problème ou de situation anormale.
J'ai mis dans les liens l'adresse d'un site qui se propose de tester les différents firewalls du marché, c'est un site à aller voir rapidement si vous n'avez pas de firewall installé sur votre machine !!
Personnellement, je conseillerai BLACK ICE. Son fonctionnement est très simple et il est déjà paramétré pour les principales applications. Voici une capture d'écran :

Black ice, liste d'attaques

Cette liste présente la totalité des "attaques" que mon système a subi. La couleur du point à gauche dépend de la gravité, le nombre à droite indique le nombre de fois que cette attaque a été tentée.
Pour chaque attaque vous disposez d'un élément d'information sur le type d'attaque ainsi que sur l'attaquant (par un double clic sur la lige voulue) :

Black ice; listes d'intrus

Dans les exemples présentés ci-dessus, on trouve un grand nombre d'attaque de type "HTTP port probe". Une telle attaque est listée dès qu'une demande de connexion est reçue sur le port 80 (HTTP). Ces demandes n'ont pas vraiment lieu d'être étant donné que votre PC n'héberge pas un serveur web ...

Vous connaissez donc l'adresse IP de la personne (ou du serveur) qui a essayé de se connecter sur votre machine (rappelez-vous, elle est contenue dans l'en-tête IP de chaque datagramme) et Black Ice fournit aussi un certain nombre d'information quand il peut les trouver : nom netbios, nom DNS, adresse MAC... Avec tout ça, libre à vous de riposter ou non !!
Dans la plupart des cas, les attaques sont bloquées par le firewall, ce qui vous assure une certaine tranquillité.

[ Précédent | Accueil | Suivant ]
© 2001 RésoLution. Tous droits réservés. Contactez le Webmaster.