La biblioteca GNU C (GLIBC) sirve como biblioteca C en el sistema GNU y es parte integral de los sistemas basados en Linux. En esencia, GLIBC define las funcionalidades esenciales para los programas, incluidas las llamadas del sistema y las funciones comunes como Open, Malloc, Printf y Salida. El cargador dinámico, un componente vital de GLIBC, juega un papel clave en la preparación y ejecución de programas mediante la gestión de bibliotecas compartidas y vinculándolas en tiempo de ejecución.
Introducido para empoderar a los usuarios sin recompilación, la variable de entorno GLIBC_TUnables permite a los usuarios modificar el comportamiento de GLIBC en tiempo de ejecución. Proporciona un medio para ajustar los parámetros de rendimiento y comportamiento, afectando el inicio de la aplicación.
Una vulnerabilidad de desbordamiento del búfer en el procesamiento del cargador dinámico de GLIBC_TUnables plantea un riesgo de seguridad crítico. La explotación otorga a los atacantes locales privilegios elevados, que potencialmente conducen al acceso completo a la raíz. La explotación exitosa en las principales distribuciones como Fedora, Ubuntu y Debian subraya la gravedad y el impacto generalizado.
El uso indebido o la explotación de esta vulnerabilidad puede afectar el rendimiento, la confiabilidad y la seguridad del sistema. Si bien se retienen los detalles de exploit, el riesgo es inminente, ya que los desbordamientos del búfer pueden transformarse rápidamente en ataques de solo datos. Las distribuciones populares de Linux con GLIBC pueden ser susceptibles, enfatizando la necesidad de una rápida conciencia y mitigación.
Asignado: 3 de octubre de 2023
Tipo: escalada de privilegios locales
Versiones afectadas: GLIBC 2.34 y más tarde
Distribuciones: Rhel, Ubuntu, Fedora, Debian, Amazon Linux, Gentoo y otros que usan Mitigation Glibc
Actualización: aplique actualizaciones de GLIBC de inmediato.
Monitor: Manténgase informado sobre los avisos de seguridad.
Revisión: Evalúe el uso de GLIBC_TUnables en aplicaciones.
Auditoría: examine los registros del sistema para actividades sospechosas.
Ubuntu 22.04 Ubuntu Glibc 2.35-0ubuntu3.1 Su de Util-Linux 2.37.2 ASLR ON
Utilizado Ubuntu (versión 22.04.1) ISO para crear una máquina virtual
Después de una instalación exitosa, necesitamos no actualizar nada, pero instalaremos el paquete Git y GNU binutils porque no se encuentra en el sistema, y cuando compile el script de Python Exploit, enfrentará el error.
Mediante el uso de estos comandos:
$ sudo apt install git
$ sudo apt install binutils
Compruebe si es vulnerable
$ env -i "GLIBC_TUNABLES=glibc.malloc.mxfast=glibc.malloc.mxfast=A" "Z=`printf '%08192x' 1`" /usr/bin/su --help
Si genera
Segmentation fault (core dumped)
, entonces es vulnerable.
Verifique la versión del enlazador/cargador dinámico, a menudo asociado con la biblioteca GNU C (GLIBC)
$ ldd --version
La salida dará la versión de GLIBC
ldd (Ubuntu GLIBC 2.35-0ubuntu3.6) 2.35
Copyright (C) 2022 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Written by Roland McGrath and Ulrich Drepper.
Ahora que sabemos que nuestra máquina es vulnerable y está lista para escalar los privilegios de la raíz
Nota: No debemos instalar GCC en la máquina, si lo instalamos perderá su vulnerabilidad, por lo tanto, el script no funcionará.
Dado que no tenemos GCC instalado y necesitamos compilar el programa C en la máquina host y luego importarlo a la máquina invitada.
Podemos compilar el programa C con este comando
$ gcc exploit.c -o (outputname)
Después de importar el archivo de salida del programa C, también importe el script Python (genlib.py).
Ahora compile el script de python
$ python3 genlib.py
Después de compilar una carpeta '"'.
Haremos esto en la carpeta en /tmp para que el usuario pueda ejecutar script y programa
Ahora finalmente ejecutaremos el programa para escalar los privilegios raíz
$ ./(nameoftheprogram)
Tomará algo de tiempo y obtendrá la carcasa de la raíz.
¡Seguro para empoderar, no explotar!
Referencias: