¿Qué intentan hacer los 'hackers'? Te lo mostraré en unos pocos comandos - más o menos

septiembre 30, 2024 #Obtención de acceso #docker #Hacking

Descargo de responsabilidad: Esta entrada del blog tiene fines exclusivamente educativos. La información proporcionada aquí está destinada a aumentar la conciencia sobre las vulnerabilidades de seguridad y fomentar el desarrollo de aplicaciones web más seguras. El uso indebido de esta información para fines maliciosos es ilegal y poco ético.

Descripción General

Los privilegios de administrador son poderosos y vienen con una gran responsabilidad. Permiten a los usuarios realizar tareas a nivel de sistema y acceder a información sensible. En esta entrada, exploraremos técnicas para explotar aplicaciones con privilegios de administrador, específicamente utilizando contenedores Docker y montando el directorio /etc.

Docker es una herramienta de contenedorización que permite crear y gestionar entornos aislados. Los contenedores comparten el núcleo del sistema host, pero operan en sus propios espacios de usuario. Al manipular las configuraciones de Docker, podrías explotar aplicaciones con privilegios de administrador o acceder sin autorización a información sensible en el sistema host.

Instalación de Docker

Instalar Docker: Sigue la guía de instalación oficial de Docker para instalar Docker en tu sistema host. (Suele ser algo como usar el gestor de paquetes para obtener el paquete y luego agregar el usuario al grupo, lo cual hace la mayoría de las personas, incluido yo, por conveniencia (para no tener que escribir sudo docker constantemente, lo cual vamos a explotar hoy) y luego iniciar el demonio / servicio de Docker).

Crear y Ejecutar el Contenedor para Probar:

Utiliza el siguiente comando para crear y ejecutar un contenedor Docker con la distribución Alpine Linux y una shell interactiva:

docker run --rm -it alpine sh

Montar el Directorio /etc para Abusar de Configuraciones / Malas Configuraciones:

Para montar el directorio /etc desde tu sistema host en el contenedor, usa la opción -v. Por ejemplo, para montar /etc en /mnt/etc en el contenedor:

docker run --rm -it -v /etc:/mnt/etc alpine sh

Explorando el Contenedor

Acceso a la Shell del Contenedor: Después de ejecutar el contenedor con el directorio montado, estarás en la shell del contenedor. Puedes navegar al directorio /etc montado con:

cd /mnt/etc

Visualizar Archivos del Sistema Host:

Los archivos del directorio /etc del host serán accesibles dentro del contenedor. Por ejemplo, puedes listar los archivos con:

ls -l /mnt/etc # Algo como /etc/shadow contiene todas las contraseñas y usuarios, por ejemplo. cat /mnt/etc/shadow

Explotación y Explicación Escalada de Privilegios en Docker

Privilegios del Contenedor: Los contenedores generalmente están aislados del sistema host. Sin embargo, montar directorios sensibles como /etc puede exponer archivos de configuración que pueden contener información valiosa si el contenedor no está adecuadamente asegurado.

Montaje de Directorios Sensibles: Al montar directorios desde el sistema host, puedes acceder a archivos sensibles. Por ejemplo:

docker run --rm -it -v /etc:/mnt/etc alpine sh

Esto monta el directorio /etc del host en /mnt/etc en el contenedor, permitiendo el acceso a archivos de configuración del host. Esto significa que un hacker, que podría haber obtenido algunos privilegios de usuario en el servidor a través de Docker, podría obtener privilegios de administrador. Esto requeriría que el usuario (en el sentido de Linux - la identidad que el hacker ha robado) esté en el grupo Docker, lo cual muchas personas hacen, incluido yo en mi computadora personal. Ahorra tener que escribir sudo y la contraseña cada vez, pero...

Configuraciones Incorrectas Potenciales: Las configuraciones incorrectas de Docker o ejecutar contenedores con privilegios elevados pueden llevar a una escalada de privilegios. Por ejemplo, si el demonio de Docker está expuesto o los contenedores se ejecutan con privilegios excesivos, esto podría ser explotado aún más.

Conclusión y Mitigación

Conclusión

Montar directorios del host en contenedores Docker puede exponer información sensible del sistema host. En este ejemplo, montar el directorio /etc permite acceder a archivos de configuración crítica del sistema. Una configuración adecuada de seguridad en Docker es esencial para prevenir el acceso no autorizado y la escalada de privilegios.

Mitigación

Siguiendo estas mejores prácticas, puedes asegurar mejor tus entornos Docker y reducir el riesgo de explotación de privilegios de administrador.

Y no te preocupes si te preguntas qué hacer con esto y cómo llegaste aquí en primer lugar; esas son las preguntas que deberías estar haciendo. Vamos a abordar todo dependiendo del interés. Así que envía tus preguntas y hasta pronto.