Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
Herramientas/GitHubGitHub/pwncone/cve-2023-0386-overlayfs
Escalada de PrivilegiosAnálisis de VulnerabilidadesExplotaciónAprendizaje y EducaciónExplotación de Binarios
GitHubpwncone/cve-2023-0386-overlayfs

CVE-2023-0386-OverlayFS

Copia archivos falsos en memoria al disco usando overlayFS

Ver Repositorio
4hace 2 mesesAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

CVE-2023-0386 - OverlayFS / FUSE

Fuente original del CVE escrita por xkaneiki: https://github.com/xkaneiki/CVE-2023-0386/tree/main

Reescrito para que el exploit pueda ejecutarse en 1 shell (el exploit original requiere 2 shells).

root@kitploit:~
# Compile
make all
# Create mount point for fuse filesystem
mkdir -p /tmp/fusepwn/lower
# Start fuse (which serves a SUID binary)
./fuse /tmp/fusepwn/lower
# Run exploit (which copies fuse's fake SUID binary onto disk with real SUID privs via overlayfs)
./exp
# Run shell
/tmp/fusepwn/upper/bin

Limpieza

root@kitploit:~
# unmount fuse filesystem
fusermount -u /tmp/fusepwn/lower
# remove all 
rm -rf /tmp/fusepwn
# unmount overlayfs (root only. not required)
umount /tmp/fusepwn/merge

Notas

  • Usa findmnt para ver los sistemas de archivos montados
  • El montaje de overlayfs solo es visible por root (no estoy seguro de por qué)

Cómo funciona

fuse.c crea un sistema de archivos fuse montado en /tmp/fusepwn/lower y sirve un binario SUID falso propiedad de root. Es un sistema de archivos en memoria, por lo que podemos mentir sobre los permisos establecidos.

exp.c crea un montaje overlayfs en /tmp/fusepwn y abre el binario SUID falso (/tmp/fusepwn/lower/bin). Al abrirlo, esto provoca que overlayfs realice un copy-up que escribe el binario SUID falso en disco con privilegios SUID reales y propiedad de root.

La vulnerabilidad existe en overlayfs porque confía ciegamente en los permisos de archivo que le proporciona el sistema de archivos inferior. Si el sistema de archivos inferior es el kernel, esto no es un problema (porque no puede manipularse sin permisos de root). Si el sistema de archivos inferior puede ser manipulado por el usuario, esto sí es un problema, porque podemos mentir sobre qué archivos hay (por ejemplo, usando FUSE).

Parche

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=4f11ada10d0ad3fd53e2bd67806351de63a4f9c3

El parche comprueba si el UID/GID del archivo es válido dentro del namespace del usuario. Si no lo es, hace que el copy-up falle.

es decir,

  • somos bob
  • creamos un nuevo namespace como root mapeando 1000 (el UID de bob) a 0 (root) en proc/self/uid_map
  • intentamos provocar un copy-up sobre un archivo propiedad de root
  • overlayfs comprueba el mapeo de bob y ve que el namespace del usuario es realmente 1000 (bob) y no 0 (root) como el del archivo, y hace fallar el copy-up

Recursos útiles

  • Blog útil: https://engineering.facile.it/blog/eng/write-filesystem-fuse/
  • Implementación de ejemplo de FUSE: https://man.openbsd.org/fuse_main.3

Diagrama

diagram

Descargar herramienta