Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
slopShell — la única webshell php que necesitas. | Kitploit
Herramientas/GitHubGitHub/oldkingcone/slopshell
Herramientas de Cifrado/DescifradoGeneración de PayloadsMecanismos de PersistenciaPost-ExplotaciónPruebas de PenetraciónComando y ControlAprendizaje y EducaciónRed TeamingHerramienta de Acceso Remoto
GitHuboldkingcone/slopshell

slopShell

la única webshell php que necesitas.

230374hace 1 añoRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir
Ver RepositorioSitio web

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

slopShell

webshell en PHP

Como metí la pata y olvidé hablar sobre el uso, aquí va.

Para que este shell funcione, necesitas 2 cosas: una víctima que permita la subida de archivos PHP (tú mismo, en un entorno educativo) y una forma de enviar peticiones HTTP a este webshell (el script cliente es la mejor manera de comunicarse con este shell).

Gracias por todo el apoyo que la comunidad nos ha brindado, significa mucho para nosotros. Ahora, sobre las cosas que se añadirán a este shell para hacerlo aún más increíble:

  • TLS mutuo, con la capacidad de generar una CA sobre la marcha (si es posible).
  • Dropper/shell más refinado, para asegurar que el shell no sea encontrado fácilmente para un acceso prolongado.
  • Ediciones futuras tendrán acceso a una base de datos personal de entidades en la nube, básicamente un Shodan personal. Se requerirá un pago por esto (lo siento).

Relación de detección actual en VT: 2/59 (versión más reciente)

Virus Total

Relación de detección actual en VT (versión ofuscada): 1/59 // Esta es una versión refinada del dropper reducido. La longitud total del archivo es de poco menos de 2 KB. Slopshell ahora asigna correctamente un user-agent aleatorio con un valor de user-agent real, es decir, un user-agent real como Mozilla, Opera, Chrome, Chromium, etc.

Virus Total

El problema con esta detección es que no he encontrado una solución viable para la palabra clave eval; si no hubiera una llamada a eval, este script sería indetectable.


Configuración

Bien, aquí vamos, amigos. Tenía la necesidad de escribir algo en PHP, así que aquí está. Este webshell tiene algunos añadidos, y cada día se agregan más. Necesitarás un servidor pgsql en ejecución que controles. Cómo lo implementes depende de ti.

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

Sistemas 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: Instala el MSI de PHP y asegúrate de tener un servidor PostgreSQL activo al que puedas conectarte en algún lugar.

Una vez que hayas configurado todo correctamente y puedas confirmar que está funcionando, te recomiendo usar pg_ctl para crear la base de datos, o al menos inicializarla e iniciarla. Luego todas las consultas a la base de datos funcionarán bien.

Debes acceder a /lib/ y ejecutar composer install para instalar las dependencias del lado del servidor que serán necesarias para que el cliente funcione. El cliente ahora es mucho más rápido que antes.


Créditos por los métodos de ejecución

Puede que notes que estos son una reimplementación de otro backdoor de WordPress, y cuando encuentre el repositorio otra vez, me aseguraré de dar crédito por la función de ejecución de comandos que está presente en estos shells. No me gusta copiar código y creo que se debe dar crédito donde corresponde. Gracias, buen señor: me has ayudado bastante con esto al poner tus scripts a disposición del público.


¿Qué hace único a este shell?

Mientras hacía algunos cambios, pensé: "¿por qué no añadir una forma de que el propio shell se oculte de un administrador poco observador?" Limpié los métodos de ejecución de código, limpié todo el script. Ya no mostrará una página 500 falsa, ya que esto atrae demasiada atención de un administrador atento (más aún por mi experiencia como administrador de un stack de desarrollo PHP en un servidor). Los mensajes de error 500 atraen mucha atención, lo que significa que es más probable que se descubra el shell. Sin embargo, una respuesta 404 es mucho menos probable que llame la atención del administrador del servidor. Esto hace que el shell sea mucho más difícil de detectar y encontrar, además del cambio de nombre de archivo; encontrar este shell será una pesadilla absoluta. La personalización del User-Agent aún debe hacerse, o se puede usar un valor de cookie único en lugar del valor de User-Agent, pero eso no lo estableceré yo y dejaré que usuarios más experimentados personalicen este shell a su gusto. De nuevo, si notas algún problema o deficiencia (la mayoría los he solucionado y he actualizado este shell a PHP8 en su mayor parte; las sugerencias de tipo aún no puedo añadirlas por razones de compatibilidad hacia atrás), por favor abre un issue y cuéntame qué está mal, y veré cómo solucionarlo. Gracias, haz el bien, lucha contra el mal, diviértete.

