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
COPY-FAIL — Copy Fail - CVE-2026-31431 - Implementación robusta en C para operaciones de redteam y pruebas de penetración autorizadas. ⚠️ Aviso legal: Esta herramienta está destinada exclusivamente a investigaciones de seguridad autorizadas, pruebas de penetración autorizadas y análisis defensivo. Úsela en sistemas que posea o para los cuales tenga permiso explícito por escrito para realizar pruebas. El acceso no autorizado a sistemas informáticos es ilegal. | Kitploit
Herramientas/GitLabGitLab/toxy4ny/copy-fail
Escalada de PrivilegiosExplotaciónPost-ExplotaciónComando y ControlRed TeamingDesarrollo de PayloadsExplotación de Binarios
GitLabtoxy4ny/copy-fail

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

Copy Fail - CVE-2026-31431 - Implementación robusta en C para operaciones de redteam y pruebas de penetración autorizadas. ⚠️ Aviso legal: Esta herramienta está destinada exclusivamente a investigaciones de seguridad autorizadas, pruebas de penetración autorizadas y análisis defensivo. Úsela en sistemas que posea o para los cuales tenga permiso explícito por escrito para realizar pruebas. El acceso no autorizado a sistemas informáticos es ilegal.

COPY-FAIL

Ver RepositorioSitio web
19hace 2 mesesAún no revisado
Compartir

Copy Fail -- CVE-2026-31431

Implementación robusta en C para operaciones de redteam y pruebas de penetración autorizadas.

⚠️ Aviso legal: Esta herramienta está destinada exclusivamente para investigación de seguridad autorizada, pruebas de penetración autorizadas y análisis defensivo. Úsela únicamente en sistemas que posea o para los cuales tenga permiso explícito por escrito. El acceso no autorizado a sistemas informáticos es ilegal.

🚀 El desarrollo principal se ha trasladado a GitLab.
Este repositorio se mantiene activamente aquí. Para incidencias y contribuciones, use GitLab.


Tabla de Contenidos

  • Visión General
  • Investigación Original
  • Nuestras Mejoras
  • Arquitectura
  • Compilación
  • Uso
  • Módulos
  • Seguridad Operativa
  • Detección y Mitigación
  • Créditos
  • Licencia

Visión General

Este proyecto es una versión robusta y lista para producción en C del exploit de escalada de privilegios local CVE-2026-31431 ("Copy Fail"), divulgado originalmente por Theori y Xint el 29 de abril de 2026.

La prueba de concepto original estaba escrita en Python y diseñada para demostración de investigación. Esta implementación lo transforma en un kit de herramientas de grado redteam con:

  • Cero artefactos en disco (ejecución sin archivos basada en memfd)
  • Descubrimiento automático de objetivos (enumeración de binarios setuid con conocimiento de MAC)
  • Antiforensia (eliminación de caché, restauración de marcas de tiempo, autodestrucción)
  • Control del operador (ejecución activada por señal con tiempos de espera configurables)
  • Compilaciones estáticas multiplataforma (x86_64, ARM64, RISC-V mediante musl/zig)

Investigación Original

CVE-2026-31431: Copy Fail

AtributoValor
Fecha de divulgación29 de abril de 2026
InvestigadoresTheori (Jinoh Kang, Yonghwi Jin, Seunghyun Lee), Xint
Artículohttps://copy.fail/
PoC originaltheori-io/copy-fail-CVE-2026-31431 (Python)
Puerto en C (base)tgies/copy-fail-c por Tony Gies
Kernels afectadosLinux 4.14 -- 6.14 (antes del commit de corrección a664bf3d603d)
GravedadCVSS 7.8 (Alta) -- Escalada de privilegios local

Mecanismo de Vulnerabilidad

La vulnerabilidad reside en el subsistema criptográfico AF_ALG del kernel de Linux. La plantilla AEAD authencesn implementa una optimización in situ para el descifrado: cuando el texto cifrado se suministra mediante splice() desde la caché de páginas de un archivo, el kernel reutiliza la misma página como origen y destino.

El flujo del ataque:

  1. Abrir un binario setuid (por ejemplo, /usr/bin/su) en modo solo lectura
  2. Configurar una operación AEAD authencesn(hmac(sha256),cbc(aes)) a través de AF_ALG
  3. Suministrar texto cifrado mediante splice() desde la caché de páginas del archivo objetivo
  4. La operación de descifrado (fallida) sobrescribe 4 bytes de la página en caché antes de que la autenticación la rechace
  5. Repetir para cada ventana de 4 bytes de la carga útil
  6. execve() el objetivo -- el kernel carga páginas mutadas desde la caché, otorga credenciales setuid-root
  7. La carga útil pivota a un shell root completo

