Seguridad

DLL Hijacking y WinSxS

En el año 2023, según un estudio publicado por Qualys, se registraron un total de 26,447 vulnerabilidades, mercando un hito como el año con la mayor cantidad de vulnerabilidades publicadas en la historia. Con el objetivo de comenzar el 2024 con una conciencia renovada sobre la importancia de la seguridad cibernética, es crucial estar al tanto de las nuevas amenazas que han surgido.

A pesar de que el secuestro de DLL es una vulnerabilidad de larga data, un reciente estudio de SecurityJoes ha identificado una nueva variación de esta técnica. Esta variante aprovecha los binarios presentes en la Carpeta WinSxS, lo que amplía las posibilidades para potenciales atacantes.

Carpeta WinSxS:

La carpeta WinSxS es un componente crítico del sistema, ya que es donde Windows almacena los archivos de las actualizaciones que se instalan, las copias de seguridad y puntos de restauración que el equipo genera automáticamente cada vez que se instala una nueva aplicación. Es por eso que el contenido de esta carpeta suele aumentar con el tiempo, ampliando así la superficie de ataque. Suele estar localizado en el directorio “C:WindowsWinSxS”.

Bibliotecas de Vínculos Dinámicos (DLL):

Las DLLs son archivos que contiene código ejecutable y partes de software que se pueden usar por diferentes aplicaciones al mismo tiempo. Estos archivos, en el ecosistema de Windows, permiten la reutilización de funciones y recursos por diferentes programas sin necesidad de replicar el código, lo que optimiza el uso de memoria y facilita el desarrollo de software.

El secuestro de DLL capitaliza el método natural por el cual los programas de Windows buscan y acceden a las Bibliotecas de Vínculos Dinámicos (DLL). Este proceso sigue un orden específico para localizar las DLLs requeridas:

1. El directorio desde donde se ejecuta la aplicación

2. La carpeta C: Windows Syste m32

3. La carpeta C: Windows Syste m

4. La carpeta C: Windows

5. El directorio de trabajo actual

6. Directorios listados en la variable de entorno PATH del sistema.

7. Directorios listados en la variable de entorno PATH del usuario.

Cuando un atacante logra cargar una DLL maliciosa con el mismo nombre que una biblioteca dinámica legítima y esta versión maliciosa se encuentra antes en la secuencia de búsqueda que la versión auténtica, la aplicación carga la DLL maliciosa. Esto puede conducir a la ejecución de código arbitrario, lo que permite al atacante realizar acciones como el establecimiento de un “reverse shell”, proporcionándole acceso remoto no autorizado al sistema comprometido. Windows, en su configuración por defecto, no realiza una verificación de autenticidad de las DLLs antes de cargarlas.

Comparado con los métodos tradicionales que implican subir un archivo ejecutable malicioso, en este caso se aprovechan varios ejecutables maliciosos presentes en la carpeta WinSxS para el secuestro de DLL. Esta técnica evita la escalada del privilegio para poder inyectar código malicioso, ya que se utilizan recursos legítimos del sistema. una ventaja adicional de este nuevo enfoque es que es más susceptible de pasar desapercibida por antivirus del sistema y que salten alerta sobre ello, ya que se emplean ejecutables legítimos del sistema para llevar a cabo acciones maliciosas, lo que reduce la posibilidad de detección al generar menos actividad sospechosa.



Si os ha parecido un tema interesante os dejamos un enlace sobre cómo evadir AMSI haciendo uso de DLL Hijacking y por si queréis repasar conceptos básicos sobre DLL Hijacking también podéis hacerlo.


Xuquiang Liu Xu, Pentester Jr. at Zerolynx.


Powered by WPeMatico

Gustavo Genez

Informático de corazón y apasionado por la tecnología. La misión de este blog es llegar a los usuarios y profesionales con información y trucos acerca de la Seguridad Informática.