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/razvanduda/ghostshell
Escalada de PrivilegiosFrameworks de ExploitsAnálisis de VulnerabilidadesExplotaciónPruebas de PenetraciónRed TeamingExplotación de Binarios
GitHubrazvanduda/ghostshell

GhostShell

CVE-2026-31431 — Escalada de privilegios locales mediante corrupción de la caché de páginas del kernel de Linux

Ver Repositorio
hace 3 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

GhostShell

CVE-2026-31431 — Escalada de Privilegios Local mediante Corrupción de la Caché de Páginas del Kernel de Linux

GhostShell es una herramienta de escalada de privilegios local que explota una falla en la implementación del cifrado AEAD authencesn del kernel de Linux para obtener una shell de root desde una cuenta de usuario sin privilegios. Corrompe la caché de páginas en memoria de un binario setuid-root (p. ej. /usr/bin/su) insertando shellcode en su punto de entrada, y luego lo ejecuta — obteniendo setuid(0) + setgid(0) y lanzando una /bin/sh privilegiada. No se modifica ningún archivo en disco; solo se ve afectada la caché de páginas en memoria.

En resumen: lo ejecutas como usuario normal y te deja en una shell de root.

Descubierto y divulgado por Theori / Xint. Informe completo: copy.fail


Ejemplo de Salida

root@kitploit:~
$ ./ghostshell

  CVE-2026-31431 'Copy Fail'

  Objetivo:     /usr/bin/su
  Tamaño:       63576 bytes
  Offset de entrada: 0x1a50
  Shellcode:    94 bytes (24 iteraciones)

  [*] Comprobando si el kernel es vulnerable...
  [+] El kernel ES vulnerable.

  [*] Corrompiendo la caché de páginas de /usr/bin/su con shellcode...
  [*] Parcheando offset 0x01a50 (24/24) ...

  [*] Verificando la corrupción de la caché de páginas...
  [+] ¡Shellcode verificado en la caché de páginas!

  [*] Ejecutando binario setuid corrupto...
  [*] Si tiene éxito, ahora deberías tener una shell de root.
  [*] Sin rastro en disco. Solo fantasmas en la caché.

# id
uid=0(root) gid=0(root) groups=0(root)
# whoami
root
#

Kernels Afectados

Linux 4.14 (agosto de 2017) hasta los kernels parcheados en abril de 2026.

Mitigación — Parcheo de kmod

La solución recomendada para CVE-2026-31431 es parchear el paquete kmod (utilidades de módulos del kernel) que incluye el módulo de cifrado AEAD authencesn vulnerable. Los principales distribuidores han publicado paquetes actualizados que deshabilitan o corrigen la ruta de descifrado in-place de splice().

Parche Rápido (Debian / Ubuntu)

root@kitploit:~
# Comprobar la versión actual de kmod
modprobe --version

# Actualizar a la versión parcheada
sudo apt-get update
sudo apt-get install --only-upgrade kmod

# Verificar la actualización
modprobe --version

Parche Rápido (RHEL / Fedora / Rocky / Alma)

root@kitploit:~
# Actualizar kmod a la versión parcheada
sudo dnf update kmod

# Verificar
rpm -q kmod

Parche Rápido (Arch Linux)

root@kitploit:~
sudo pacman -Syu kmod

Verificar el Parche del Kernel

Después de parchear kmod, confirma que el módulo vulnerable authencesn ya no se puede cargar o que se ha actualizado:

root@kitploit:~
# Intentar cargar el módulo — en sistemas parcheados debería fallar o informar de la versión corregida
modinfo authencesn

# Alternativamente, comprobar que el kernel en ejecución incluye el parche de abril de 2026
uname -r   # debería ser >= la versión del kernel parcheado para tu distribución

Solución Alternativa (si el parcheo no es posible de inmediato)

Si no puedes actualizar kmod de inmediato, puedes bloquear la carga del módulo de cifrado vulnerable:

root@kitploit:~
# Bloquear el módulo authencesn
echo "install authencesn /bin/true" | sudo tee /etc/modprobe.d/disable-authencesn.conf

# También bloquear el módulo genérico authenc por si acaso
echo "install authenc /bin/true" | sudo tee -a /etc/modprobe.d/disable-authencesn.conf

# Descargarlo si está cargado (puede fallar si está en uso)
sudo modprobe -r authencesn 2>/dev/null

