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-2024-3094 — Laboratorio educativo que replica el backdoor de XZ Utils (CVE-2024-3094) con un par de claves Ed448 personalizado. Incluye un liblzma parcheado, servicio systemd y cliente de explotación para investigación de seguridad autorizada. | Kitploit
Herramientas/GitHubGitHub/h3raklez/cve-2024-3094
Análisis de VulnerabilidadesExplotaciónAnálisis de MalwareCriptografíaPruebas de PenetraciónSeguridad de Cadena de SuministroAprendizaje y EducaciónLabs y Práctica
GitHubh3raklez/cve-2024-3094

CVE-2024-3094

Laboratorio educativo que replica el backdoor de XZ Utils (CVE-2024-3094) con un par de claves Ed448 personalizado. Incluye un liblzma parcheado, servicio systemd y cliente de explotación para investigación de seguridad autorizada.

11hace 5 mesesAún no revisado
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

CVE-2024-3094 — Puerta trasera de XZ Utils

Solo para fines educativos e investigaciones de seguridad autorizadas.

Descripción de la Vulnerabilidad

CVE-2024-3094 es una puerta trasera introducida en las versiones 5.6.0 y 5.6.1 de XZ Utils (liblzma), descubierta el 29 de marzo de 2024 por el investigador de seguridad Andres Freund. Se le asignó una puntuación CVSS de 10.0 (Crítica).

Este es un ataque a la cadena de suministro llevado a cabo durante más de dos años por un actor de amenazas conocido como "Jia Tan" (JiaT75), quien generó confianza dentro del proyecto hasta obtener el estatus de co-mantenedor e introdujo la puerta trasera directamente en los tarballs de distribución.

Mecanismo Técnico

La puerta trasera opera de la siguiente manera:

  1. La liblzma.so maliciosa engancha la función RSA_public_decrypt() en OpenSSH mediante el mecanismo IFUNC de glibc, interceptando el proceso de autenticación SSH.
  2. Cuando un cliente se conecta, la puerta trasera evalúa un campo específico en el certificado SSH presentado.
  3. Si ese campo contiene un payload cifrado con ChaCha20 y firmado con una clave privada Ed448 específica, la puerta trasera ejecuta el comando incrustado mediante system() con privilegios de sshd (root).
  4. Si la firma es inválida, sshd continúa su flujo normal sin anomalías.

Requisitos de Explotación

  • Sistema con glibc (soporte IFUNC)
  • XZ Utils 5.6.0 o 5.6.1 instalados
  • sshd iniciado desde systemd (requisito crítico — el enganche IFUNC no se activa si sshd se inicia manualmente desde la línea de comandos)
  • Sistema x86-64

Distribuciones Originalmente Afectadas

  • Fedora Linux 40 beta / Rawhide
  • Debian unstable, testing, experimental
  • Kali Linux
  • Arch Linux (imágenes entre 2024-02-24 y 2024-03-28)

Entorno de Laboratorio

Este laboratorio replica el mecanismo de la puerta trasera utilizando claves Ed448 personalizadas en lugar de las claves del actor original (que nunca se hicieron públicas).

Por Qué Usamos chroot

En los sistemas reales afectados no había chroot. La puerta trasera operaba directamente sobre el sshd del sistema, que cargaba la liblzma.so maliciosa como cualquier otra biblioteca compartida — completamente transparente para el sistema y sus administradores.

En este laboratorio usamos chroot únicamente por una razón práctica: necesitamos ejecutar un sshd con una versión específica de liblzma.so sin reemplazar las bibliotecas del sistema anfitrión. Esta es una decisión de diseño para el entorno de investigación, no un reflejo de cómo operaba la puerta trasera en producción.

Componentes

ComponenteDescripción
env_fs/Sistema de archivos mínimo de Ubuntu 22.04 usado como chroot
env_fs/usr/lib/x86_64-linux-gnu/liblzma.so.5liblzma 5.6.1 parcheada con clave Ed448 personalizada
/etc/systemd/system/xzback.serviceServicio systemd que lanza sshd vulnerable en el puerto 2024
/xzbot/xzbotCliente de explotación compilado desde el código fuente

