Skip to content
KitploitKITPLOIT
HerramientasBlog
Log in
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-2017-7184 — Exploit de prueba de concepto para escalada local de privilegios en CVE-2017-7184, un desbordamiento de pila XFRM netlink del kernel de Linux. Demuestra abuso de espacios de nombres y ROP del kernel para obtener root sin sudo. | Kitploit
Herramientas/GitHubGitHub/grish-pradhan/cve-2017-7184
Escalada de PrivilegiosAnálisis de VulnerabilidadesExplotaciónAprendizaje y EducaciónExplotación de Binarios
GitHubgrish-pradhan/cve-2017-7184

CVE-2017-7184

Exploit de prueba de concepto para escalada local de privilegios en CVE-2017-7184, un desbordamiento de pila XFRM netlink del kernel de Linux. Demuestra abuso de espacios de nombres y ROP del kernel para obtener root sin sudo.

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
2hace 8 mesesAún no revisado

CVE-2017-7184 – Escalada de Privilegios en el Kernel de Linux XFRM (Sin Sudo)

Resumen

Este repositorio contiene un exploit de prueba de concepto para escalada de privilegios local de la CVE-2017-7184, una vulnerabilidad del kernel de Linux en el subsistema XFRM (IPsec) de netlink.

El exploit demuestra cómo un usuario sin privilegios puede obtener root real (UID 0) mediante:

  1. Crear un espacio de nombres de usuario + red sin privilegios

  2. Obtener CAP_NET_ADMIN dentro del espacio de nombres

  3. Provocar un desbordamiento de pila del kernel en el manejo de netlink XFRM

  4. Ejecutar una cadena ROP del kernel para llamar a:

    • prepare_kernel_cred(NULL)
    • commit_creds()
  5. Volver de forma segura al espacio de usuario con privilegios root completos

No se requiere sudo.


Detalles de la Vulnerabilidad

CampoValor
CVECVE-2017-7184
ComponenteLinux Kernel – XFRM Netlink
Tipo de errorDesbordamiento de pila del kernel
ImpactoEscalada de privilegios local
Vector de ataqueLocal (usuario sin privilegios)
Clase de exploitAbuso de espacios de nombres + ROP
Primeras versiones afectadasNúcleos de Linux ≤ 4.8
Corregido enParches del kernel publicados en 2017

Estrategia de Explotación (Nivel Alto)

  1. Espacio de nombres de usuario sin privilegios

    • Usa unshare(CLONE_NEWUSER | CLONE_NEWNET)
    • Mapea el usuario actual → UID 0 dentro del espacio de nombres
    • Otorga CAP_NET_ADMIN sin sudo
  2. Abuso de XFRM Netlink

    • Crea un socket NETLINK_XFRM
    • Envía un mensaje malformado XFRM_MSG_NEWSA
    • Provoca un desbordamiento de pila del kernel mediante atributos de tamaño excesivo
  3. Ejecución ROP del Kernel

    • Sobrescribe la pila del kernel
    • Ejecuta una cadena ROP controlada
    • Eleva las credenciales en el contexto del kernel
  4. Retorno al Espacio de Usuario

    • Usa swapgs; iretq
    • Abre una shell root interactiva

Requisitos

  • Kernel de Linux vulnerable (probado en 4.8.0-36-generic)
  • unprivileged_userns_clone = 1
  • Símbolos del kernel disponibles o offsets conocidos
  • gcc con soporte para pthread

Comprueba el soporte de espacios de nombres:

cat /proc/sys/kernel/unprivileged_userns_clone

Salida esperada:

1

Compilación

gcc exploit.c -o exploit -pthread

Ejecución

./exploit

No uses sudo.

Si tiene éxito, obtendrás una shell root real:

uid=0(root) gid=0(root) groups=0(root)

Resolución de Direcciones del Kernel

El exploit intenta:

  1. Filtrar símbolos de /proc/kallsyms

  2. Si está restringido, usar offsets hardcodeados para:

    • commit_creds
    • prepare_kernel_cred
    • la base del kernel

⚠️ Los gadgets ROP y los offsets son específicos de la versión del kernel. Debes ajustarlos para otras compilaciones.


Resultados Esperados

Exploit Completamente Exitoso

  • UID = 0
  • GID = 0
  • Shell root interactiva

Éxito Parcial (Sigue Vulnerable)

  • La creación del espacio de nombres funciona
  • La creación del socket XFRM tiene éxito
  • El payload de desbordamiento se envía
  • Caída del kernel o ausencia de escalada de privilegios

Esto todavía confirma que el sistema es vulnerable.


Limitaciones

  • Gadgets ROP hardcodeados (específicos del kernel)
  • Sin bypass de KASLR más allá de kallsyms
  • Sin bypass de SMEP/SMAP para kernels endurecidos
  • No es fiable en kernels modernos

Mitigación

  • Actualizar el kernel a una versión parcheada
  • Deshabilitar los espacios de nombres de usuario sin privilegios:
sysctl -w kernel.unprivileged_userns_clone=0
  • Activar KASLR, SMEP, SMAP
  • Restringir las capacidades de netlink

Aviso Legal

Este código se proporciona únicamente con fines educativos y de investigación en seguridad.

  • No lo uses en sistemas que no te pertenezcan o para los que no tengas permiso de prueba
  • El autor no asume ninguna responsabilidad por el mal uso o los daños
  • Está pensado para aprender técnicas de explotación del kernel

Referencias

  • CVE-2017-7184
  • Subsistema XFRM del Kernel de Linux
  • Escalada de privilegios mediante espacios de nombres de usuario
  • ROP en el kernel y explotación de commit_creds
Descargar herramienta