Anecdotario

El anecdotario que puede extraerse de cada auditoria de seguridad que realizamos es siempre muy variado. Esto no es más que una pequeña solución a un problema encontrado en una de ellas.

Pongámonos en situación. El cliente utiliza una infraestructura formada por Thin Clients. Las medidas de seguridad implantadas en la red, principalmente a través de directivas de Active Directory, son altamente restrictivas.

Entre otras muchas limitaciones, nos encontramos con un escenario en el cual no se permite el acceso a varias zonas del sistema, se filtran la mayoría de conexiones a Internet a través de listas blancas en el proxy, no se puede montar unidades de almacenamiento externo y no se permite la ejecución de la mayoría de los ficheros ejecutables conocidos. Señalar además que todas las directivas aplicadas a través de AD dificultan mucho el análisis de seguridad, y por tanto una posible intrusión. Administradores de sistemas Windows: ¡ánimo! ¡Aplicad Directivas de Seguridad! ¡Funcionan! ;)

Pero como no hay nada perfecto, a esta última barrera que consiste en el bloqueo de ejecutables pudimos encontrarle un pequeño agujero. Para llevar a cabo algunas tareas automáticas durante el inicio y el final de cada sesión de usuarios, se permite la ejecución de scripts en Visual Basic Script, siempre con los permisos del usuario que iniciara la sesión.

Este escenario facilitó que pudiéramos crear un sencillo script el cual permitía la ejecución de código en el CMD del servidor remoto y obtener información del mismo, siempre dependiendo de los permisos del usuario.

El script es tan simple como el siguiente:

Dim objShell
Set objShell = WScript.CreateObject ("WScript.shell")
Set oExec = objShell.Exec("ipconfig /all")
WScript.Echo oExec.StdOut.ReadAll()
Set objShell = Nothing

Véase que como ejemplo hemos puesto el comando que muestra información de las interfaces de red del sistema. Éste puede ser sustituido por aquel que interese.

Aquí también nos encontramos con algunas restricciones a la hora de generar este script. Por ejemplo, no permitía el uso de la función Run pero si fue posible utilizar Exec. La diferencia fundamental entre ambas es que la primera realiza una llamada a CMD y la segunda ejecuta directamente la aplicación, lo que conlleva que Exec permita respuesta en tiempo real al usuario si se trata de una aplicación en linea de comando (más información). Por otra parte, tampoco pudimos hacer uso de los componentes WMI (Windows Management Instrumentation).

Como es lógico, a los administradores se les aconsejó eliminar los ejecutables VBS de su lista blanca y se les recomendaron otras alternativas para llevar a cabo las tareas que estos scripts realizan.

No soy experto en Active Directory y he consultado a compañeros si podríamos permitir la ejecución de un tipo de fichero al inicio de sesión pero no durante el resto de la misma. Parece ser que, en principio, no existe directiva para ello, pero estamos seguros de que varios de nuestros lectores tienen la solución ahora mismo en la cabeza.

Esperamos vuestros comentarios.