Pila Objetivo

  • Ubuntu 22.04.1 LTS AMD64
  • glibc 2.35
  • OpenSSH 8.9p1
  • systemd 249
  • liblzma 5.6.1 (parcheada)

Modificaciones Realizadas para Este Objetivo

La puerta trasera original requiere condiciones muy específicas que no existen automáticamente en un entorno de laboratorio. Fueron necesarias las siguientes modificaciones:

1. Reemplazo de liblzma.so

La liblzma.so.5 incluida en el repositorio original de MagpieRYL usa una clave Ed448 desconocida que es inconsistente con el binario xzbot incluido. La liblzma.so.5.6.1 original y auténtica se descargó de la instantánea de Debian (sha256 verificado) y se parcheó usando patch.py de amlweems/xzbot con seed=0:

original sha256:  605861f833fc181c7cdcabd5577ddb8989bea332648a8f498b4eef89b8f85ad4
patched sha256:   ea7206ab4b0c3479ff1b478c8803adc9e7aeba243254a9f601b626ef8aa80e3d
patched offset:   0x24470

La clave pública Ed448 del actor original fue reemplazada por:

5b 3a fe 03 87 8a 49 b2 82 32 d4 f1 a4 42 ae bd
e1 09 f8 07 ac ef 7d fd 9a 7f 65 b9 62 fe 52 d6
54 73 12 ca ce cf f0 43 37 50 8f 9d 25 29 a8 f1
66 91 69 b2 1c 32 c4 80 00

2. Type=simple en el servicio systemd

El servicio original usa Type=notify, lo que requiere que sshd envíe una notificación de inicio a systemd. El sshd dentro del chroot no la envía, causando tiempos de espera. Se cambió a Type=simple.

3. Directorios chroot Efímeros

sshd requiere /run/sshd para la separación de privilegios. Este directorio no existe en el chroot y se borra en cada reinicio porque run/ es un tmpfs. Se solucionó con un ExecStartPre que lo regenera automáticamente antes de cada inicio del servicio.


Uso

Explotación desde la Misma Máquina

./xzbot -addr 127.0.0.1:2024 -cmd 'echo pwned > /tmp/result'
cat /home/user/CVE-2024-3094-backdoor-env-container/env_fs/tmp/result

Explotación desde Otra Máquina

./xzbot -addr <TARGET_IP>:2024 -cmd 'echo pwned > /tmp/result'

Ubicación de los Archivos Generados por la Explotación

El comando se ejecuta dentro del chroot, por lo que cualquier archivo creado en /tmp/ dentro del contexto de la puerta trasera se almacena en:

/home/user/CVE-2024-3094-backdoor-env-container/env_fs/tmp/

Es decir, si el comando es echo pwned > /tmp/result, el archivo se encontrará en:

/home/user/CVE-2024-3094-backdoor-env-container/env_fs/tmp/result

Para localizar cualquier archivo generado por la explotación:

find /home/user/CVE-2024-3094-backdoor-env-container/env_fs/tmp/ -type f

Nota sobre handshake failed: EOF

El mensaje ssh: handshake failed: EOF es el comportamiento esperado y correcto. La puerta trasera ejecuta el comando y cierra la conexión sin establecer una sesión SSH. No indica un fallo.


Importante

Este laboratorio usa un par de claves criptográficas personalizadas (seed=0). La liblzma.so parcheada solo acepta payloads firmados con la clave privada correspondiente, que es la utilizada por el xzbot compilado en este entorno. Cualquier otro cliente recibirá EOF sin ejecución.


Referencias

  • Divulgación original de Openwall
  • amlweems/xzbot
  • MagpieRYL/CVE-2024-3094-backdoor-env-container
  • Informe de Datadog Security Labs
  • Wikipedia — Puerta trasera de XZ Utils

Descargo de Responsabilidad

Esta herramienta se proporciona solo para fines educativos y pruebas de seguridad autorizadas. El uso no autorizado contra sistemas que no posea o para los que no tenga permiso explícito por escrito para realizar pruebas es ilegal. El autor no se responsabiliza por cualquier uso indebido.

Descargar herramienta