Daniel Petri | Director de Formación

En los entornos Active Directory (AD), los objetos de directiva de grupo (GPO) se pueden utilizar para configurar scripts de inicio de sesión. Estos scripts pueden ser potentes herramientas para gestionar y automatizar el proceso de inicio de sesión para usuarios y equipos en el entorno AD. Puede asignar y colocar dichos scripts en cualquier GPO de la organización. Una organización grande puede tener decenas o incluso cientos de GPO, cada uno de los cuales contiene uno o más scripts de inicio de sesión, cierre de sesión, arranque y apagado, y juntos se pueden utilizar para controlar muchos aspectos de los perfiles de los usuarios, las aplicaciones y la configuración del escritorio y mucho más.

Pero, como ocurre con la mayoría de las ventajas de Active Directory, hay un inconveniente.

A medida que su entorno de AD evoluciona y cambia con el tiempo, aumenta la complejidad de los GPO asignados a dominios, sitios o unidades organizativas (OU). Con el tiempo, y a medida que se añaden más objetos y más manos tocan el entorno de AD, lo que antes era una estructura de GPO bien documentada y supervisada puede volverse difícil de gestionar, evaluar y controlar. Los ciberatacantes lo saben y se aprovechan de los scripts de inicio de sesión mal mantenidos.

¿Qué son los scripts de inicio de sesión de GPO?

Los scripts de inicio de sesión de GPO son una serie de comandos o instrucciones que se ejecutan automáticamente cuando un usuario inicia sesión en un equipo. Puede utilizar estas secuencias de comandos para asignar unidades de red, asignar impresoras, ejecutar aplicaciones específicas y realizar otras tareas necesarias durante el proceso de inicio de sesión.

Para configurar un script de inicio de sesión de GPO, primero debe crear un nuevo GPO o editar un GPO existente que se aplique a los usuarios o equipos que desea configurar. Después de vincular el GPO en el nivel de dominio, sitio u OU correspondiente, puede utilizar la aplicación Editor de directivas de grupo para especificar el script que desea ejecutar. Una vez configurado un GPO con el script de inicio de sesión adecuado, se aplica a todos los usuarios o equipos a los que se dirige el GPO.

Los scripts no se limitan al proceso de inicio de sesión. También puede asignar scripts de cierre de sesión que se ejecutan cuando un usuario cierra la sesión de su ordenador. Del mismo modo, puede asignar scripts de arranque o apagado que se ejecutan cuando el equipo se reinicia o se apaga, respectivamente. Este artículo trata específicamente de los scripts de inicio de sesión, pero el mismo concepto se aplica a todos los tipos de scripts asignados por GPO.

¿Cómo funcionan los scripts de inicio de sesión?

Cada GPO tiene un archivo scripts.ini asociado. Este archivo es básicamente un archivo de configuración que se crea automáticamente cuando se crea un GPO en AD. El archivo se utiliza para almacenar información sobre los scripts que se asignan al GPO, incluida la ruta en la que reside el script en el disco y si debe ejecutarse durante el proceso de inicio de sesión, cierre de sesión, arranque o apagado.

El archivo scripts.ini se almacena en la carpeta SYSVOL de cada controlador de dominio (DC) y se replica en todos los DC del dominio. Cuando un usuario inicia sesión en un equipo unido a un dominio, se lee el archivo scripts.ini de cada GPO relevante para determinar qué scripts deben ejecutarse.

El archivo scripts.ini proporciona una ubicación central para almacenar información sobre los scripts asignados a un GPO. Esto facilita la gestión y actualización de scripts en varios GPO y ayuda a garantizar que se ejecuten los scripts correctos durante el proceso de inicio de sesión.

Para configurar un script de inicio de sesión de GPO:

  1. Abra el Editor de directivas de grupo.
  2. Vaya a la sección Configuración de usuarios o Configuración de equipos, dependiendo de si desea aplicar el script de inicio de sesión a los usuarios o a los equipos.
  3. Vaya a la sección Configuración de Windows.
  4. Seleccione Scripts (Logon/Logoff).
  5. Especifique la ruta al script que desea ejecutar durante el proceso de inicio de sesión.

