Tenemos un repositorio de github que se llama vulhub que nos ofrece Dockerfiles para montarnos contenedores vulnerables y practicar hacking:
Y por ejemplo aquí tenemos un fichero .yml para montar con Docker Compose para practicar un local file inclusion:
Para montarnos esto, podemos bajarnos el fichero yml con wget y lo ejecutamos con un docker-compose up -d:
Y ahora ya podemos acceder al navegador por el puerto 5601 que es donde está corriendo esto:
Ahora si quisiera explotar este Local File Inclusion Local File Inclussion (LFI) podría investigar como hacerlo en github:
Lo probamos en ejecutar con curl:
Y vemos que da error, pero en github nos dicen que si miramos los logs veremos el output:
docker-compose logs
Vamos a explotar esta vulnerabilidad que nos permite ejecutar un comando a la hora de que el servicio procese contenido multimedia.
Nos bajamos el docker-compose.yml y el fichero .php, para después desplegarlo todo:
Y vemos que esto corre por el puerto 8080:
Lo tenemos en la web:
Vamos a buscar una imagen que tenga contenido malicioso que nos envíe una reverse shell.
Para descargar versiones antiguas o vulnerables de un servicio, debemos ir a la parte de tags de una imagen en dockerhub:
Por tanto podemos utilizar esta imagen la cual es una versión de grafana vulnerable a LFI:
FROM grafana/grafana:8.3.0-ubuntu WORKDIR /tmp COPY root.txt .
Lanzamos un contenedor de la siguiente imagen, donde vemos que podemos explotar el LFI que se acontece en esta versión de grafana:
docker run -d --network=host 05084fb22d95
O incluso podemos montar el contenedor sin hacer ningún port forwarding:
Y vemos que el contenedor estará funcionando dentro de la interfaz de docker:
La encontramos con un arp-scan:
Ahora con el Kali podemos estar a la escucha con chisel:
Y con ubuntu nos conectamos:
Configuramos el túnel en el navegador:
Y desde el Kali ya tenemos acceso al contenedor de la máquina ubuntu que está escondido: