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
DirtyClone — DirtyClone - prueba de concepto de escalada de privilegios local (LPE) dirigida a una vulnerabilidad relacionada con el kernel/XFRM descrita en la fuente como CVE-2026-43503 | Kitploit
Herramientas/GitHubGitHub/gl1tch0x1/dirtyclone
Escalada de PrivilegiosExplotaciónShellcodeCriptografíaDesarrollo de PayloadsExplotación de Binarios
GitHubgl1tch0x1/dirtyclone

DirtyClone

DirtyClone - prueba de concepto de escalada de privilegios local (LPE) dirigida a una vulnerabilidad relacionada con el kernel/XFRM descrita en la fuente como CVE-2026-43503

Ver Repositorio
21hace 1 mesAú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

DirtyClone

DirtyClone es una herramienta de escalada de privilegios local de diagnóstico y prueba de concepto escrita en C. Apunta a una ruta de explotación relacionada con kernel/XFRM descrita en la fuente como CVE-2026-43503 y está destinada únicamente a investigación de seguridad autorizada en entornos controlados.

Resumen

Este repositorio contiene:

  • dirtyclone.c – la implementación completa del exploit
  • README.md – guía de uso y entorno

La implementación actual realiza los siguientes pasos de alto nivel:

  • crea espacios de nombres de usuario y red aislados,
  • configura la red de loopback y el estado/políticas XFRM/IPsec,
  • construye un payload ESP usando cifrado AES-CBC,
  • intenta la entrega a través de una ruta UDP basada en TEE y un fallback IP sin procesar,
  • espera a que se parchee la caché de páginas del binario SUID objetivo,
  • ejecuta el binario objetivo si la caché de páginas se modifica.

Aviso importante

Esta herramienta está destinada únicamente a pruebas de seguridad autorizadas. Ejecutarla en sistemas sin permiso explícito puede ser ilegal y afectar la integridad del sistema.

Compilación

Primero instale el paquete de desarrollo de OpenSSL necesario:

root@kitploit:~
# Debian/Ubuntu
sudo apt-get install libssl-dev

# Fedora
sudo dnf install openssl-devel

# Arch Linux
sudo pacman -S openssl

Luego compile el binario:

root@kitploit:~
gcc -o dirtyclone dirtyclone.c -lcrypto -Wall -O2

Uso

Ejecute el programa con:

root@kitploit:~
./dirtyclone

Argumentos opcionales:

root@kitploit:~
./dirtyclone -q    # modo silencioso
./dirtyclone -v    # modo verboso (predeterminado)
./dirtyclone -h    # mostrar ayuda

Qué hace el programa

En tiempo de ejecución el programa:

  1. imprime un banner y comprueba si ya se está ejecutando como root;
  2. verifica los detalles del kernel y la arquitectura, e informa si el sistema parece coincidir con el rango vulnerable;
  3. configura los espacios de nombres y la red loopback;
  4. configura estados/políticas XFRM e intenta añadir una regla netfilter TEE;
  5. mapea el binario SUID objetivo en memoria e imprime un resumen PoC de los bytes originales frente a los esperados;
  6. envía un paquete ESP usando UDP+TEE o un fallback IP sin procesar;
  7. espera a que la caché de páginas refleje los bytes inyectados y luego intenta ejecutar el binario objetivo.

Cómo funciona DirtyClone

El exploit se basa en una idea simple: el programa prepara un payload ESP/XFRM manipulado que hace que el kernel descifre datos en una región de memoria respaldada por caché de páginas, y luego comprueba si los bytes en el binario SUID objetivo han cambiado.

En términos prácticos, el programa realiza las siguientes acciones:

  • identifica un archivo objetivo, /usr/bin/su, y lo mapea en memoria;
  • prepara un payload pequeño que contiene bytes de shellcode y los metadatos ESP necesarios;
  • cifra el payload con AES-CBC para que pueda introducirse en la ruta XFRM/ESP;
  • envía el paquete a través de la pila de red local usando UDP asistido por TEE o un fallback IP sin procesar;
  • monitorea la región mapeada para detectar la aparición de los bytes esperados;
  • si aparecen los bytes, asume que la ruta de explotación ha alterado la caché de páginas y ejecuta la ruta objetivo parcheada.

