Artículo · Seguridad de la información

OSINT Docker Registry

José MorenoJosé Moreno 3 min de lectura

Recientemente he tenido algo de tiempo para dedicarme a escribir un poco sobre algunas investigaciones realizadas, principalmente al ser jugador de Hack The Box (no profesional), me intrigaba el hecho de lograr explotar ciertas vulnerabilidades que me ha tocado realizar durante mis horas de prácticas ofensivas y dada la casualidad mi buen amigo Big Brother (google.com) me tiene tan bien perfilado que me proporciona ciertas lecturas casi obligatorias, por lo que recomiendo vean la fuente de donde obtuve la información para mi prueba, la encontraran en las referencias.

 

Vamos a iniciar manos a la obra, como toda buena investigación comienza con un poco de OSINT, por lo que vamos a nuestro buscador favorito shodan.io y utilizamos la siguiente consulta:

 

Docker-Distribution-Api-Version 200 OK. 200 OK

 

 

Un resultado para nada despreciable al notar que son 145 posibles objetivos, sin embargo hay que probar  y buscar, siendo honestos la mayoria de las pruebas fueron negativas, debido a que contaban con autenticación básica por lo que podrían mejorar la búsqueda para obtener un resultado algo más eficiente.

 

Una vez tengo un objetivo debemos usar una de las herramientas más conocidas por su utilidad en HTB curl

 

curl -k --insecure https://ip-objetivo/v2/ -v

 

 

Está respuesta indica que Podemos acceder sin autenticación al servidor, puesto si fuera lo contrario nos daría un error como el siguiente

 

 

Ahora continuando con la prueba debemos verificar si me lista los repositorios con los que cuenta con el comando:

curl -k --insecure -X GET https://ip-objetivo/v2/_catalog

De igual manera encontramos otro objetivo donde nos arrojo el siguiente resultado

 

 

Si deseamos  ver las versiones de dichos repositiorios podemos usar el comando:

curl -k --insecure -X GET https://ip-objetivov2/nf-front-id-v3-production/tags/list

 

El mismo commando probado en otro objetivo nos arroja el siguiente resultado

curl -k --insecure https://ip-objetivo/v2/test/tags/list

 

Si deseamos especificar las etiquetas por repositorios usamos  el comando

curl -k --insecure https://ip-objetivo/v2/test/manifests/1.1.1

 

Un último paso sería, si deseo borrar o subir alguna imagen de otro repositorio o de otra fuente, para efectos de la prueba solo llegaré hasta la parte de verificar la subida pues como he hecho en artículos anteriores mi objetivo no es destruir, solo concientizar sobre las fallas de seguridad en cuanto a las configuraciones por defecto que estamos expuestos.

 

Para verificar si podemos subir una imagen

 

curl -k --insecure -X POST https://ip-objetivo/v2/blobs/uploads/

 

 

El estado 202 indica que podría subir una imagen si asi lo deseara, sin embargo nuevamente esto es una investigación puramente por fines educativos.

 

Nuevamente vemos malas configuraciones de seguridad en configuraciones por defecto, en la mayoría de estos casos se inicia con la idea de tener nuestros propios registros y controlar nuestras aplicaciones o infraestructuras, pero al no tomar en cuenta las configuraciones minimas por lo menos un autenticación basíca http, estamos expuestos a cualquier ciberdelicuente que pueda compromoter nuestros docker regestry.

 

Referencias

 

https://medium.com/@logicbomb_1/docker-registries-and-their-secrets-47147106e09

https://docs.docker.com/registry/configuration/

https://www.vultr.com/docs/setup-your-own-docker-registry-on-coreos

https://discoposse.com/2015/11/12/rancher-part-3-adding-the-dockerhub-to-our-rancher-registry/

¿Quieres aprender estas técnicas en profundidad?

Continúa tu ruta con Ciberseguridad Personal.

José Moreno

Escrito por

José Moreno

Purple Team

Jugador de HTB, script kiddie, apasionado por la seguridad informática especialmente red team, Miembro Fundador Asociación Panameña de Peritos en Informática Forense, Purple-Team UTP.

Sigue leyendo