====== Laboratorios docker ======
Tenemos un repositorio de github que se llama vulhub que nos ofrece Dockerfiles para montarnos contenedores vulnerables y practicar hacking:
{{pasted_image_20230418103407.png|}}
Y por ejemplo aquí tenemos un fichero .yml para montar con Docker Compose para practicar un local file inclusion:
{{pasted_image_20230418103610.png|}}
Para montarnos esto, podemos bajarnos el fichero yml con wget y lo ejecutamos con un docker-compose up -d:
{{pasted_image_20230418104121.png|}}
Y ahora ya podemos acceder al navegador por el puerto 5601 que es donde está corriendo esto:
{{pasted_image_20230418104157.png|}}
{{pasted_image_20230418104209.png|}}
Ahora si quisiera explotar este Local File Inclusion Local File Inclussion (LFI) podría investigar como hacerlo en github:
{{pasted_image_20230418104330.png|}}
Lo probamos en ejecutar con curl:
{{pasted_image_20230418105105.png|}}
Y vemos que da error, pero en github nos dicen que si miramos los logs veremos el output:
docker-compose logs
{{pasted_image_20230418105206.png|}}
===== OTRO EJEMPLO - VULNERABILIDAD IMAGEMAGICK =====
Vamos a explotar esta vulnerabilidad que nos permite ejecutar un comando a la hora de que el servicio procese contenido multimedia.
{{pasted_image_20230418111117.png|}}
Nos bajamos el docker-compose.yml y el fichero .php, para después desplegarlo todo:
{{pasted_image_20230418112112.png|}}
{{pasted_image_20230418111219.png|}}
Y vemos que esto corre por el puerto 8080:
{{pasted_image_20230418111251.png|}}
Lo tenemos en la web:
{{pasted_image_20230418112128.png|}}
Vamos a buscar una imagen que tenga contenido malicioso que nos envíe una reverse shell.
====== Crear Imágenes con Servicios Vulnerables ======
Para descargar versiones antiguas o vulnerables de un servicio, debemos ir a la parte de tags de una imagen en dockerhub:
{{pasted_image_20240311221112.png|}}
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 .
{{pasted_image_20240311221206.png|}}
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
{{pasted_image_20240311221302.png|}}
O incluso podemos montar el contenedor sin hacer ningún port forwarding:
{{pasted_image_20240311225238.png|}}
Y vemos que el contenedor estará funcionando dentro de la interfaz de docker:
{{pasted_image_20240311225320.png|}}
La encontramos con un arp-scan:
{{pasted_image_20240311225344.png|}}
Ahora con el Kali podemos estar a la escucha con chisel:
{{pasted_image_20240311225407.png|}}
Y con ubuntu nos conectamos:
{{pasted_image_20240311225421.png|}}
Configuramos el túnel en el navegador:
{{pasted_image_20240311225449.png|}}
Y desde el Kali ya tenemos acceso al contenedor de la máquina ubuntu que está escondido:
{{pasted_image_20240311225522.png|}}