Telnet est un protocole de communication utilisé sur un réseau TCP/IP, permettant de communiquer avec un serveur distant en échangeant des lignes de texte et en recevant des réponses également sous forme de texte.
Telnet possède un gros problème : toutes les communications sont transmises en clair sur le réseau, mots de passe compris.
Des sniffeurs comme tcpdump
ou Wireshark
permettent d'intercepter les communications. Des protocoles chiffrés comme SSH
ont été développés pour fournir un accès distant remplaçant ainsi Telnet.
Dans cet exercice, nous allons essayer de trouver les informations qui transitent par Telnet. Pour cela, nous allons utilisé le logiciel d'analyse réseau Wireshark
.
Sous Linux, la commande ci-dessous permet d'installer le logiciel.
sudo apt install wireshark
Lors du lancement du logiciel, Wireshark demande l'interface réseau sur laquelle écouter les échanges de données.
Question 1 - Lancer Wireshark et configurez-le pour écouter sur la boucle locale (adresse de loopback)
Sur l'interface principale, on peut retrouver tous les échanges qui transitent par l'interface de communication choisie.
Il est également possible de filtrer toutes ces lignes afin de n'afficher que celles qui sont importantes.
Question 2 - Ajouter le filtre ip.addr == 127.0.0.1
pour n'afficher que les lignes relatives à la communication sur la boucle locale et relancer la simulation.
À partir de ce moment là, vous êtes capable d'observer les échanges de données sur la boucle locale de votre ordinateur.
Sous Linux, il est possible de mettre en place un serveur de communication très simple à l'aide de la commande nc
.
Question 3 - Dans un premier terminal (A), utiliser la commande nc
(avec ses bons arguments) pour lancer l'écoute d'un serveur sur le port 1234. Cette machine aura le rôle du serveur.
Question 4 - Dans un second terminal (B), utiliser la commande telnet
pour vous connecter au serveur d'adresse 127.0.0.1
et de port 1234
.
Les messages écrit dans le second terminal seront transmis au premier terminal, sans aucun chiffrement.
Il est alors possible d'observer les informations transmises à l'aide Wireshark.
Question 1 - Depuis Wireshark, lancer une nouvelle écoute réseau avec le même filtre.
Question 2 - Depuis le terminal B, envoyer un message vers le terminal A. Vérifier que le message est bien transmis et visible sur le terminal.
Question 3 - Arrêter l'écoute réseau sur Wireshark (pour éviter les lignes inutiles).
Question 4 - Essayer de retrouver le message échangé.
Cette lecture des communications est possible car
Telnet
ne chiffre absolument pas ces données.
Sur le web, le protocole utilisé pour échanger des informations est le protocole HTTP. Or, celui-ci n'est pas sécurisé et la version la plus recommandée est désormais HTTPS.
HTTPS utilise l'algorithme de chiffrement TLS permettant de chiffrer l'ensemble des données sur le web.
Dans cet exercice, on s'intéresse au fonctionnement de HTTP et HTTPS. Pour nos tests, on dispose d'un site internet compatible avec HTTP et HTTPS.
Comme le protocole HTTP ne chiffre pas ses données, il est possible d'écouter le réseau pour récupérer les informations échangées, notamment lors de l'envoi d'un formulaire.
Question 1 - À l'aide d'un navigateur, rendez-vous le site non sécurisé. Vous retrouvez un formulaire dont les données sont échangées avec le serveur selon la méthode HTTP POST
lors de la validation.
Question 2 - Configurer Wireshark afin d'écouter le réseau Ethernet.
Question 3 - Ajouter le filtre suivant ip.src == <IP_PC> and ip.dst == 145.239.76.186
. Il faudra compléter le filtre avec l'adresse IP de votre machine.
Question 4 - Lancer une écoute des communications.
Question 5 - Sur le site, on peut maintenant remplir le formulaire et le soumettre.
Sur Wireshark, de nombreuses lignes sont apparues.
Question 6 - Retrouver les informations transmises lors de la validation du formulaire.
Pour vous aider, Wireshark utilise un système de couleur pour différencier les différents protocoles.
On s'intéresse ici au fonctionnement du protocole HTTPS
Le protocole HTTPS utilise les deux manières de chiffrer :
Question 1 - À l'aide d'un navigateur, rendez-vous le site sécurisé. Vous retrouvez le même formulaire que l'exercice précédant. On remarque que le site possède un cadenas à côté de l'URL.
Question 2 - Relancer l'écoute pour Wireshark.
Question 3 - Sur le site, on peut maintenant remplir le formulaire et le soumettre.
Sur Wireshark, de nombreuses lignes sont apparues.
Question 5 - Retrouver les lignes permettant de faire l'échange de la clef de session de manière sécurisé.
Question 6 - Essayer de retrouver les informations du formulaire.