Théme de la semaine : Exploitation

Payload en Cybersécurité : Définition des charges utiles

Lecture: 12 minutes
Accueil • CyberSécurité • Payload en Cybersécurité : Définition des charges utiles

Vous vous demandez ce qu’est exactement un payload en cybersécurité et quel est son rôle lors d’un test d’intrusion ? Que vous débutiez en informatique ou que vous souhaitiez simplement clarifier cette notion clé du pentesting, vous êtes au bon endroit. La charge utile — de son nom en français — est tout simplement l’action concrète ou le code exécuté sur une machine cible une fois une faille exploitée.

Dans ce chapitre, vous allez découvrir le fonctionnement d’un payload, les différents types existants (comme le fameux reverse shell) et la méthode simple pour distinguer l’exploitation d’une vulnérabilité de la charge utile elle-même.

Définition d’un Payload

En cybersécurité et en test d’intrusion (pentesting), un payload (que l’on traduit parfois par « charge utile ») désigne le code ou l’action finale qui s’exécute sur un système cible une fois qu’une faille de sécurité a été franchie durant la phase d’exploitation.

Pour le comprendre facilement, vous pouvez utiliser l’analogie d’un colis ou d’un cheval de Troie :

  • L’exploit (la faille) : C’est la méthode, la clé ou la porte dérobée qui permet de contourner les défenses et de s’introduire dans le système.
  • Le payload (la charge utile) : C’est ce qui se trouve à l’intérieur et qui agit une fois que l’on est entré.
Définition d'un Payload

À quoi ça sert concrètement ?

Lors d’un test d’intrusion, les pentesters utilisent des payloads pour prouver qu’une vulnérabilité est bien réelle et pour mesurer les risques. Selon l’objectif du test, le payload peut avoir différentes missions :

  • Donner un accès à distance (Reverse Shell) : Il force l’ordinateur cible à se connecter à l’ordinateur du pentester, lui donnant une interface de commande pour contrôler la machine à distance.
  • Prouver l’intrusion (PoC – Proof of Concept) : Parfois, le payload est totalement inoffensif. Il peut simplement ouvrir une calculatrice sur l’écran de la machine ciblée pour montrer que du code a pu y être exécuté.
  • Élever ses privilèges : Il permet à un utilisateur simple de se transformer en administrateur pour voir si le système est bien cloisonné.
  • Collecter des informations : Il peut récupérer de manière ciblée certains fichiers de configuration pour vérifier si des données sensibles sont exposées.

En résumé, si la faille est le moyen d’entrer, le payload est l’outil ou l’action que l’on déploie une fois à l’intérieur.

Les différents types de payload

Dans le monde du pentesting, tous les payloads n’ont pas la même mission. Une fois la porte d’un système entrouverte, le choix du payload dépend de ce que l’on cherche à accomplir ou à démontrer. On les regroupe généralement selon leur fonctionnement ou l’objectif recherché.

Les payloads selon leur mode de connexion

Lorsqu’un payload cherche à prendre le contrôle d’une machine à distance, la principale difficulté réside dans la communication entre l’attaquant et la cible. Pour contourner les protections réseau comme les pare-feu, deux méthodes principales sont utilisées.

Le Reverse Shell (ou connexion inverse) C’est de loin le type de payload le plus populaire en test d’intrusion. Au lieu que le tester tente de se connecter directement à la machine cible — ce qui est souvent bloqué par les pare-feu —, le payload ordonne à la machine cible de prendre elle-même l’initiative et de se connecter vers l’ordinateur du pentester. Comme les systèmes autorisent généralement les connexions sortantes (pour naviguer sur le Web par exemple), ce type de charge utile passe très facilement entre les mailles du filet.

Par exemple, en utilisant le framework Metasploit, le pentester injecte le payload cmd/windows/reverse_powershell pour forcer le serveur Windows cible à ouvrir une console PowerShell distante vers sa propre machine d’attaque.

Le Bind Shell (ou connexion directe) Ici, le fonctionnement est inverse : le payload ouvre un port de communication directement sur la machine cible et attend patiemment que le pentester s’y connecte. Cette méthode est très efficace sur des réseaux internes mal sécurisés, mais elle se heurte fréquemment aux pare-feu modernes qui bloquent les connexions entrantes non sollicitées.

Par exemple, avec l’outil Netcat (nc), un payload de type bind shell configure un port d’écoute (comme le port 4444) sur la machine cible pour offrir un accès direct au terminal dès que le tester s’y connecte.

Reverse shell et Bind shell

Les payloads selon leur niveau d’impact

