29 abr 2024

CVE-2023-4911 Looney Tunables


En el año 2023, el equipo de Qualys reportó una vulnerabilidad con una alta criticidad que afectaba a una gran cantidad de versiones de Linux. Esta consistía en una escalada de privilegios locales al aprovechar el desbordamiento del búfer en el cargador dinámico de la biblioteca GNU C (glibc). 

El cargador dinámico al procesar la variable de entorno GLIBC_TUNABLES produce este desbordamiento, y un agente malicioso podría utilizar esta variable para iniciar archivos binarios con permisos de SUID, lo que le permitiría ejecutar código con privilegios elevados. 

Para replicar esta vulnerabilidad se implementó un entorno de pruebas. En primer lugar, hay que acceder a la maquina vulnerable: 

Zerolynx: conexión por SSH a la máquina vulnerable


Para realizar la explotación se tiene que entender el POC que se proporciona. 

El cargador dinámico utiliza las variables de entorno gclib_tunables, que permiten a los desarrolladores alterar dinámicamente el comportamiento de la biblioteca en tiempo de ejecución. 

En este caso, el código busca cualquier variable gclib_tunables en las variables de entorno y las copia a una nueva variable. La vulnerabilidad surge cuando la variable contiene entradas inesperadas, ya que no son manejadas con seguridad y provocando un desbordamiento del búfer. 

Como requisito de explotación se debe contar con: 

  • Ejecución de código con privilegios limitados en un sistema vulnerable. 

PoC


Tras comprobar que es vulnerable a Looney Tunables, con la ayuda del archivo gen_libc.py, el cual en este caso se encuentra ya dentro de la máquina, la ejecutamos para generar el exploit. 

Zerolynx: Uso del archivo Gen_Libc.py


El siguiente paso es compilar el exploit utilizando GCC. El archivo que hay que compilar es el exp.c  

Zerolynx: malware ejecutable generado

Tras la ejecución de ambos comandos se habrán generado dos archivos, las POC necesarios para la explotación de la vulnerabilidad: 
  • Un ejecutable: “exp” 
  • El exploit: “lib.so.6” 

Zerolynx:. ejecución de malware

Tras la ejecución del archivo que contenía el exploit, después de un breve periodo de tiempo se puede observar como la explotación se ha completado y se ha conseguido realizar la escalada de privilegios exitosamente. 

Conclusión 

Esta vulnerabilidad en la biblioteca GNU C (glibc) subraya la importancia de una gestión segura de las variables de entorno en sistemas Linux. Para mitigar concretamente esta vulnerabilidad se debe actualizar el paquete glibc a las nuevas versiones disponibles en conjunto se debe comprobar que los cambios se han aplicado de forma satisfactoria.

Javier Muñoz, Analista de Ciberseguridad en Zerolynx
Jorge Ezequiel de Francisco, Analista de Ciberseguridad en Zerolynx.

22 abr 2024

Campaña de Malware a Notepad++




Recientemente el grupo de investigadores de AhnLab Security Intelligence Center (ASEC) han descubierto una nueva campaña de malware (WikiLoader) que afecta al popular editor de texto Notepad++. Los atacantes se esforzaron por disfrazar el archivo con la carga maliciosa, de manera que se pareciese a uno propio del paquete de instalación de la aplicación.

La técnica utilizada es la ya conocida “secuestro de DLL o DLL hijacking” y concretamente afecta al complemento predeterminado “mimeTools.dll” (se utiliza para realizar codificación en Base64 y otras tareas). Este módulo se carga automáticamente cuando se inicia el programa, por lo que, los atacantes aprovecharon este hecho para modificarlo y que activara el malware.


Flujo del ataque

Primeramente, los atacantes añadieron al paquete de instalación un código shell malicioso disfrazado como un certificado inofensivo, “Certificate.pem”. Estos modificaron una de las funciones de mimeTools.dll llamada “DllEntryPoint.dll”, permitiendo así cargar el archivo disfrazado, descifrarlo y ejecutarlo. En la siguiente imagen se puede ver la comparación de archivos entre los paquetes de instalación oficiales y maliciosos:



El código shell malicioso modifica el archivo “BingMaps.dll”, más concretamente el código de la función “GetBingMapsFactory()” es sobrescrito por este. En este punto se crea un flujo de ejecución que permite al atacante inyectar un hilo de ejecución en la aplicación “explorer.exe”, esto garantiza la persistencia del ataque y hace que sea más difícil de detectar.

El malware al ejecutarse se conecta a un Command and Control (C2) donde envía datos recopilados de la máquina (Nombre de la máquina, nombre de usuario, si el usuario es miembro del grupo de administradores, idioma y hora del sistema). Después de conectarse al C2 (se hace pasar por una página de inicio de sesión de Wordpress), se realiza una descarga de un payload que resulta estar vacío.


Conclusión

El grupo de atacantes tienen el objetivo de establecer un punto de acceso en la máquina víctima, y lo hacen aprovechándose de una herramienta tan utilizada por los usuarios como Notepad++. WikiLoader plantea un riesgo importante de privacidad, ya que recopila información sobre el sistema infectado y desde Zerolynx recomendamos seguir unas pautas que mantengan vuestros sistemas a salvo:

Descargar las aplicaciones siempre desde fuentes oficiales y confiables.

Actualizar regularmente las aplicaciones y sistemas con su última versión que contengan parches.

*Todas las fotos están obtenidas de la página oficial de ASEC, accede al siguiente enlace si quieres saber más profundamente acerca de esta vulnerabilidad.

Javier Muñoz, Analista de Ciberseguridad en Zerolynx