Punto clave: El inodo en disco nunca se modifica. Solo se muta la caché de páginas en memoria, lo que hace que la detección forense sea significativamente más difícil que en exploits tradicionales de sobrescritura de archivos.


Nuestras Mejoras

Este proyecto amplía la investigación original con endurecimiento orientado a redteam en nueve módulos.

1. Primitiva de Exploit Endurecida (patch_chunk.c)

CaracterísticaOriginalNuestra Implementación
Gestión de socketsSocket nuevo por fragmentoReutilización de socket (~60% menos llamadas al sistema)
VerificaciónNingunammap + memcmp con reintento automático (3 intentos)
Escrituras paralelasSolo secuencialesParalelas basadas en fork (hasta 16 procesos)
Códigos de errorÉxito/fracaso binarioGranulares: 0=verificado, 1=kernel parcheado, -1=fallo fatal
Asignaciones de heapmalloc en ruta críticaSolo pila (sin fluctuación de asignación)

2. Descubrimiento Automático de Objetivos (target_discovery.c)

  • Escaneo en tres fases: objetivos prioritarios → directorios estándar → escaneo profundo
  • Puntuación consciente de MAC: penaliza binarios con perfiles de AppArmor/SELinux
  • 18 objetivos prioritarios: su, sudo, passwd, pkexec, mount, ping, etc.
  • Cadena de respaldo: si falla el objetivo principal, selecciona automáticamente el siguiente mejor candidato
  • Conciencia de Snap: omite /snap (setuid no tradicional)

3. Suite Antiforensia (anti_forensics.c)

TécnicaPropósito
posix_fadvise(POSIX_FADV_DONTNEED)Expulsión de caché de páginas por archivo
echo 3 > /proc/sys/vm/drop_cachesEliminación global de caché (post-root)
utimensat() timestompRestaurar atime/mtime original
AutodestrucciónSobrescribir binario dropper con ceros antes de exec
Borrado de memoriaPuesta a cero volatile de búferes sensibles

4. Ejecución Sin Archivos (memfd_exec.c)

  • memfd_create + fexecve: ejecutar sin ruta de sistema de archivos
  • Camuflaje: memfd nombrado como kworker, anon_inode, eventfd (se mezcla en /proc/$pid/fd/)
  • Fork-and-forget: doble fork para crear proceso huérfano (PPID=1)
  • Descifrado en memoria: XOR y RC4 descifrar-luego-ejecutar (la carga útil nunca está en texto plano en disco)

5. Entrega de Carga Útil Etapa-1 (stage1.c)

CanalSigiloVelocidadPrioridad de Respaldo
IncrustadoMáximoInstantáneoÚltimo (airgap)
HTTP directoMedio<1sPrimero
curl/wget del sistemaBajo1-3sSegundo (soporte HTTPS)
DNS TXTAltoLentoTercero (bypass de firewall)

6. Implante C2 Etapa-2 (stage2_template.c)

  • Bucle de reconexión resiliente con retroceso exponencial
  • Tres distribuciones: uniforme, triangular, jitter exponencial
  • Control por señales: SIGUSR1 (disparar), SIGUSR2 (estado), SIGTERM (apagar)
  • Beaconing DNS: verificación de estado C2 sigilosa antes de conexión TCP
  • Suplantación de proceso: [kworker/N:0] en ps/top

7. Ocultación de Procesos (proc_hide.c)

  • Sobrescritura de argv[0]: reemplazo in situ de /proc/$pid/cmdline
  • prctl(PR_SET_NAME): nombres tipo hilo de kernel (límite de 16 bytes)
  • Sanitización de entorno: borrado selectivo de SSH_*, AWS_*, TOKEN*, etc.
  • Desvinculación de padre: setsid() + setpgid() para independencia de terminal

8. Control de Disparo por Señal (signal_trigger.c)

ModoComportamientoCaso de Uso
trigger_oneshot()Dormir → disparar → ejecutar → salirGolpe y fuga
trigger_daemon()Dormir → disparar → ejecutar → bucleImplante persistente
trigger_auto()Dormir con respaldo de tiempo de esperaOperaciones sin supervisión

Espera de cero CPU: sigsuspend() en lugar de bucles de sondeo.

9. Jitter de Sueño (sleep_jitter.c)

Descargar herramienta