====== 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|}}