Reinicia después de parchear o aplicar la solución alternativa para asegurar que cualquier entrada corrupta de la caché de páginas se elimine.


Probado En

SOKernel
Ubuntu 24.04 LTS6.17.0-22-generic

⚠️ Este exploit solo se ha probado en el sistema anterior. Los resultados pueden variar en otras distribuciones o versiones de kernel.


Requisitos Previos

  • Un kernel de Linux vulnerable (ver arriba)
  • GCC (o cualquier compilador de C)
  • Cabeceras UAPI del kernel de Linux (<linux/if_alg.h>) — normalmente incluidas con linux-libc-dev
  • Una cuenta de usuario sin privilegios (no se necesita root para ejecutar el exploit)

Instala las dependencias de compilación en Ubuntu/Debian:

root@kitploit:~
sudo apt-get update
sudo apt-get install gcc linux-libc-dev

Compilación

root@kitploit:~
gcc -Wall -Wextra -o ghostshell ghostshell.c

No se requieren bibliotecas externas.


Uso

Detección automática del objetivo (comprueba binarios setuid comunes como su, sudo, passwd):

root@kitploit:~
./ghostshell

Especificar un objetivo manualmente:

root@kitploit:~
./ghostshell /usr/bin/sudo

Si el kernel es vulnerable, se te llevará a una shell de root (#).


Cómo Funciona (Resumen)

  1. Comprobación de vulnerabilidad — Crea un archivo temporal, muta sus primeros 4 bytes mediante la primitiva AEAD, lo lee de nuevo para confirmar que la caché de páginas fue modificada.
  2. Selección del objetivo — Detecta automáticamente un binario setuid-root y analiza la cabecera ELF64 para encontrar el offset del punto de entrada _start.
  3. Corrupción de la caché de páginas — Escribe 94 bytes de shellcode x86-64 en el punto de entrada, 4 bytes por llamada a patch_chunk() (24 iteraciones), usando la falla de descifrado in-place de splice() de AF_ALG.
  4. Ejecución — Llama a execl() sobre el binario corrupto. El kernel lo carga desde la caché de páginas y el shellcode se ejecuta con privilegios setuid-root, lanzando una shell de root.

Limpieza

El exploit solo corrompe la caché de páginas en memoria. Un simple reinicio la elimina por completo.

Para vaciar las cachés sin reiniciar:

root@kitploit:~
sudo sh -c 'echo 3 > /proc/sys/vm/drop_caches'

Si las páginas sucias se escribieron de vuelta al disco (poco probable pero posible), reinstala el paquete afectado:

root@kitploit:~
sudo apt-get install --reinstall util-linux   # para /usr/bin/su

Aviso Legal

Esta herramienta se proporciona solo con fines educativos y de investigación de seguridad autorizada. El uso no autorizado contra sistemas que no posees o para los que no tienes permiso explícito de prueba es ilegal. El autor no asume ninguna responsabilidad por el mal uso.


Licencia

Este proyecto está licenciado bajo la Licencia MIT.

Se otorga permiso, de forma gratuita, a cualquier persona que obtenga una copia de este software y de los archivos de documentación asociados (el "Software"), para tratar el Software sin restricción, incluidos, sin limitación, los derechos de usar, copiar, modificar, fusionar, publicar, distribuir, sublicenciar y/o vender copias del Software, y para permitir a las personas a quienes se les proporcione el Software hacerlo, sujeto a las siguientes condiciones:

El aviso de copyright anterior y este aviso de permiso se incluirán en todas las copias o partes sustanciales del Software.

EL SOFTWARE SE PROPORCIONA "TAL CUAL", SIN GARANTÍA DE NINGÚN TIPO, EXPRESA O IMPLÍCITA, INCLUIDAS, ENTRE OTRAS, LAS GARANTÍAS DE COMERCIABILIDAD, IDONEIDAD PARA UN FIN PARTICULAR Y NO INFRACCIÓN. EN NINGÚN CASO LOS AUTORES O TITULARES DEL COPYRIGHT SERÁN RESPONSABLES DE CUALQUIER RECLAMO, DAÑO U OTRA RESPONSABILIDAD, YA SEA EN UNA ACCIÓN DE CONTRATO, AGRAVIO O DE OTRO MODO, QUE SURJA DE, O EN RELACIÓN CON EL SOFTWARE O EL USO U OTROS TRATOS EN EL SOFTWARE.

Descargar herramienta