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
CVE-2023-4911-Lab — Laboratorio CVE-2023-4911 basado en Docker para analizar el desbordamiento de búfer de glibc ld.so y desarrollar un exploit de escalada local de privilegios con depuración GDB. | Kitploit
Herramientas/GitHubGitHub/0xmoga/cve-2023-4911-lab
Escalada de PrivilegiosAnálisis de VulnerabilidadesExplotaciónIngeniería InversaDepuradoresPruebas de PenetraciónAprendizaje y EducaciónExplotación de BinariosLabs y Práctica
GitHub0xmoga/cve-2023-4911-lab

CVE-2023-4911-Lab

Laboratorio CVE-2023-4911 basado en Docker para analizar el desbordamiento de búfer de glibc ld.so y desarrollar un exploit de escalada local de privilegios con depuración GDB.

4hace 5 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
Ver Repositorio

Entorno de análisis de CVE-2023-4911 "Looney Tunables"

Entorno de prácticas basado en Docker para el análisis de la vulnerabilidad de desbordamiento de búfer (Local Privilege Escalation) en el cargador dinámico de GNU C Library (glibc) y el desarrollo de exploits.


Información de CVE

ElementoContenido
Número de CVECVE-2023-4911
AliasLooney Tunables
Objetivo vulnerableGNU C Library (glibc) 2.34 ~ 2.38
Versión vulnerableUbuntu 22.04 — libc6 2.35-0ubuntu3.3 o inferior
Versión parcheadalibc6 2.35-0ubuntu3.4 (USN-6404-1, 2023-10-04)
TipoDesbordamiento de búfer en ld.so
ImpactoEscalada de privilegios local (usuario normal → root)
DescubrimientoQualys Security Research Team

Mecanismo de la vulnerabilidad

El cargador dinámico de glibc (ld.so) analiza la variable de entorno GLIBC_TUNABLES al ejecutar un programa.
Al ejecutar un binario SUID, se establece __libc_enable_secure = 1 y ld.so ingresa en una ruta de código que anula (nullify) dicha variable de entorno.
Durante este proceso, con una entrada del formato tunable1=tunable2=value se produce un desbordamiento de búfer debido a un cálculo incorrecto de la longitud.

root@kitploit:~
Binario normal:     __libc_enable_secure = 0  →  no entra en código de anulación  →  sin vulnerabilidad
Binario SUID:       __libc_enable_secure = 1  →  entra en código de anulación   →  desbordamiento de búfer

Flujo del exploit:

root@kitploit:~
Desbordamiento en GLIBC_TUNABLES
        ↓
Sobrescritura del puntero link_map en el área BSS de ld.so
        ↓
Manipulación de la ruta de búsqueda de bibliotecas hacia evil_lib/
        ↓
Carga de evil.so → ejecución automática del constructor
        ↓
setuid(0) + execve("/bin/bash") → obtención de shell root

Objetivos y enfoque del entorno

Este entorno está diseñado para ir más allá de la mera ejecución de un PoC, con el objetivo de analizar directamente el principio de funcionamiento de la vulnerabilidad y desarrollar un exploit.

  • Reproducir un entorno donde funcione realmente la versión vulnerable de glibc (2.35-0ubuntu3.3)
  • Proporcionar un entorno que permita analizar conjuntamente el código fuente de ld.so y el binario ejecutable
  • Soporte para análisis dinámico mediante GDB / gef / gdbserver
  • Práctica directa del escenario de escalada de privilegios desde un usuario normal (researcher) a root
  • Aislamiento completo mediante Docker para que cualquier miembro del equipo pueda iniciar el análisis en el mismo entorno

Estructura del proyecto

