Shell web PHP de wwwolf
Me encontré con frecuencia con problemas al usar otras shells web:
- Utilizan características nuevas de sintaxis de PHP que no son compatibles con la versión antigua de PHP
que se ejecuta en algunos objetivos.
- Hacen suposiciones incorrectas sobre la URL remota, rompiendo la inyección de código PHP o los
parámetros GET (no) esperados por el servidor.
- A menudo solo muestran el contenido de la salida estándar, descartando stderr.
- Gestionan mal los caracteres especiales en la salida mostrada (como
<).
- No permiten la subida de archivos, u ofrecen un método no soportado/bloqueado por la
configuración del objetivo.
- Requieren modificación manual dependiendo de si el objetivo ejecuta
un sistema tipo UNIX o un sistema Windows.
Aquí está mi intento de resolver estos problemas. A diferencia de otras soluciones,
esta ni siquiera pretende convertirse en un "framework de post-explotación
completo". Su único objetivo es proporcionar una forma estable y
fiable de poner un pie en la puerta del objetivo, adhiriéndose al principio KISS
tanto como sea posible y manteniéndose lo suficientemente genérica como para que puedas construir
lo que quieras a partir de ahí sin que se interponga en tu camino.

Shell web PHP de WhiteWinterWolf:
- El acceso puede estar protegido por contraseña.
- Es compatible con sistemas tipo UNIX y Windows sin modificación.
- Intenta limpiar el búfer de salida de PHP (es decir, descartar cualquier código "basura" ya
producido por la aplicación atacada) y forzar la terminación de la ejecución del código PHP
para proporcionar el comportamiento más limpio y estable.
- El formulario se envía como una solicitud POST manteniendo exactamente la misma URL (incluidos
los mismos parámetros GET, sin añadir ni eliminar nada) que se utilizó para acceder
a él en primer lugar. No se hace ninguna suposición, lo que lo hace adecuado
para técnicas complejas de inyección de código. Además, el servidor remoto puede no
registrar los datos POST y, por tanto, puede no registrar los comandos realmente ejecutados en el objetivo.
- Se aplican valores predeterminados sensatos:
- El directorio de trabajo actual se establece en el directorio de trabajo real.
Esto tiene la ventaja adicional de indicarte fácilmente el tipo de sistema remoto
(
/var/www/html vs. C:\Inetpub\wwwroot).
- El host de origen de la descarga se establece en tu dirección IP tal como la ve el servidor
objetivo.
- Puedes establecer el directorio de trabajo libremente y el valor se mantiene entre comandos.
Se muestra un mensaje de advertencia específico en caso de que el ajuste
open_basedir de PHP
pueda limitar tu capacidad para moverte por el servidor.
- Hay dos formas diferentes de subir archivos a tus objetivos:
- Un formulario de subida clásico si la configuración de PHP remota lo permite.
- Descargar el archivo desde un host y una URL determinados (normalmente un host controlado por el
atacante). Esta funcionalidad implementa una funcionalidad de descarga HTTP muy básica
que permite evitar la limitación del ajuste
url_allow_fopen de PHP. No
gestiona cosas sofisticadas como redirecciones HTTP o autenticación, pero puede
gestionar SSL/TLS anteponiendo el nombre de host correspondientemente
(tls://203.0.113.37).
- Un enlace
Clear cmd permite limpiar y enfocar el campo del formulario de entrada de comandos
en un solo clic. Me resulta conveniente para ejecutar rápidamente algunos
comandos arbitrarios en el servidor, pero esta función depende de JavaScript. Si
quieres evitar JavaScript, puedes eliminar esta única línea; esto no
afectará al resto de la shell web, que no utiliza JavaScript en ningún otro lugar.
Este script aplica los ajustes del formulario en el orden indicado:
- Directorio de trabajo actual.
- Archivos a subir.
- Comando a ejecutar.
Esto permite subir un archivo a un directorio determinado y ejecutarlo inmediatamente en
una única solicitud HTTP.
Se puede encontrar más información en la página principal del proyecto.
Este script se proporciona únicamente con fines de investigación y evaluación de seguridad.
¡No lo utilices para nada ilegal!