Shells Jack Us In, Payloads Deliver Us Shells

💡 Qu'est-ce qu'un Shell ?

Un shell est un programme qui fournit à l'utilisateur une interface pour interagir avec le système d'exploitation via des instructions en ligne de commande. Les exemples les plus connus sont :

  • Bash, Zsh (Linux/Unix)

  • cmd, PowerShell (Windows)

Dans le cadre des tests d'intrusion, obtenir un shell est souvent le résultat direct d'une exploitation réussie d'une vulnérabilité. Cela se traduit par des expressions bien connues dans le domaine :

  • "I caught a shell."

  • "I popped a shell!"

  • "I dropped into a shell!"

  • "I'm in!"

Ces expressions indiquent que l'attaquant a obtenu un accès distant interactif au système cible.

🎯 Pourquoi obtenir un Shell ?

Obtenir un shell permet :

  • D'accéder directement au système de fichiers

  • D'exécuter des commandes systèmes

  • D'énumérer et de repérer des vecteurs d'escalade de privilèges

  • De transférer des fichiers ou d'établir la persistance

  • D'effectuer des actions plus discrètement qu’avec une interface graphique (RDP, VNC)

  • D’automatiser facilement les actions grâce aux scripts

Maîtriser les shells permet d’avancer plus efficacement sur une machine compromise, tout en limitant le risque de détection.

🔍 Les Shells selon différents contextes

Contexte
Description

Informatique classique

Environnement textuel utilisateur pour l'administration de système (Bash, Zsh, cmd, etc.)

Exploitation & sécurité

Résultat d'une exploitation permettant un accès interactif à distance (ex : exploitation d’EternalBlue pour ouvrir cmd)

Web

Shell obtenu via l’exploitation d’une faille d’upload, souvent accessible via un navigateur.

📦 Les Payloads nous donnent les Shells

Le terme payload peut avoir différentes significations selon le contexte :

  • Réseaux : Données encapsulées dans un paquet réseau

  • Informatique : Partie utile d’un jeu d’instructions, sans les en-têtes/protocoles

  • Programmation : Données transmises par une instruction

  • Exploitation & sécurité : Code conçu pour exploiter une vulnérabilité

➡️ Dans notre contexte, un payload est une charge utile malveillante conçue pour établir un accès à distance, typiquement sous forme de shell. C’est ce que l’on injecte ou déclenche via une faille pour obtenir un accès interactif.

Durant ce module, nous explorerons de nombreuses formes de shells et méthodes de livraison (delivery methods) à travers divers scénarios d'exploitation, que ce soit via des payloads simples ou complexes.


✅ Objectif : Comprendre les bases avant d’approfondir les différents types de shells (reverse, bind, web) et les moyens de les livrer (exploit, script, upload, etc.).


Mis à jour