
Artículo · Seguridad de la información
OSINT Docker Registry
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.

Escrito por
José MorenoPurple 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.



