Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
slopShell — le seul webshell PHP dont vous avez besoin. | Kitploit
Outils/GitHubGitHub/oldkingcone/slopshell
Outils de Chiffrement/DéchiffrementGénération de PayloadsMécanismes de PersistancePost-ExploitationTests d'IntrusionCommandement et ContrôleApprentissage et ÉducationRed TeamingOutil d'Accès à Distance
GitHuboldkingcone/slopshell

slopShell

le seul webshell PHP dont vous avez besoin.

23037il y a 1 anVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager
Voir le dépôtSite web

GitHub forks GitHub stars GitHub watchers GitHub issues language language language BuyMeACoffee

slopShell

Shell web PHP

Comme j'ai déconné et oublié de parler de l'utilisation, voici donc.

Pour que ce shell fonctionne, vous avez besoin de 2 choses : une victime qui permet l'upload de fichiers PHP (vous-même, dans un environnement éducatif) et un moyen d'envoyer des requêtes HTTP à ce webshell (le script client est le meilleur moyen à 100 % de communiquer avec ce shell).

Merci pour tout le soutien que la communauté nous a apporté, cela signifie beaucoup pour nous. Maintenant, voici ce qui sera ajouté à ce shell pour le rendre encore plus génial.

  • TLS mutuel, avec la capacité de générer une CA à la volée (si possible)
  • Un dropper/shell plus raffiné pour garantir que le shell ne sera pas découvert pour un accès prolongé.
  • Les futures éditions de ce shell auront accès à une base de données personnelle d'entités cloud, c'est essentiellement un shodan personnel. Des frais seront nécessaires pour cela (désolé).

Rapport de détection VT actuel : 2/59 (version la plus récente)

Virus Total

Rapport de détection VT actuel (version obfusquée) : 1/59 //Ceci est une version raffinée du dropper allégé. La longueur totale du fichier est juste en dessous de 2 Ko. Slopshell assigne désormais correctement un useragent aléatoire avec une valeur d'useragent correcte, c'est-à-dire un véritable useragent comme Mozilla, Opera, Chrome, Chromium, etc.

Virus Total

Le problème avec cette détection est que je n'ai pas trouvé de contournement viable pour le mot-clé eval. S'il n'y avait pas d'appel à eval, ce script serait indétectable.


Configuration

Ok, alors c'est parti les amis, j'avais une envie d'écrire quelque chose en PHP, donc voilà. Ce webshell a quelques fonctionnalités, et d'autres sont ajoutées chaque jour. Vous aurez besoin d'un serveur pgsql en cours d'exécution que vous contrôlez. La façon dont vous l'implémentez vous appartient.

Debian : apt install -y postgresql php php-pear python3-pip php-readline php-curl libsodium libsodium-dev && python -m pip install proxybroker --user

Systèmes RHEL : dnf -y -b install postgresql-server postgresql php php-pear python3-pip php-readline php-curl libsodium libsodium-devel && python -m pip install proxybroker --user

WIN : installez le msi PHP et assurez-vous d'avoir un serveur PostgreSQL actif auquel vous pouvez vous connecter et qui tourne quelque part.

Une fois que vous les avez correctement configurés et que vous pouvez confirmer qu'ils fonctionnent, une commande que je recommande est d'utiliser pg_ctl pour créer la DB de cette façon, ou au moins l'initialiser et la démarrer. Ensuite, toutes les requêtes DB fonctionneront correctement.

Vous devez vous rendre dans /lib/ et exécuter composer install pour installer les dépendances côté serveur nécessaires au fonctionnement du client. Le client s'exécute désormais beaucoup plus rapidement qu'avant.


Crédits pour les méthodes d'exécution

Vous remarquerez peut-être qu'il s'agit d'une réorganisation d'une autre backdoor WordPress, et quand je retrouverai le dépôt, je m'assurerai de créditer la fonction d'exécution de commandes présente dans ces shells. Je n'aime pas plagier du code et je crois qu'il faut créditer là où le crédit est dû. Merci, cher monsieur, vous m'avez beaucoup aidé avec cela en rendant vos scripts disponibles au public.


Qu'est-ce qui rend ce shell unique ?

