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/neuschaefer/cve-2016-0728-testbed
Análisis de VulnerabilidadesExplotaciónAprendizaje y EducaciónExplotación de Binarios
GitHubneuschaefer/cve-2016-0728-testbed

cve-2016-0728-testbed

Un banco de pruebas para CVE-2016-0728, un error de fuga/desbordamiento del contador de referencias en Linux

Ver Repositorio

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
51hace 10 añosAún no revisado

Banco de pruebas CVE-2016-0728

Este repositorio contiene un programa de prueba para CVE-2016-0728, un fallo de fuga de contador de referencias (refcount leak) y desbordamiento en Linux que conduce a un use-after-free.

El fallo fue encontrado y explicado por Perception Point. No estoy afiliado a ellos.

Uso

root@kitploit:~
Welcome to the CVE-2016-0728 testbed
sizeof(struct msg_msg) == 0x30, sizeof(struct key) == 0xb8

PID: 27673, UID: (1000/1000)
Keyring: 1b66e5d6, "test-1a328d6e"
Usage:   1
Press a key: (f)ork (i)ncref (a)uto-incref (r)evoke (h)eap-spray (s)hell (q)uit

En mi sistema de prueba, se podía obtener un shell de root de la siguiente manera:

  1. Lleva el contador de referencias hasta -2; Si incrementas la referencia demasiadas veces, probablemente provocarás un fallo del kernel.
  2. Haz fork dos veces para desbordarlo, de modo que el recolector de basura de claves libere el llavero (keyring)
  3. Rocia el montón (heap) con llaveros falsos
  4. Ejecuta revoke
  5. execl("/bin/sh", "sh", NULL)

Me resultó útil ejecutar watch -n0.1 cat /proc/keys para ver qué está sucediendo.

Portabilidad

Este código solo se ha probado en x86-64, pero debería funcionar en otras arquitecturas también, porque no utilicé offsets mágicos, sino que copié las definiciones de las estructuras de los encabezados de Linux y usé sizeof (excepto que hardcodeé las direcciones de prepare_kernel_cred y commit_creds).

Descargar herramienta