Cambios en el grupo de administradores locales: reciba notificaciones con PowerShell
Imagínate esto. Trabaja en una empresa que se enorgullece de sus prácticas de seguridad. Tienen firewalls, sistemas IDS/IPS, realizan auditorías de seguridad de manera rutinaria, mantienen los parches actualizados y tienen un producto SIEM realmente costoso que genera alertas en el momento en que sucede algo sospechoso. Un empleado muy importante con datos muy confidenciales en su PC se dedica a sus actividades diarias. Lo llamaremos George. George decide salir a almorzar pero se olvida de bloquear su computadora. Esta es una mala práctica en sí misma, pero es aún peor ya que el público puede acceder a la PC de George si no hay nadie cerca. Aproximadamente 50 minutos después del almuerzo de George, un individuo nefasto (lo llamaremos Pete) vislumbra la PC de George justo frente a la pantalla del escritorio y decide arriesgarse.
Sabiendo que George podría regresar en cualquier momento, Pete necesita llegar rápido a la PC de George e irse lo más rápido que pueda. Mientras está en su PC, Pete hace un baile tranquilo y feliz dentro de su cabeza cuando descubre que la cuenta de dominio de George es la de un administrador local. Pete ahora tiene control total sobre esta computadora. Como Pete no conoce la contraseña de George, decide simplemente crear otra cuenta de usuario local, colocarla en el grupo de administradores y tomar el nombre de la PC. Pete se va rápidamente y ve a George regresar. Pete sabe que ahora es dueño de esa PC.
Feliz de husmear y ver qué puede hacer, Pete inmediatamente se dirige a su auto, toma su computadora portátil y se dirige al vestíbulo. Da la casualidad de que hay una conexión de red gratuita justo al lado de una silla. "Esta empresa es muy atractiva", piensa Pete. Se conecta, intenta acceder a la PC de George, se le solicitan las credenciales y ya está.
¿Ha ocurrido un escenario similar en su empresa? ¿Sabes siquiera que ha sucedido o que sucederá? Hubo muchos problemas de seguridad que ocurrieron aquí, pero uno no estaba monitoreando al grupo de administradores locales. Si esta empresa estuviera monitoreando rutinariamente a ese grupo, podrían haber sabido que se había agregado una cuenta desconocida y ahora tenían control total, pero no lo hicieron y la PC de George quedó comprometida. ¿Cómo previene esta empresa esto en el futuro? Una forma es mediante un script de Windows PowerShell sencillo y gratuito.
Windows PowerShell es un lenguaje de secuencias de comandos muy potente y tiene muchos usos. Uno de esos usos es enumerar cuentas de usuarios locales en computadoras locales o remotas, así como la funcionalidad de correo electrónico integrada. Usando PowerShell, podemos crear un script que consulta las computadoras de George (y otras) de manera rutinaria para detectar cambios en el grupo de administradores locales y recibirá correos electrónicos automáticos si se agrega un nuevo miembro. Veamos cómo hacer esto. Pero primero, aquí hay una demostración de lo que es posible con este script.
Cuando esto se ejecuta por primera vez en algunas computadoras, se creará el archivo de registro que realiza un seguimiento de las listas de miembros. Puede ver en este ejemplo que esta fue la primera ejecución, por lo que no se pudieron encontrar cambios.
Lo ejecuto por segunda vez y, aunque se había creado el archivo de registro, no hubo cambios en las membresías de grupo para ninguna de las computadoras.
Este script genera un archivo CSV con el siguiente contenido. Observe que la computadora MDTSERVER tiene dos miembros dentro del grupo de administradores locales, mientras que el host local tiene 4 miembros diferentes.
Ahora, agreguemos un miembro al grupo en el host local.
Puedo ver en la última línea que se encontró un nuevo miembro en localhost desde la última vez que se ejecutó y ahora recibí un correo electrónico notificándolo. El archivo CSV también ha registrado esta actividad.
Ahora ejecutamos el script nuevamente y ve 5 miembros en total, pero no enviará una notificación por correo electrónico. Solo envía notificaciones por correo electrónico sobre los cambios, pero se puede cambiar fácilmente para notificar según cualquier número de criterios diferentes.
Este script fue solo un ejemplo de lo que es posible con PowerShell con fines de auditoría. Úselo como plantilla si no se ajusta a sus necesidades y personalícelo como desee. PowerShell es una gran herramienta para iniciar servicios de auditoría rudimentarios o ad hoc, pero no la recomendaría para crear una solución de auditoría grande a escala empresarial. Una solución de auditoría integral debería ser la solución, y siempre puede usar PowerShell como complemento.