Donc, en faisant quelques modifications, je me suis dit pourquoi ne pas ajouter un moyen pour le shell lui-même de se cacher d'un administrateur moins observateur. J'ai nettoyé les méthodes d'exécution du code, nettoyé tout le script. Il n'affichera plus une fausse page 500, car cela attire trop l'attention d'un administrateur observateur (d'après mon expérience en tant qu'administrateur d'une pile de développement PHP sur un serveur). Les messages d'erreur 500 attirent beaucoup l'attention, ce qui signifie que le shell a plus de chances d'être découvert. Une réponse 404, en revanche, est beaucoup moins susceptible d'attirer le regard de l'administrateur du serveur. Cela rend ce shell lui-même beaucoup plus difficile à détecter et à trouver, en plus du changement de nom de fichier. Trouver ce shell sera un cauchemar absolu. La personnalisation du User-Agent est encore à faire, ou une valeur de cookie unique devra être utilisée à la place de la valeur User-Agent, mais cela ne sera pas défini par moi et je laisserai les utilisateurs plus expérimentés personnaliser ce shell à leur guise. Encore une fois, si vous remarquez des problèmes ou des lacunes (la plupart ont été corrigées, et j'ai mis à jour ce shell vers PHP8 pour la plupart, je ne peux toujours pas ajouter d'indications de type pour des raisons de compatibilité ascendante), veuillez ouvrir un ticket et me faire savoir ce qui ne va pas, et je verrai ce que je peux faire pour le corriger. Merci, faites le bien, combattez le mal, amusez-vous.

Voici ce que j'ai pu proposer pour les routines d'évasion supplémentaires :

  • Le shell se renommera dynamiquement (cela a cassé le client pour le moment, j'ai tellement de choses à changer dans le client, mais c'est juste un projet personnel.)
  • Le fichier original sera supprimé après avoir été écrit sur le disque. Le script ajoute désormais aussi un commentaire aléatoire en haut du fichier, changeant complètement la somme de contrôle du fichier, rendant la détection basée sur les signatures beaucoup plus difficile, pas polymorphe, ce serait bien si cela pouvait être fait en PHP. Je pourrais écrire une fonction supplémentaire pour randomiser l'emplacement des fonctions et ajouter des fonctions aléatoires à des endroits aléatoires.
  • La valeur de l'ancien fichier et du nouveau nom de fichier sera renvoyée à l'utilisateur dans un en-tête.
  • Le shell répond maintenant HTTP 404 à tout, même aux requêtes valides. (une autre raison pour laquelle le script client est cassé.)
  • Je travaille toujours sur les parties MTLS du client et du script shell.
  • Je l'ai nommé différemment que d'habitude.
  • J'ai remappé certaines fonctions supplémentaires pour qu'elles se déclenchent par défaut, par exemple la détection du système d'exploitation.
  • Ajout de la capacité pour le script (si le répertoire est accessible en écriture) de créer un dossier caché pour que le shell stocke les goodies téléchargés, puis y fasse référence.
  • Je travaille toujours sur le chargement et l'exécution dynamiques des scripts téléchargés.
  • Hé, maintenant le script vérifie aussi les fonctions MTLS ! et définit une constante + crée un contexte avec les informations fournies. (je travaille toujours sur l'utilisation du contexte pour communiquer, mais ça avance. Je pousserai quand cela fonctionnera correctement.)
  • Le script vérifiera maintenant la présence d'un binaire Tor côté bot.
  • Le shell aura également la capacité d'importer et de stocker des clés PGP, si vous souhaitez utiliser PGP comme schéma de chiffrement.
  • Le script vérifiera maintenant les fonctions nécessaires pour utiliser les fonctions de chiffrement/déchiffrement avec sodium. Le script pourra AUSSI charger une DLL/un objet partagé sodium depuis le répertoire .scache créé.
  • Le répertoire .scache est maintenant dans le chemin d'inclusion, donc vous pouvez maintenant stocker et appeler des fonctions depuis ce dossier.
  • Youpi !

Au fur et à mesure que je progresse dans le langage PHP, tout ce projet évoluera aussi et les classes deviendront de vraies classes, avec des espaces de noms et tout. J'ai juste besoin de temps pour corriger le code selon les standards plus courants du développement PHP. J'ajouterai probablement un moyen de conditionner ce shell en tant que plugin WordPress, afin qu'il puisse également être utilisé dans WordPress (un vrai plugin). Le client crée maintenant de vrais plugins WordPress, qui accrochent la fonction init du site WordPress. Je n'ai pas testé cela complètement, donc s'il y a des problèmes, n'hésitez pas à ouvrir un nouveau ticket et à décrire le problème que vous rencontrez. L'activateur du plugin WordPress est laissé vide, car je cherche des moyens de faire de l'activateur une valeur unique sécurisée/chiffrée qui ne peut pas être reproduite. Soyez patient.

Lorsque vous appelez la fonction cqI, elle affiche des informations plus pertinentes plutôt que... vous savez, des ordures. Exemple :

root@kitploit:~
Max file uploads: 20
Safemode: cannot set safemode.
File_Uploads: true
Upload Temp Dir: cannot set upload_tmp_dir
Maximum File upload size: 2M
Include Path: .:/usr/share/php8:/usr/share/php/PEAR:/var/www/somesite/html/public/.scache/
---------------- SLOP DEFINES ---------------------
slopMTLS: true
slopEncryption: true
slopOS: LIN
slopShell: bash
slopTor: false
slopPGP: false
.scache full path: /var/www/somesite/html/public/.scache/

Ces valeurs auront une couleur selon la sortie : false par défaut en rouge, true par défaut en vert, avec de petites exceptions pour slopOS et sloppyshell, qui sont toujours en vert.


Images de cas d'utilisation

Utilisation du script client :

Connexion inversée initiée depuis le script client :

Pages d'atterrissage aléatoires :


Supplément

En tant que mainteneur, je ne suis en aucun cas responsable de l'utilisation abusive de ce produit. Ce produit a été publié à des fins légitimes de test de pénétration/red teaming, et/ou à des fins éducatives. Connaissez les lois applicables de votre pays de résidence avant d'utiliser ce script, et ne violez pas la loi en l'utilisant. Merci et bonne journée.

Exemple de dropper allégé :

comme la plupart des serveurs bloquent la possibilité pour les scripts d'écrire dans le répertoire servi (comme ils le devraient), je choisis par défaut le shell complet. La version WordPress de ce shell fonctionnera toujours correctement, elle accroche simplement la fonction init au lieu d'être juste un shell qui bat au vent.

Télécharger l’outil