Reverse Shell - Techniques

Shell Inverse (Reverse Shell) : Un shell inverse est une technique utilisée en cybersécurité et en piratage, où une machine attaquante établit une connexion avec une machine victime Un shell inverse est une technique courante en cybersécurité et dans le piratage, où un attaquant parvient à établir une connexion sortante depuis une machine compromise vers sa propre machine. Cette méthode permet à l'attaquant de contrôler à distance le système victime, en accédant à sa ligne de commande ou à son système d’exploitation, et d’y exécuter des commandes.

Linux:

WebShell Linux

Un webshell est un script permettant à un attaquant d'exécuter des commandes sur un serveur compromis via une interface web. Voici un exemple simple de fichier cmd.php servant à injecter des commandes via des paramètres HTTP :

Ou une version plus simple avec system() :

Injection de commande via WebShell

Exemple d’injection pour exécuter la commande whoami :

cmd.php?cmd=whoami

Payloads pour Reverse Shell

L’un des moyens pour obtenir un reverse shell consiste à injecter un payload dans le paramètre cmd. Pour cela, l’attaque peut utiliser une commande Bash encodée en URL .

URL Encoded:

URL Decoded:

Injection directe d’un Reverse Shell dans cmd.php :

Ou la version simplifiée :

Technique en cas d’erreur :

Serveur Web

Si la commande échoue, on peut contourner l'erreur en créant un fichier index.html avec un reverse shell encodé, puis démarrer un serveur HTTP pour servir ce fichier :

Ensuite, on démarre un serveur HTTP avec Python :

L’attaquant peut récupérer et exécuter le payload via curl :

Base64 Encoding pour contourner des restrictions

Si le reverse shell échoue, une solution consiste à encoder le payload en base64. Par exemple :

On encode le fichier en base64 :

Puis, on utilise echo pour décoder et exécuter le reverse shell :

Windows:

WebShell Windows:

Accédez à la WebShell via le navigateur :

PS.ps1

Le script PowerShell PS.ps1 est souvent utilisé pour établir une connexion inversée (reverse shell) vers une machine attaquante. Pour ce faire, le script exécute une commande qui initie une connexion sortante depuis le système compromis vers l'IP de l'attaquant et sur un port spécifique.

À la fin du script, nous ajoutons la ligne suivante :

Une fois le script PowerShell prêt, l'attaquant peut l'envoyer au serveur compromis via une requête HTTP. Par exemple :

Contournement Base64

Convertir le contenu du script PowerShell en Base64 pour l'utiliser avec l'option -enc de PowerShell.

Tu obtiendras une chaîne Base64 semblable à :

Exécution avec l'option -enc de PowerShell :

Méthode 2: Explotation automatique

Utilisation de nc.exe

Le binaire nc.exe peut être utilisé pour établir un reverse shell. On le récupère depuis /usr/share/SecLists/Web-Shells/FuzzDB/nc.exe et l’on l’ajoute au répertoire de travail :

Écoute sur le port 443 : Nous avons mis en place un listener avec nc pour écouter sur le port 443 :

Exécution du reverse shell via SMB : Nous avons ensuite lancé un reverse shell en pointant le paramètre cmd vers notre fichier

Nous avons ainsi obtenu un reverse shell vers notre machine.

Exemple PowerShell:

L'injection d'un payload PowerShell dans un fichier .eps (un fichier d'extension EPS - Encapsulated PostScript) est une technique utilisée pour exploiter des vulnérabilités dans les applications capables de traiter des fichiers EPS. En utilisant Python pour l'injection, un attaquant peut insérer un reverse shell dans le fichier .eps et l'utiliser pour obtenir une connexion inversée vers son propre serveur.

Création du Payload PowerShell :

L'objectif ici est d'utiliser PowerShell pour créer un reverse shell via une commande encodée en base64. Pour ce faire, on va injecter le payload PowerShell dans un fichier EPS.

Utilisation de RevShells pour créer le payload PowerShell :

Voici un exemple de commande pour injecter un reverse shell PowerShell :

Msfvenom Payloads:

Payload Windows via Metasploit

Utilisation de Metasploit pour obtenir un reverse shell via le module multi/handler :

Création du payload shell.exe avec la commande suivante :

Fichier WAR :

Créer un fichier WAR avec Metasploit pour un reverse shell via Java :

Fichier JSP:

Générer un fichier JSP pour un reverse shell avec la commande suivante :

Fichier .msi

Création d’un fichier MSI pour un reverse shell sur Windows :

Mis à jour

Ce contenu vous a-t-il été utile ?