root@kitploit:~
CVE-2023-4911/
├── Dockerfile                  # Definición de la imagen del entorno vulnerable (compilación multi-etapa)
├── run.sh                      # Script de gestión para compilar/ejecutar Docker
├── check_environment.sh        # Verificación automática del entorno al iniciar el contenedor
├── poc/
│   ├── exploit.py              # PoC básico — para verificar crash (SIGSEGV)
│   ├── exploit_lpe.py          # Exploit LPE — completar tras análisis con GDB
│   └── evil_lib/
│       ├── evil.c              # Biblioteca compartida maliciosa que ejecuta shell root
│       └── Makefile
└── test_targets/
    ├── test_suid.c             # Código fuente del binario de prueba SUID
    └── test_heap.c             # Código fuente del binario de prueba de asignación de heap

Requisitos del entorno

  • Docker
  • Linux o WSL2 (Windows)

Uso

1. Compilar la imagen y ejecutar el contenedor

root@kitploit:~
./run.sh build && ./run.sh run

2. Ingresar la contraseña de sudo

Al iniciar el contenedor, se solicita la contraseña de sudo.

root@kitploit:~
Contraseña: password

3. Verificar la vulnerabilidad

root@kitploit:~
# Comprobar si ocurre SIGSEGV
python3 /workspace/poc/exploit.py --check-only

# Disparar directamente
GLIBC_TUNABLES=glibc.malloc.mxfast=glibc.malloc.mxfast=AAAA \
  /workspace/test_targets/test_suid

4. Análisis con GDB

root@kitploit:~
# Análisis directo dentro del contenedor
gdb -q /workspace/test_targets/test_suid

# Depuración remota (gdbserver)
# Dentro del contenedor
gdbserver :1234 /workspace/test_targets/test_suid

# Desde el host local
gdb
(gdb) target remote localhost:1234

5. Ejecutar el exploit LPE

Tras analizar OVERFLOW_OFFSET y TARGET_ADDR con GDB, actualizar los valores en la parte superior de exploit_lpe.py y ejecutar.

root@kitploit:~
python3 /workspace/poc/exploit_lpe.py

Opciones de run.sh


Información del entorno de análisis


Puntos de análisis

Análisis estático

root@kitploit:~
# Ubicación de la función vulnerable
/workspace/glibc-source/elf/dl-tunables.c

# Funciones principales
__tunables_init()   # Punto de entrada
parse_tunables()    # Punto donde ocurre el desbordamiento
tunables_strdup()   # Asignación del búfer

Análisis dinámico

root@kitploit:~
# Seguimiento de llamadas al sistema con strace
strace -e trace=mmap GLIBC_TUNABLES="..." /workspace/test_targets/test_suid

# Analizar __tunables_init con GDB
gdb /workspace/test_targets/test_suid
(gdb) break __tunables_init
(gdb) set environment GLIBC_TUNABLES=glibc.malloc.mxfast=glibc.malloc.mxfast=AAAA
(gdb) run

Advertencias

Este entorno debe utilizarse únicamente con fines educativos y de investigación en seguridad.

  • Este entorno ha sido creado para el aprendizaje de vulnerabilidades y la investigación del desarrollo de exploits
  • No utilizarlo en sistemas de producción o contra objetivos no autorizados
  • El contenedor se ejecuta en modo --privileged, por lo que debe usarse solo en entornos aislados
  • El responsable legal de cualquier uso indebido del código de este repositorio es únicamente el usuario

Referencias

  • Qualys Security Advisory
  • Repositorio oficial de glibc
  • Ubuntu Security Notice USN-6404-1
Descargar herramienta
ComandoDescripción
./run.sh buildCompilar la imagen Docker
./run.sh runEjecutar el contenedor en modo interactivo
./run.sh analysisEjecutar en modo análisis
./run.sh testVerificación rápida de la vulnerabilidad
./run.sh cleanLimpiar imágenes y contenedores
ElementoContenido
Imagen baseubuntu:jammy-20230916 (anterior al parche)
Versión de glibc2.35-0ubuntu3.3 (vulnerable)
Versión de ld.so2.35-0ubuntu3.3 (vulnerable)
Cuenta de análisisresearcher / password
Código fuente de glibc/workspace/glibc-source (2.35)
Puerto principal1234 (gdbserver)
Opciones del contenedor--privileged, --pid=host