Sensitive Mounts
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
La exposición de /proc
y /sys
sin un aislamiento adecuado de nombres introduce riesgos de seguridad significativos, incluyendo 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 de contenedores, modificación del host, o proporcionar información que ayude a 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 preocupación:
/proc/sys/kernel/core_pattern
Descrito en core(5).
Permite definir un programa para ejecutar en la generación de archivos de núcleo 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 se bloquea o invoca al OOM killer cuando ocurre una condición 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 root si /proc/sys/fs/binfmt_misc/register
es escribible.
Exploit relevante y explicación:
Tutorial en profundidad: Video link
/proc
/proc/config.gz
Puede revelar la configuración del kernel si CONFIG_IKCONFIG_PROC
está habilitado.
Útil para los atacantes para identificar 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
Lista símbolos exportados del kernel y sus direcciones.
Esencial para el desarrollo de exploits del kernel, especialmente para superar KASLR.
La información de dirección está restringida con kptr_restrict
configurado 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 ELF core.
La lectura puede filtrar el contenido de la memoria del sistema host y otros contenedores.
El gran tamaño del archivo puede llevar a problemas de lectura o fallos de software.
Uso detallado en Dumping /proc/kcore in 2019.
/proc/kmem
Interfaz alternativa para /dev/kmem
, representando 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
, representando 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 sobre la 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
Usado para manejar uevents
de dispositivos del kernel.
Escribir en /sys/kernel/uevent_helper
puede ejecutar scripts arbitrarios al activarse uevent
.
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 configuraciones 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 a un contenedor deshabilitar su sistema MAC.
/sys/firmware/efi/vars
y /sys/firmware/efi/efivars
Expone interfaces para interactuar con variables EFI en NVRAM.
La mala configuración o explotación puede llevar a laptops bloqueadas o máquinas host que no se pueden iniciar.
/sys/kernel/debug
debugfs
ofrece una interfaz de depuración "sin reglas" al kernel.
Historial de problemas de seguridad debido a su naturaleza sin restricciones.
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)