Docker Forensics
Last updated
Last updated
Aprende y practica Hacking en AWS: HackTricks Training AWS Red Team Expert (ARTE) Aprende y practica Hacking en GCP: HackTricks Training GCP Red Team Expert (GRTE)
Existen sospechas de que algún contenedor de Docker fue comprometido:
Puedes encontrar fácilmente las modificaciones realizadas en este contenedor con respecto a la imagen con:
En el comando anterior C significa Cambiado y A, Añadido.
Si descubres que algún archivo interesante como /etc/shadow
fue modificado, puedes descargarlo del contenedor para verificar la actividad maliciosa con:
También puedes compararlo con el original ejecutando un nuevo contenedor y extrayendo el archivo de él:
Si encuentras que se agregó algún archivo sospechoso puedes acceder al contenedor y verificarlo:
Cuando se te proporciona una imagen de Docker exportada (probablemente en formato .tar
) puedes usar container-diff para extraer un resumen de las modificaciones:
Entonces, puedes descomprimir la imagen y acceder a los blobs para buscar archivos sospechosos que hayas encontrado en el historial de cambios:
Puedes obtener información básica de la imagen en ejecución:
También puedes obtener un resumen historial de cambios con:
También puedes generar un dockerfile a partir de una imagen con:
Para encontrar archivos añadidos/modificados en imágenes de docker también puedes usar la utilidad dive (descárgala desde releases):
Esto te permite navegar a través de los diferentes bloques de imágenes de Docker y verificar qué archivos fueron modificados/agregados. Rojo significa agregado y amarillo significa modificado. Usa tabulador para moverte a la otra vista y espacio para colapsar/abrir carpetas.
Con die
no podrás acceder al contenido de las diferentes etapas de la imagen. Para hacerlo, necesitarás descomprimir cada capa y acceder a ella.
Puedes descomprimir todas las capas de una imagen desde el directorio donde se descomprimió la imagen ejecutando:
Tenga en cuenta que al ejecutar un contenedor de Docker dentro de un host puede ver los procesos en ejecución en el contenedor desde el host simplemente ejecutando ps -ef
Por lo tanto (como root) puede volcar la memoria de los procesos desde el host y buscar credenciales tal y como se muestra en el siguiente ejemplo.