Cada vez que un usuario inicia sesión en un equipo al que afecta el GPO, se ejecuta automáticamente el script correspondiente, en función del tipo y la asignación del script. Un script de inicio de sesión se ejecuta en cualquier equipo en el que el usuario inicie sesión; un script de arranque se ejecuta independientemente del usuario que inicie sesión en el equipo (dependiendo de cómo haya asignado el GPO).

Scripts de inicio de sesión y seguridad de AD

Las vulnerabilidades de seguridad de las directivas de grupo son un riesgo común para las organizaciones que utilizan AD. Los encuestados en nuestro informe Purple Knight más reciente informaron de una puntuación global de la seguridad de las directivas de grupo de tan sólo 63, una calificación apenas aprobatoria. Dada la influencia potencial que los scripts de inicio de sesión tienen sobre los equipos, usuarios, activos, servicios, aplicaciones y datos de la organización, es crucial garantizar su seguridad e integridad.

Supervisar la seguridad de los scripts de inicio de sesión requiere enumerar todos los GPO, analizarlos y encontrar las rutas de los scripts de inicio de sesión. Para minimizar el riesgo de accesos no autorizados y posibles brechas de seguridad, es necesario verificar que los scripts de inicio de sesión estén bien formados, supervisados y colocados en rutas seguras.

Los atacantes que obtienen permiso para modificar un script de inicio de sesión pueden manipular el script para crear nuevos archivos en las rutas del script. De este modo, pueden colocar malware en la ruta, lo que no sólo lleva a la destrucción de datos o al cifrado para pedir un rescate, sino también a una presencia persistente en las máquinas objetivo. Dicha persistencia permite a los atacantes obtener acceso a sus sistemas incluso después de un reinicio.

¿Qué hay que tener en cuenta al evaluar las secuencias de comandos de inicio de sesión? Como punto de partida, determine:

  • Si algún usuario SID no conocido (como los usuarios que no son miembros del grupo Administradores de dominio) tiene permisos para la ruta del script.
  • A qué OU se aplica el GPO
  • Qué parámetros de herencia o aplicación se aplican al GPO

Además, compruebe el scripts.ini en cada GPO y el conjunto de permisos en la ruta.

La supervisión regular y continua de todos los scripts de inicio de sesión es esencial para la seguridad de AD. Para facilitar esta tarea, puede utilizar herramientas como Purple Knight o Semperis Directory Services Protector (DSP). Estas herramientas pueden enumerar todos los GPOs, analizarlos, encontrar todos los scripts que los GPOs configuran y examinar las rutas de los scripts, para luego mostrar esta información en un informe generado.

Mitigación del riesgo de los scripts de inicio de sesión

Para mitigar el riesgo asociado a los scripts de inicio de sesión:

  1. Examine el informe de GPO y las conclusiones resumidas.
  2. Elimine los scripts innecesarios de los GPO de su entorno.
  3. Realice los cambios necesarios en los permisos asignados a las rutas y nombres de archivo indicados.
  4. Vuelva a escanear el entorno de AD para determinar si se requieren cambios adicionales.

Mitigación del riesgo del script de inicio de sesión mediante Purple Knight

La figura 1 muestra los resultados de un análisis de Purple Knight que detectó varios problemas en los scripts de inicio de sesión de GPO y sus rutas.

Exploración de Purple Knight, que muestra problemas con el script de inicio de sesión de GPO
Figura 1. Exploración de Purple Knight, que muestra problemas con el script de inicio de sesión de GPO

El informe muestra los GPO que asignaron los scripts, si el archivo existe y si algún SID no conocido tiene asignado algún permiso que deba examinarse.

Mitigación del riesgo del script de inicio de sesión utilizando DSP

La figura 2 muestra un informe de exploración de DSP .

Exploración de DSP, que muestra problemas con el script de inicio de sesión de GPO
Figura 2. Exploración de DSP, que muestra problemas con el script de inicio de sesión de GPO

Este informe explica el concepto en que se basan los indicadores, los resultados del análisis y las medidas correctoras propuestas.

Seguridad de AD: una tarea constante

Independientemente de cómo elija supervisar los scripts de inicio de sesión de los GPO, debe analizar AD con regularidad para asegurarse de que no se han realizado cambios no autorizados en los permisos y de que no se han añadido scripts no controlados a los GPO. Añadir esta tarea a su lista de tareas pendientes puede salvar a su organización del dolor de un ciberataque exitoso.

Más información sobre seguridad de AD