Puerto 5000: Docker

Docker es una plataforma de contenedorización que permite a los desarrolladores empaquetar aplicaciones y sus dependencias en contenedores ligeros y portátiles. Docker se utiliza ampliamente para desarrollar, desplegar y ejecutar aplicaciones en cualquier entorno. El puerto 5000 se utiliza comúnmente por el registro de Docker para alojar un registro privado donde se almacenan y distribuyen imágenes de Docker.

Descripción de Docker y el Puerto 5000

  • Docker: Docker es una tecnología de contenedorización que permite a los desarrolladores crear, desplegar y ejecutar aplicaciones dentro de contenedores. Estos contenedores son independientes del sistema operativo y pueden ejecutarse en cualquier entorno que soporte Docker.

  • Registro de Docker: Un registro de Docker es un servicio donde se almacenan las imágenes de Docker. Docker Hub es el registro público más conocido, pero las organizaciones pueden configurar registros privados para alojar sus propias imágenes.

  • Puerto 5000: El puerto 5000 es el puerto predeterminado para el registro privado de Docker. Este puerto se utiliza para interactuar con el registro, incluyendo la subida y descarga de imágenes.

Relevancia en Pentesting

Importancia del Puerto 5000 en Pentesting:

  • Exposición de Imágenes: Un registro de Docker mal configurado puede permitir el acceso no autorizado a imágenes almacenadas, exponiendo datos sensibles y configuraciones.

  • Vulnerabilidades en el Registro: Las vulnerabilidades en el software del registro de Docker pueden ser explotadas para obtener acceso no autorizado, ejecutar código remoto, o realizar ataques de denegación de servicio.

  • Enumeración de Imágenes: Los pentesters pueden enumerar las imágenes disponibles en el registro para identificar aplicaciones y servicios en uso dentro de la organización.

Ejemplo de Escaneo de Docker con Nmap

Para identificar servidores Docker Registry activos y recopilar información adicional sobre el servicio en el puerto 5000, se puede utilizar Nmap con scripts NSE específicos.

Comando Nmap

nmap -p 5000 --script http-title,http-server-header,http-docker-registry-ls target-ip

Explicación del Comando

  • nmap: Ejecuta el comando Nmap.

  • -p 5000: Especifica que Nmap debe escanear el puerto 5000, el puerto predeterminado para el registro de Docker.

  • --script http-title,http-server-header,http-docker-registry-ls: Utiliza scripts NSE para detectar configuraciones y vulnerabilidades en el servicio Docker Registry.

    • http-title: Recupera el título de la página HTTP.

    • http-server-header: Muestra la cabecera del servidor HTTP.

    • http-docker-registry-ls: Enumera las imágenes disponibles en el registro Docker.

  • target-ip: Especifica la dirección IP del objetivo.

Ejemplo de Salida de Nmap

Starting Nmap 7.80 ( https://nmap.org ) at 2024-05-18 23:00 UTC
Nmap scan report for 192.168.1.250
Host is up (0.0021s latency).

PORT     STATE SERVICE
5000/tcp open  http
| http-title: Docker Registry
|_Requested resource was /
| http-server-header: 
|   Server: Docker-registry/2.7.1
|   Date: Sat, 18 May 2024 23:00:00 GMT
|_  Content-Type: text/html; charset=utf-8
| http-docker-registry-ls: 
|   Repositories:
|     - example-app
|     - test-service
|     - my-private-image
|     - nginx
|     - postgres
|_    - redis

Nmap done: 1 IP address (1 host up) scanned in 7.45 seconds

Interpretación de la Salida

  • Host is up: Indica que el sistema objetivo está en línea y responde.

  • 5000/tcp open http: El puerto 5000 está abierto y el servicio HTTP está activo.

  • http-title: Recupera el título de la página HTTP del registro Docker (Docker Registry).

  • http-server-header: Muestra la cabecera del servidor HTTP.

    • Server: Indica el tipo y versión del servidor (Docker-registry/2.7.1).

    • Date: Fecha y hora de la respuesta.

    • Content-Type: Tipo de contenido devuelto por el servidor (text/html; charset=utf-8).

  • http-docker-registry-ls: Enumera las imágenes disponibles en el registro Docker.

    • Repositories: Lista de repositorios de imágenes disponibles en el registro (example-app, test-service, my-private-image, nginx, postgres, redis).

Última actualización