Tous les tests d’intrusion ne nécessitent pas de prendre le contrôle total d’un serveur. La gravité d’un payload varie donc selon l’action qu’il exécute.

La preuve de concept (PoC) Ce payload est totalement inoffensif et sert uniquement à démontrer l’existence d’une faille sans risquer d’endommager le système. L’exemple le plus célèbre consiste à afficher une boîte de dialogue ou à lancer l’application calculatrice sur l’ordinateur cible. Si la calculatrice s’ouvre, la preuve est faite : du code arbitraire peut être exécuté.

Dans le cadre d’un test d’injection SQL ou XSS, l’outil Burp Suite permet d’envoyer la commande calc.exe pour simplement pop-up la calculatrice Windows et prouver l’exécution de code sans altérer les données.

L’exécution de commandes à distance (RCE) Ce type de payload permet d’envoyer des instructions directement au système d’exploitation de la cible. Le tester peut ainsi lire des fichiers de configuration, lister les utilisateurs présents ou vérifier quels logiciels sont installés.

À l’aide de l’outil commix, le pentester envoie le payload whoami ou cat /etc/passwd à travers un formulaire web vulnérable afin de lire la liste des utilisateurs du serveur Linux.

👉 Tout savoir sur les failles de type RCE.

L’élévation de privilèges Parfois, la première porte franchie ne donne accès qu’à un compte utilisateur très limité. Ce payload spécifique exploite une seconde faiblesse interne pour transformer ces accès restreints en privilèges administrateur (ou « root »), démontrant ainsi qu’un intrus pourrait prendre le contrôle total du système.

L’outil BeRoot ou un module local de Metasploit exécute un payload exploitant un service mal configuré pour faire passer la session active d’un simple compte utilisateur au statut de SYSTEM sur Windows.

Les payloads selon leur taille et leur structure

Enfin, sur le plan technique, la manière dont le payload est acheminé en mémoire joue un rôle crucial, notamment lorsque l’espace disponible dans la faille est très réduit.

Les payloads Inline (ou Single) : Tout le code nécessaire est contenu dans un seul et même bloc envoyé d’un coup. C’est simple et autonome, mais cela nécessite une faille capable d’accueillir un fichier plus volumineux.

L’outil MSFvenom génère le payload autonome windows/shell_single_tcp qui contient l’intégralité du code pour ouvrir l’invite de commande en une seule étape.

Les payloads Staged : La charge utile est découpée en deux temps. Un tout petit premier fichier (le stager) s’introduit d’abord dans la mémoire du système, puis télécharge et exécute le véritable payload, beaucoup plus complet, dans un second temps. Cette technique permet de contourner les limites de taille imposées par certaines failles.

Cobalt Strike déploie d’abord un léger stager via un document malveillant qui se charge ensuite de télécharger en mémoire le payload complet (le Beacon) pour établir un canal de contrôle sécurisé.

Les principaux outils qui utilisent des payloads

En pentesting, de nombreux outils intègrent ou manipulent des payloads pour tester la robustesse des systèmes. Voici les plus populaires et les plus utilisés par les professionnels :

Metasploit Framework & MSFvenom

C’est la référence incontournable en matière d’exploitation.

  • Metasploit intègre une base de données gigantesque de vulnérabilités associées à leurs payloads prêts à l’emploi.
  • MSFvenom (son outil compagnon dédié) permet de générer des payloads sur-mesure (reverse shells, bind shells, etc.) dans de multiples formats (exécutables Windows, scripts Python, APK Android, etc.) et d’encoder le code pour contourner les analyses basiques.

Burp Suite (Modules Intruder et Repeater)

Principalement utilisé pour les tests d’applications web, Burp Suite gère des payloads textuels.

Son module Intruder permet d’injecter des listes de charges utiles (payload sets) dans des champs précis d’une requête HTTP (comme des mots de passe, des scripts XSS ou des commandes à insérer dans des failles d’injection SQL) pour automatiser des tests de robustesse à grande échelle.

SQLmap

C’est l’outil automatisé roi pour la détection et l’exploitation de failles d’injection SQL.

Une fois qu’il repère qu’un paramètre web est vulnérable, SQLmap déploie des payloads en base de données pour en extraire le contenu (les tables utilisateurs, les mots de passe hachés) ou parfois même exécuter des commandes sur le système d’exploitation sous-jacent si les privilèges le permettent.

Cobalt Strike

Très utilisé dans les audits de sécurité avancés (notamment pour les exercices de type Red Teaming simulant des attaques ciblées de type APT).

