PE-DOC
Docker
El CLI y daemon de contenedores estándar para ejecutar, inspeccionar y escapar de contenedores en un host comprometido.
Sitio oficialVolver al catálogo
RESUMEN
Docker (docker.com) es el motor de contenedores y CLI que corre en la mayoría de hosts: el cliente `docker` habla con el daemon `dockerd` sobre un socket Unix (o, si está mal configurado, un puerto TCP) para construir, ejecutar y gestionar contenedores e imágenes. En un pentest es a la vez objetivo y herramienta — un socket del daemon expuesto y montado dentro de un contenedor, o un usuario en el grupo `docker`, es una vía conocida para llegar a root en el host, ya que cualquiera que pueda hablar con el socket puede correr un contenedor privilegiado que monte el filesystem del host.
Más allá del ángulo de escape, `docker inspect`, `docker history` y `docker save`/`export` son los comandos del día a día para desarmar un contenedor en ejecución o su imagen en busca de secretos hardcodeados, capabilities de más o un montaje del host escribible, sin necesitar Dive o Crane para un vistazo rápido.
CASOS DE USO
Casos de uso en un engagement
- 01
Enumerar contenedores en ejecución, sus montajes y sus capabilities en un host comprometido.
- 02
Revisar si hay un socket de Docker expuesto (puerto TCP del host, o montado dentro de otro contenedor) como vía de escalada a root.
- 03
Inspeccionar una imagen con `docker history`/`inspect` en busca de secretos hardcodeados o pasos de build riesgosos.
- 04
Confirmar si una cuenta de usuario pertenece al grupo `docker`, lo cual equivale a root en el host.
PRIMEROS PASOS
Con un punto de apoyo en un host que corre Docker, para enumerar contenedores/imágenes y buscar rutas de escape hacia el nodo subyacente.
- Confirma que el host y cualquier técnica de escape de contenedor están explícitamente en alcance, ya que afecta al nodo subyacente.
- Comprueba si el CLI de `docker` y un socket del daemon son accesibles (`/var/run/docker.sock` o un endpoint TCP).
- Ejecuta `docker ps` / `docker inspect` para enumerar contenedores, montajes y capabilities en ejecución.
- Si el socket es alcanzable, prueba si otorga root efectivo en el host antes de tratarlo como hallazgo confirmado.
docker -H unix:///var/run/docker.sock inspect $(docker ps -q)ANTES DE USARLA
Qué revisar antes de lanzarla
Un socket de Docker alcanzable suele significar root completo en el host — trata el acceso a él como un hallazgo a nivel de host, y solo ejércelo contra un host explícitamente en alcance.
Apache-2.0 cubre el CLI y el motor; Docker Desktop en sí tiene términos de licencia comercial aparte para organizaciones grandes, algo a anotar si aparece en el entorno.
Detener o reiniciar contenedores para probar rutas de escape puede afectar cargas de producción que comparten el mismo host — coordina el momento con el cliente.