💛shell et reverse shell

  • Bind Shell : Un shell est un programme informatique qui fournit une interface utilisateur pour accéder aux services d'exploitation d'un système d'exploitation. Il permet à l'utilisateur de saisir des commandes qui sont ensuite interprétées et exécutées par le système d'exploitation. Il est utilisée lorsqu’un attaquant a déjà déposé une porte dérobée (backdoor) sur le serveur, ou bien qu’il profite d’une faille très critique.

  • Reverse Shell : Un reverse shell est une technique utilisée en sécurité informatique pour obtenir un accès à distance à un système cible. Contrairement à un shell classique où un client se connecte à un serveur pour exécuter des commandes sur ce dernier, dans un reverse shell, c'est les machines victimes qui se connectent à l'attaquant C'est souvent utilisé dans des scénarios de piratage où un pare-feu ou d'autres mécanismes de sécurité peuvent bloquer les connexions entrantes.

🖊️ Générer un reverse shell

📑 Shell de base

🪟 Windows / metasploit - vulnérabilité command injection

Génerer un payload :

Mise en place d'un server :

Dans le cadre d'une vulnérabilité qui permet l'exécution de commande à distance :

🐚 Bash / sh

Description : Télécharge un script Bash à partir de l'URL https://reverse-shell.sh/1.1.1.1:3000 et l'exécute avec Bash.


Description : Ouvre une connexion TCP inverse vers <ATTACKER-IP> sur le <PORT> spécifié et redirige les entrées et les sorties standards vers cette connexion.


  • Description : Ouvre une connexion UDP inverse vers 127.0.0.1 sur le port 4242 et redirige les entrées et les sorties standards vers cette connexion.


  • Description : Réalise une redirection des descripteurs de fichiers pour établir une connexion TCP inverse vers <ATTACKER-IP> sur le <PORT> spécifié et exécute un shell interactif.


  • Description : Ouvre une connexion TCP inverse vers <ATTACKER-IP> sur le <PORT> spécifié et lit les commandes à exécuter depuis cette connexion.


🔄 Méthode courte et de contournement

  • Description : Ouvre une connexion TCP vers 10.10.10.10 sur le port 9091 et exécute un shell interactif.

  • Description : Une fois qu'un shell est établi avec succès, la commande exec >&0 est utilisée pour rediriger la sortie vers l'entrée standard. Cela signifie que toutes les sorties des commandes exécutées seront renvoyées comme entrée, ce qui permet d'exécuter des commandes directement depuis le shell sans avoir besoin d'écrire sur le terminal.


🔒 Shell symboliquement sécurisé

  • Description : Lance un shell Bash avec une commande incorporée pour ouvrir une connexion TCP inverse vers <ATTACKER-IP> sur le <PORT> spécifié et rediriger les entrées et les sorties standards vers cette connexion.


🕵️‍♂️ Méthode furtive

  • Description : Décode une commande Bash à partir de sa représentation en base64, puis l'exécute en redirigeant les erreurs vers /dev/null pour la furtivité.


📄 Créer un fichier et l'exécute

  • Description : Crée un script Bash dans /tmp/sh.sh qui ouvre une connexion TCP inverse vers <ATTACKER-IP> sur le <PORT> spécifié, puis l'exécute avec Bash.


  • Description : Télécharge un script Bash depuis http://<IP attacker>/shell.sh vers /tmp, lui donne les permissions d'exécution, puis l'exécute.


🐘 Python

  • Description : Établit une connexion TCP avec <IP_ATTAQUANTE> sur le <PORT> spécifié. Duplique ensuite les descripteurs de fichiers standard (stdin, stdout et stderr) vers le socket. Enfin, exécute un shell Bash interactif

🐍 Perl

  • Description : Établit une connexion TCP avec <IP_ATTAQUANTE> sur le <PORT> spécifié, puis exécute une instance de cmd.exe pour obtenir un shell Windows.


🦐 PHP

Reverse Shell PHP (avec exec) :

  • Description : Exécute une commande Bash pour ouvrir une connexion TCP inverse vers <IP_ATTAQUANTE> sur le <PORT> spécifié, puis redirige les entrées et les sorties standards vers cette connexion.

Reverse Shell PHP (avec fsockopen et proc_open) :

  • Description : Établit une connexion TCP avec <IP_ATTAQUANTE> sur le <PORT> spécifié à l'aide de fsockopen, puis exécute un shell interactif Bash à l'aide de proc_open.

Reverse Shell PHP pour Windows 💻

Description : Cette commande est destinée à être utilisée sur un serveur web accessible par l'attaquant. L'attaquant peut inclure ce code PHP dans une page web et, lorsqu'un utilisateur visite cette page, une connexion TCP inverse est établie depuis le serveur web (machine cible) vers l'attaquant.

🪝PowerShell (à exécuter dans cmd.exe)

Description : Établit une connexion TCP inverse vers l'attaquant et exécute un shell interactif PowerShell sur la machine cible. Les commandes saisies par l'attaquant sont exécutées sur la machine cible et les résultats sont renvoyés à l'attaquant.

Bind Shell PowerShell

Description : Ouvre un port sur la machine cible en mode écoute, attendant une connexion entrante. Lorsqu'une connexion est établie, il exécute un shell interactif PowerShell. Les commandes saisies par l'attaquant sont exécutées sur la machine cible et les résultats sont renvoyés à l'attaquant.

Reverse Shell avec Powercat 🐱

Description : Établit une connexion TCP inverse vers l'attaquant et exécute cmd.exe (Command Prompt) sur la machine cible.

Bind Shell avec Powercat 🐱

Description : Ouvre un port sur la machine cible en mode écoute, attendant une connexion entrante. Lorsqu'une connexion est établie, il exécute cmd.exe (Command Prompt) sur la machine cible.

Last updated