
la única webshell php que necesitas.
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:
Relación de detección actual en VT: 2/59 (versión más reciente)
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.
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.
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.
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.
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.