Il utilise des payloads sophistiqués et discrets (souvent appelés Beacons) qui s’exécutent en mémoire de manière furtive pour maintenir un accès à long terme, contourner les antivirus modernes et faciliter le déplacement latéral au sein d’un réseau d’entreprise.

Netcat (souvent surnommé le « couteau suisse » du réseau)

Bien qu’il ne génère pas de payloads sophistiqués tout seul, il est indispensable pour les écouter (en mode serveur).

Lorsqu’un payload de type reverse shell s’exécute sur une machine cible, c’est très souvent un simple écouteur Netcat (nc -lvnp 4444) lancé sur la machine du pentester qui réceptionne la connexion et offre l’accès au terminal distant.

Où et quand et quel payload utiliser ?

Choisir le bon payload, c’est un peu comme choisir le bon outil dans une boîte à outils : tout dépend de la situation, de l’environnement que vous auditez et de ce que vous cherchez à valider. Il n’y a pas de solution magique, mais une logique à suivre en fonction de critères précis.

Voici comment savoir où, quand et quel payload utiliser lors d’un test d’intrusion.

Où l’utiliser ? Le contexte de la cible

L’emplacement du payload dépend de la vulnérabilité découverte sur le système :

  • Dans une application web (Champs de formulaire, URL) : On utilise des payloads textuels (injections SQL, XSS, commandes système) injectés directement via des outils comme Burp Suite ou SQLmap.
  • Dans un système d’exploitation ou un logiciel (Vulnérabilité de type RCE / Buffer Overflow) : On déploie un payload binaire (exécutable) directement dans la mémoire ou le système de fichiers de la machine (via Metasploit, par exemple).
  • Dans un fichier ou un document : On intègre un payload dans un format de fichier manipulé par la cible (comme un document bureautique piégé ou un script malicieux).

Quand l’utiliser ? Le moment du test

Le choix du payload évolue selon l’étape à laquelle vous vous trouvez dans le pentest :

  • Au tout début (Phase de reconnaissance et de test) : Privilégiez des payloads totalement inoffensifs, comme une simple preuve de concept (PoC) ou l’ouverture d’une calculatrice. Cela permet de valider la faille sans risquer de perturber ou de faire planter le système du client.
  • Pendant la phase d’exploitation active : C’est ici que l’on sort les payloads plus robustes (comme les reverse shells) pour obtenir un accès interactif à la machine et mesurer l’étendue des dégâts.
  • En fin de parcours (Maintien de l’accès) : Si le test simule une attaque longue durée (Red Teaming), on utilise des payloads furtifs et discrets (comme un Beacon de Cobalt Strike) pour voir si les défenses de l’entreprise réagissent sur le long terme.

Quel payload utiliser ? La sélection pratique

Pour ne pas vous tromper, posez-vous ces trois questions fondamentales :

Question 1 : Quelle est la configuration du réseau (pare-feu) ?

  • Si le pare-feu de la cible bloque toutes les connexions entrantes mais autorise le trafic sortant (ce qui est le cas 9 fois sur 10) : Utilisez un Reverse Shell. C’est la valeur sûre.
  • Si vous êtes sur un réseau interne de confiance sans restriction stricte : Un Bind Shell peut fonctionner,mais le reverse shell reste généralement privilégié par habitude et efficacité.

Question 2 : Quelles sont les limites techniques de la faille ?

  • Si la vulnérabilité n’accepte qu’un tout petit nombre de caractères : Utilisez un payload Staged (un petit stager léger qui va chercher le reste du code plus loin).
  • Si la faille est large et accepte un bloc de code complet d’un seul coup : Utilisez un payload Inline (Single) pour plus de simplicité et de rapidité.

Question 3 : Quel est l’objectif exact de votre test ?

  • Démontrer rapidement l’existence de la faille sans risque : PoC (Calculatrice / Message).
  • Récupérer des fichiers ou exécuter des commandes : Payload de type RCE.
  • Obtenir le contrôle total de la machine pour auditer les privilèges : Reverse Shell administrateur / Élévation de privilèges.

Exemple concret d’utilisation de charge utile

Pour illustrer concrètement l’utilisation d’un payload en pentesting, prenons un scénario classique et très fréquent lors d’un audit de sécurité : une faille de téléchargement de fichiers non sécurisée sur une application web, menant à l’exécution d’un reverse shell.

Le contexte

Imaginons que vous réalisez un test d’intrusion pour une entreprise. Vous auditez leur site web et vous découvrez une page permettant aux utilisateurs de modifier leur profil en y téléchargeant une photo (avatar).