Este es un flujo de prueba de concepto, no un marco de escalada de privilegios de propósito general. Está diseñado para demostrar el mecanismo del exploit y ayudar a verificar si un kernel objetivo aún expone el comportamiento vulnerable.

Ejemplo de implementación ficticia

El siguiente ejemplo simplificado muestra el mismo concepto a alto nivel:

root@kitploit:~
#include <stdio.h>
#include <string.h>

static int dummy_exploit(unsigned char *target_bytes) {
    unsigned char expected[] = {0x31, 0x0f, 0x05};
    memcpy(target_bytes, expected, sizeof(expected));
    return 0;
}

int main(void) {
    unsigned char target[16] = {0};
    dummy_exploit(target);
    printf("Patched bytes: %02x %02x %02x\n", target[0], target[1], target[2]);
    return 0;
}

El proyecto real usa el mismo principio, pero empaqueta el payload como un paquete estilo ESP/XFRM y conduce la ruta del kernel a través de la pila de red en lugar de una simple copia de memoria.

Guía de explotación

  1. Fase de configuración

    • el programa crea espacios de nombres para aislar el entorno del proceso;
    • configura la red loopback para que los paquetes se mantengan locales.
  2. Preparación de XFRM

    • el exploit añade estados y políticas XFRM que le dicen al kernel cómo procesar tráfico ESP;
    • también intenta instalar una regla TEE para que el tráfico pueda redirigirse a través de la ruta prevista.
  3. Construcción del payload

    • el código construye un payload de texto plano pequeño que contiene bytes de estilo shellcode;
    • el payload se cifra con AES-CBC usando una clave de prueba estática.
  4. Fase de entrega

    • el programa envía el paquete ESP manipulado sobre UDP o IP sin procesar;
    • el kernel procesa el paquete y, en un sistema vulnerable, escribe los datos descifrados de vuelta en la región de caché de páginas del binario objetivo.
  5. Verificación y ejecución

    • el código observa los bytes del archivo objetivo y comprueba si coinciden con los bytes de shellcode esperados;
    • si coinciden, intenta ejecutar el binario objetivo y ceder el control a la ruta del payload inyectado.

Detalles técnicos

La implementación incluye:

  • lógica de reintento adaptativa mientras se esperan cambios en la caché de páginas,
  • rutinas de limpieza registradas mediante atexit y manejadores de señales,
  • ejecución segura de comandos basada en fork/execvp,
  • cifrado AES-CBC usando las API EVP de OpenSSL,
  • shellcode consciente de la arquitectura para x86_64 y AArch64,
  • lógica de entrega dual tanto para UDP asistido por TEE como para transporte IP sin procesar.

Prerrequisitos

La fuente espera un entorno Linux con:

  • GCC o Clang,
  • encabezados y bibliotecas de desarrollo de OpenSSL,
  • ip, iptables y modprobe disponibles en el sistema,
  • un binario objetivo en /usr/bin/su,
  • un kernel que pueda ser vulnerable a la ruta de explotación descrita.

Comportamiento esperado

El programa está diseñado para mostrar un resumen PoC de diagnóstico y luego:

  • parchear con éxito la caché de páginas y ejecutar el binario objetivo, o
  • fallar limpiamente si el kernel está parcheado o la ruta de explotación no está disponible.

Si el exploit no se dispara, el programa imprime un mensaje claro sugiriendo que el kernel probablemente está parcheado.

Seguridad y ética

Use este proyecto solo cuando:

  • sea el propietario del sistema objetivo,
  • tenga autorización explícita para probarlo,
  • esté operando en un laboratorio o entorno aislado.

Nunca ejecute este código en sistemas de producción o sistemas para los que no tenga permiso de evaluación.

Licencia y autoría

El encabezado de la fuente identifica al autor como MrAashish0x1 (gl1tch0x1). El repositorio no incluye un archivo de licencia separado, por lo que el código debe tratarse como material de investigación, no como software de producción.

Descargar herramienta