Esto es lo que pude idear para las rutinas evasivas adicionales:

  • El shell se renombrará dinámicamente (esto rompió el cliente por ahora; tengo muchas cosas que cambiar en el cliente, pero esto es solo un proyecto personal).
  • El archivo original se eliminará después de escribirse en disco; el script ahora también añade un comentario aleatorio al principio del archivo, cambiando completamente la suma de verificación, haciendo que la detección basada en firmas sea mucho más difícil. No es polimórfico, sería bueno si se pudiera hacer en PHP. Quizás escriba una función adicional para aleatorizar la ubicación de las funciones y añadir funciones aleatorias en ubicaciones aleatorias.
  • El valor del archivo antiguo y el nuevo nombre de archivo se reportarán al usuario en un encabezado.
  • El shell ahora responde con HTTP 404 a todo, incluso a peticiones válidas (otra razón por la que el script cliente está roto).
  • Sigo trabajando en las partes de MTLS del cliente y del script del shell.
  • Lo nombré de forma diferente a lo habitual.
  • Reasigné algunas de las funciones adicionales para que se activen por defecto, por ejemplo, detección de SO.
  • Añadí la capacidad de que el script (si el directorio tiene permisos de escritura) cree una carpeta oculta para almacenar las cosas subidas y luego referenciarlas.
  • Sigo trabajando en la carga dinámica y ejecución de scripts subidos.
  • ¡Ahora el script también comprobará las funciones MTLS! y establecerá una constante y creará un contexto con la información proporcionada (sigo trabajando en el uso del contexto para comunicarse, pero está avanzando; lo subiré cuando funcione correctamente).
  • El script ahora comprobará si hay un binario de Tor en el lado del bot.
  • El shell también tendrá la capacidad de importar y almacenar claves de PGP, si quieres usar PGP como esquema de cifrado.
  • El script ahora comprobará las funciones necesarias para usar sodium para cifrar/descifrar; el script TAMBIÉN podrá cargar una DLL/objeto compartido de sodium desde el directorio .scache creado.
  • El directorio .scache ahora está en la ruta de inclusión, por lo que ahora puedes almacenar y llamar funciones desde esa carpeta.
  • ¡Yay!

A medida que crezco en el lenguaje PHP, también crecerá todo este proyecto y las clases se convertirán en clases adecuadas, con espacios de nombres y todo. Solo necesito tiempo mientras arreglo el código para que cumpla con los estándares más comunes de desarrollo PHP. Probablemente añadiré una forma de empaquetar este shell como un plugin de WordPress, para que pueda usarse también en WordPress (un plugin adecuado). El cliente ahora crea plugins de WordPress adecuados, que enganchan la función init del sitio de WordPress. No he probado esto completamente, así que si hay algún problema, no dudes en abrir un nuevo issue y describir el problema. El activador del plugin de WordPress se deja en blanco porque estoy buscando formas de hacer que el activador sea un valor único seguro/cifrado que no se pueda replicar. Por favor, ten paciencia.

Cuando se llama a la función cqI, imprime información más relevante en lugar de... ya sabes, basura. Ejemplo:

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/

Estos tendrán color dependiendo de la salida: false por defecto en rojo, true en verde, con pequeñas excepciones para slopOS y slopShell, que siempre están en verde.


Imágenes de casos de uso

Uso del script cliente:

Conexión inversa iniciada desde el script cliente:

Páginas de aterrizaje aleatorias:


Adicional

Yo, como mantenedor, no soy responsable en absoluto del mal uso de este producto. Esto se publicó con fines legítimos de pruebas de penetración/red teaming y/o con valor educativo. Conoce las leyes aplicables en tu país de residencia antes de usar este script y no infrinjas la ley mientras lo uses. Gracias y que tengas un buen día.

Ejemplo de dropper reducido:

Dado que la mayoría de los servidores bloquean la capacidad de los scripts para escribir en el directorio servido (como deberían), por defecto uso el shell completo. La versión WordPress de este shell seguirá funcionando correctamente; solo engancha la función init en lugar de ser solo un shell a merced del viento.

Descargar herramienta