Image
SYSMON para monitorizarlos a todos.

SYSMON para monitorizarlos a todos 1/3

Sistema avanzado de monitorización mediante Sysmon y Sigma


¡Hola! En el artículo de hoy vamos a abordar el tema de cómo podemos mejorar la detección de amenazas en nuestro sistema de monitorización.

El objetivo es tratar de obtener más datos y más valiosos de los que tradicionalmente se recogen de cada uno de los equipos finales, para poder aplicar nuestras hipótesis de Hunting sobre esos datos recogidos, y que así nos ayuden a realizar detecciones proactivas más avanzadas.

Para realizar esta tarea, prepararemos un entorno Windows con un controlador de dominio con Windows 2016 Server, y un equipo de usuario con Windows 10 en dominio, y almacenaremos la información en un servidor de ElasticSearch. En los equipos Windows, instalaremos la herramienta gratuita Sysmon y configuraremos la recogida de logs mediante suscripción, desde el equipo del usuario hacia el controlador de dominio. Esto nos permitirá recolectar toda la información de cada equipo cliente (incluído Sysmon). La idea de prepararlo de este modo, es tener que evitar instalar un agente de envío de información a ElasticSearch en cada equipo final. El agente que envía la información a Elasticsearch (Winlogbeat) lo instalaremos únicamente en el controlador de dominio. Para visualizar los datos y realizar búsquedas usaremos Kibana y utilizaremos el metalenguaje de Sigma. Este nos ayudará a crear la búsqueda sobre Kibana. Una vez montado nuestro entorno, lanzaremos un ataque de Bypass de UAC en el equipo cliente Windows 10, que será “cazado” por nuestra búsqueda.

Aunque ya existe mucha información sobre el uso de Sysmon y su integración en ElasticSearch, no hay apenas referencias a cómo configurar de forma conjunta estas piezas empleando un servidor WEC, que evitará que tengamos que instalar un agente Winlogbeat en cada equipo final. Está fuera del alcance de este artículo cómo configurar Elasticsearch, un directorio activo o el método de uso de la herramienta Sigma; ya que se supone que cada uno de estos elementos están ya instalados y configurados correctamente.


Windows Event Collector


El envío de la información de Sysmon desde los equipos clientes lo realizaremos mediante Windows Event Collector (WEC), una herramienta integrada en todos los sistemas Windows que es muy cómoda de configurar. Mediante una serie de políticas en la GPO, configuraremos el reenvío de logs desde los clientes a este servidor WEC. Este servidor será el lugar donde instalar la herramienta que ofrece ElasticSearch para la recolección de eventos de Windows (Winlogbeat). En este laboratorio, configuraremos el WEC en el propio Controlador de dominio por simplicidad, algo que no se debería realizar en un entorno de producción. Por dicha simplicidad, también emplearemos el envío de tráfico por HTTP, en vez de por HTTPS


Configuración del servidor WEC


Para configurar que un WEC reciba eventos desde otros equipos, se debe utilizar el uso de WinRM. Este se puede activar mediante GPO, modificando las siguientes directivas:

  • ‘Configuración del equipo -> Plantillas administrativas > Componentes de Windows -> Administración remota de Windows -> Servicio WinRM -> Permitir la administración de servidores remotos a través de WinRM’. Tenemos que habilitar la directiva y especificar desde qué equipos vamos a permitir mensajes. En este caso, por sencillez, usamos * para permitir a todos los equipos:


  • ‘Configuración del equipo -> Plantillas administrativas > Componentes de Windows -> Administración remota de Windows -> Cliente WinRM -> Hosts de confianza’

En esta directiva especificamos si el cliente WinRM usa la lista TrustedHostLixt, para determinar si el host destino es de confianza. Por simplicidad, habilitamos la directiva y usamos *:


Por último, queda indicar que el servicio WinRM por HTTP funciona por el puerto 5985, por lo que tendremos que abrirlo en el firewall para que funcione correctamente.


Reenvío de eventos


Para reenviar los eventos tenemos que configurar las siguientes directivas:

  • ‘Configuración del equipo -> Plantillas administrativas -> Componentes de Windows -> Reenvío de eventos -> Configurar el administrador de suscripciones destino’.

    Tenemos que habilitar la directiva y especificar el servidor WinRM donde se enviarán los eventos. Debemos usar el nombre FQDN de la máquina. En este caso, dado que empleamos el protocolo HTTP, emplearemos el puerto 5985 (HTTPS es 5986 y deberemos crear o especificar qué certificados empleamos para el cifrado).


Una vez aplicadas estas políticas, debemos configurar nuestro colector. Para ello, en el visor de eventos debemos crear una nueva suscripción. En la suscripción indicaremos dónde almacenaremos los registros destino, el tipo de suscripción y qué eventos se recopilarán.


En este caso, almacenaremos los eventos en ‘Eventos reenviados’. El tipo de suscripción será iniciada por el equipo origen. Seleccionaremos el equipo que reenviará los logs al WEC, en este caso, nuestro equipo cliente Windows 10:


Dentro de ‘Seleccionar eventos’, seleccionaremos qué eventos se reenviarán. De momento, no hemos instalado Sysmon; por consiguiente no nos aparece esa categoría, pero podemos seleccionar todos los niveles de Aplicación, Seguridad, Instalación y Sistema.


Es posible que el reenvío de eventos nos falle al haber incluido el registro ‘Seguridad’ que necesita que el usuario ‘Network Service’ acceda al registro de eventos. Para poder permitírselo mediante GPO, tendremos que hacer lo siguiente:

  • Recoger los permisos de security mediante el comando wevutil gl security

  • A la línea ‘ChannelAccess’ añadir la cadena “(A;;0x1;;;NS)” y añadirlo en la política ‘Configuración del equipo -> Plantillas administrativas -> Componentes de Windows -> Servicio Registro de eventos -> Seguridad -> Configurar Acceso al registro’:

Y aquí dejaríamos el post de hoy. En el del próximo día, continuaré explicando la instalación de Sysmon y cómo se realiza la configuración de Winlogbeat. Espero que os haya resultado interesante y que no os perdáis la siguiente publicación ;)

Un saludo y... ¡hasta pronto!


 

José Pablo Ferrero