Reverse Shell - Techniques

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.phpservant à 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.ps1est 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
nc.exeLe 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.epset 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 ?