En analysant le code ou en testant le formulaire, vous remarquez que le serveur vérifie uniquement l’extension du fichier de manière superficielle, ou pire, qu’il ne vérifie rien du tout. N’importe quel fichier peut être envoyé et stocké sur le serveur web. C’est la faille (l’exploit potentiel).

L’objectif du pentester est alors d’utiliser un payload pour prouver que cette faille permet de prendre le contrôle du serveur, et pas seulement d’y stocker une image.

La procédure

1. La préparation du payload (Création de la charge utile)

Puisque le serveur web de la cible tourne sous Linux et exécute du code PHP, vous décidez de fabriquer un payload en PHP qui déclenchera un reverse shell.

Vous utilisez par exemple un outil comme MSFvenom pour générer ce fichier malveillant (souvent appelé une « web shell » ou un script de connexion inversée) :

Le code est conçu pour ordonner au serveur web de se connecter directement à votre propre machine d’attaquant sur un port précis (par exemple, le port 4444).

2. L’injection (Le téléchargement sur le serveur)

Vous renommez votre script PHP pour qu’il ait l’air inoffensif (ou vous contournez la vérification d’extension, par exemple en le nommant avatar.php.jpg ou simplement shell.php). 

Vous l’envoyez via le formulaire de téléchargement du site web. Le serveur accepte le fichier et l’enregistre dans un dossier accessible, par exemple : 

https://site-cible.com/uploads/shell.php

3. L’écoute (Préparation de la réception)

Avant d’activer le payload, vous préparez votre propre machine pour écouter et réceptionner la connexion future. Vous lancez l’outil Netcat dans votre terminal :

nc -lvnp 4444

Votre ordinateur attend patiemment qu’une machine se connecte sur ce port.

4. Le déclenchement et l’exécution du payload

Pour que le payload agisse, il faut qu’il soit exécuté par le serveur. Vous ouvrez simplement votre navigateur web (ou un outil comme curl) et vous visitez l’adresse où le fichier a été stocké :

https://site-cible.com/uploads/shell.php

À cet instant précis, le serveur exécute le code PHP contenu dans le fichier :

  • Le payload s’active.
  • Il prend l’initiative de se connecter vers l’adresse IP de votre machine d’attaquant.
  • Votre écouteur Netcat s’illumine : la connexion est établie.

Le résultat

Vous avez désormais un accès direct en ligne de commande (un terminal) au serveur distant. Vous pouvez taper des commandes comme whoami pour savoir quel utilisateur exécute le site web, ou lister les fichiers du serveur.

Exemple d'utilisation de payload

La faille de téléchargement inoffensif a prouvé, grâce au payload, qu’un pirate aurait pu compromettre l’intégralité du serveur web de l’entreprise.


Ceci n’est qu’un exemple. En pratique, c’est rarement aussi direct ! Les systèmes modernes possèdent de nombreuses défenses pour bloquer ce type d’attaque.

Voici les principaux éléments qui peuvent faire échouer la procédure :

  • Les filtres de fichiers stricts : Le site peut analyser le contenu réel du fichier (et pas seulement son nom) pour vérifier qu’il s’agit bien d’une vraie image (PNG/JPG).
  • Les pare-feu réseau (Firewall / WAF) : Ils détectent et bloquent les connexions sortantes suspectes (reverse shell) ou les requêtes web anormales (WAF).
  • Les antivirus et EDR (Endpoint Detection and Response) : Ils analysent les fichiers téléchargés et la mémoire du serveur. S’ils reconnaissent la signature du payload PHP ou Netcat, ils le suppriment immédiatement.
  • Les restrictions du serveur web : Le dossier où sont enregistrées les images peut être configuré pour interdire l’exécution de scripts (le serveur refuse de lancer du PHP).
  • La gestion des privilèges : Même si le payload fonctionne, le compte du serveur web (comme www-data) est souvent très limité et n’a pas accès aux fichiers sensibles du système.

Vous l’aurez compris, le payload est la pièce maîtresse d’un test d’intrusion. S’il ne constitue que la dernière étape d’une attaque — une fois la vulnérabilité franchie —, c’est lui qui donne toute sa mesure à l’exercice en prouvant concrètement les risques encourus par un système.

Qu’il s’agisse d’une simple preuve de concept inoffensive pour alerter une équipe, d’un reverse shell pour mesurer l’étendue d’une compromission ou d’un outil de persistance pour les audits avancés, le choix et la maîtrise d’une charge utile demandent méthode et rigueur.

En cybersécurité, la frontière entre l’attaque et la défense est souvent mince : comprendre comment fonctionnent les payloads, c’est avant tout apprendre à mieux s’en protéger pour verrouiller durablement ses infrastructures.

Metasploit : L’outil indispensable