p0wny@shell:~# -- Shell PHP de un solo archivo

p0wny@shell:~# es un shell PHP muy básico de un solo archivo. Puede usarse para ejecutar rápidamente comandos en un servidor al hacer pentesting a una aplicación PHP. Úsalo con precaución: este script representa un riesgo de seguridad para el servidor.
Características:
- Historial de comandos (usando las teclas de flecha
↑ ↓)
- Autocompletado de comandos y nombres de archivo (usando la tecla
Tab)
- Navegar por el sistema de archivos remoto (usando el comando
cd)
- Subir un archivo al servidor (usando el comando
upload <destination_file_name>)
- Descargar un archivo del servidor (usando el comando
download <file_name>)
ADVERTENCIA: ESTE SCRIPT ES UN AGUJERO DE SEGURIDAD. NO LO SUBAS A UN SERVIDOR A MENOS QUE SEPAS LO QUE ESTÁS HACIENDO.

Demostración con Docker:
docker build -t p0wny .
docker run -it -p 8080:8080 -d p0wny
# open with your browser http://127.0.0.1:8080/shell.php
Contribuciones
Preguntas
Si tienes alguna pregunta, puedes:
Errores
Por favor, abre un issue en GitHub con la mayor cantidad de información posible si encuentras un error:
- Tu sistema operativo / distribución de Linux (y su versión)
- La versión de PHP que estás usando (ejemplo:
PHP-FPM 8.1, Apache mod_php 7.4,...)
- El servidor web que estás usando y su versión (ejemplo:
Nginx 1.23, Apache 2.4.55,...)
- Todos los registros y mensajes generados por el software
- etc.
Pull requests
Por favor, considera informar de un error antes de empezar a trabajar en una nueva funcionalidad; nos permitirá discutir la mejor manera de hacerlo. Obviamente no es necesario si solo quieres corregir una errata o pequeños errores en el código.
Apoya este proyecto
¿Quieres apoyar este proyecto?
Historial de cambios
- v2023.08.10:
- Hacer p0wny@shell compatible con PHP 5.3 (@FrancoisCapon, #38)
- v2023.05.28:
- Codificar todos los campos de datos como base64 para evitar errores de codificación, especialmente en Windows (@cli-ish, #8, #35)
- v2023.05.22:
- Mostrar el nombre de usuario y el nombre de host en el prompt (@cli-ish, #33, #7)
- v2023.05.10:
- Probar diferentes funciones de ejecución (
exec, shell_exec, system, passthru, popen, proc_open) para ejecutar comandos y omitir funciones deshabilitadas (@cli-ish, #31, #32)
- v2023.02.27:
- Hacer que la ventana de la terminal sea redimensionable (@FrancoisCapon, #27)
- v2023.02.13:
- Mayor tamaño de terminal en pantallas grandes (@psyray, #26)
- No más desplazamiento horizontal en pantallas pequeñas (@flozz)
- v2022.09.19:
- Expandir la ruta en el comando
cd (cd ~, cd ~username,...)
- Ir al directorio personal al ejecutar cd sin argumento.
- → Gracias a @FrancoisCapon por la sugerencia (#25)
- v2021.01.24:
- Mejoras de estilo:
- Barra de desplazamiento más bonita en webkit (@nakamuraos)
- Mostrar un logotipo más pequeño en móviles (@nakamuraos)
- Mejoras ergonómicas:
- Enfocar el campo de comando al hacer clic en la página (@nakamuraos)
- Colocar el cursor al final del campo de comando al navegar por el historial (@nakamuraos)
- v2019.06.07:
- Añade el comando
clear para limpiar la terminal (@izharaazmi #12)
- v2018.12.15:
- Función de subida y descarga de archivos (@Oshawk #5)
- v2018.06.01:
- Autocompletado de comandos y nombres de archivo (@lo001 #2)
- Adaptación a dispositivos móviles (responsive) (@lo001 #2)
- Mejora en el manejo de stderr (@lo001 #2)
- v2018.05.30:
- Compatibilidad con ES5 (@lo00l #1)
- Eliminada la dependencia de JQuery (@lo00l #1)
- Historial de comandos usando las teclas de flecha (@lo00l #1)
- Mantener el campo de comando enfocado al pulsar la tecla Tab
- v2017.10.30:
- CSS: corregido color no válido
- v2016.11.10: