helmet-battlePayloads

Dans Metasploit, les payloads dĂ©signent le code qui sera exĂ©cutĂ© sur la machine cible aprĂšs exploitation d’une vulnĂ©rabilitĂ©. Ils reprĂ©sentent la charge utile livrĂ©e par l’exploit et constituent l’un des Ă©lĂ©ments centraux du processus d’attaque.

Les payloads peuvent avoir divers objectifs :

  • Fournir un accĂšs interactif (ex. shell, Meterpreter)

  • CrĂ©er une connexion de retour vers l’attaquant

  • Ouvrir un port d’écoute sur la cible

  • ExĂ©cuter une commande spĂ©cifique

Metasploit offre un large éventail de payloads adaptables à différents systÚmes, architectures et scénarios.


📂 Types de payloads

🔄 Singles

  • Contiennent tout le code nĂ©cessaire en une seule charge utile.

  • ExĂ©cutent une action autonome (ex. ajout d’un utilisateur, exĂ©cution d’une commande).

  • Pas de dĂ©pendance externe.

đŸ§© Stagers

  • Petits programmes envoyĂ©s en premier.

  • Ont pour rĂŽle d’établir une connexion entre l’attaquant et la cible.

  • PrĂ©parent l’environnement pour recevoir le payload principal.

📩 Stages

  • LivrĂ©s aprĂšs le stager.

  • Fournissent des fonctionnalitĂ©s avancĂ©es comme Meterpreter ou un shell interactif.

  • Permettent de rĂ©duire la taille initiale du code injectĂ©.

👉 Exemple classique : windows/meterpreter/reverse_tcp

  • Le stager Ă©tablit une connexion TCP inversĂ©e.

  • Le stage charge Meterpreter pour un contrĂŽle complet de la cible.


🔍 Recherche et sĂ©lection d’un payload

Un payload est choisi aprÚs avoir sélectionné un exploit. Pour lister les payloads compatibles :

Exemple de sortie :


⚙ Options d’un payload

Chaque payload possĂšde ses propres paramĂštres configurables. Exemple avec windows/meterpreter/reverse_tcp :

👉 ParamĂštres clĂ©s :

  • LHOST : Adresse IP de l’attaquant.

  • LPORT : Port d’écoute (par dĂ©faut 4444).


🚀 ExĂ©cution avec un payload

  1. SĂ©lection d’un exploit :

  1. SĂ©lection d’un payload compatible :

  1. Configuration :

  1. Exécution :

  1. RĂ©sultat : Ouverture d’une session Meterpreter.


🧠 Bonnes pratiques

  • Utiliser des payloads adaptĂ©s au systĂšme et au contexte (OS, version, architecture).

  • PrĂ©fĂ©rer des payloads stagers/stages pour contourner les limitations de taille.

  • Tester plusieurs types de payloads en cas d’échec (reverse TCP, bind TCP, HTTPS...).

  • VĂ©rifier la compatibilitĂ© entre le payload choisi et l’exploit utilisĂ©.


📚 Ressources utiles


Exploit the Apache Druid service and find the flag.txt file. Submit the contents of this file as the answer.

Dans un premier temps, un scan de notre cible est effectué :

Nous observons ainsi la présence du service Jettyarrow-up-right sur les ports allant de 8081 à 8888. Nous nous connectons alors à l'un de ces ports via notre navigateur :

Cette connexion nous permet de valider l'accÚs à Apache Druid, mais également d'observer que la version utilisée est la version 0.17.1.

Nous exécutons Metasploit :

Une fois Metasploit lancé, nous pouvons rechercher les différents exploits connus concernant Apache Druid :

Ici, nous allons utilisée le module numéro 0 et allons le configurer avec les différentes informations obtenues concernant notre cible :

L'ensemble des information necéssaires renseignées, nous pouvons maintenant exécuter notre programme :

La connexion Ă  notre cible est effective. Nous pouvons maintenant rechercher le fichier flag.txt et en afficher son contenu :

Nous obtenons ainsi le flag attendu :


Last updated