- Laboratorio de detección – Parte 1: Crear un dominio
- Laboratorio de detección – Parte 2: Unir máquina al dominio
- Laboratorio de detección – Parte 3: Qué es Sysmon
- Laboratorio de detección – Parte 4: Wazuh (1)
En esta infra de detección tenemos un DC que sirve para sustentar el directorio activo. Tenemos un par de máquinas Windows creadas a partir de una plantilla base. Y una GPO que les despliega Sysmon con una configuración concreta. En esta entada vamos a usar Wazuh a modo de SIEM para recopilar y correlacionar los logs de estas máquinas.
Hemos añadido una nueva máquina al diagrama. Un Ubuntu Desktop que nos va a servir para alojar con Docker el servicio de Wazuh. Con IP fija le ponemos dentro de la red la 192.168.100.101 (por seguir poniendo > .100 a los servidores).
¿Qué es Wazuh?
Wazuh es una herramienta open source pensada para ayudarte a detectar amenazas y controlar qué pasa en tus sistemas en tiempo real. Funciona con agentes que se instalan en los equipos y recogen info como logs, cambios en archivos, actividad sospechosa o configuraciones raras. Esa info se manda a un servidor central, donde se analiza, se correlaciona y genera alertas (hace de SIEM).
La arquitectura de Wazuh es sencilla. Dispone una consola central y agentes en los equipos que se van a monitorizar. En esta entrada vamos a desplegar la consola central en modo single node. Es decir, que todos los componentes principales van a estar en la misma máquina. Estos componentes principales son:
- Servidor (Manager): Recibe, analiza y correlaciona los datos enviados por los agentes. Aplica reglas y genera alertas.
- Wazuh Indexer (Elasticsearch): Almacena los eventos y alertas.
- Logstash/Filebeat: Ingresa datos en Elasticsearch.
- Wazuh Dashboard (Kibana): Interfaz visual para explorar logs, eventos y alertas.
- Agente: Se instala en los endpoints para recolectar logs, monitorizar archivos, procesos, registros, rootkits, etc.
- API RESTful: Permite interactuar con Wazuh para consultar datos, gestionar agentes, etc.
Vamos a desplegar primero esta arquitectura del servidor y varios agentes y luego entramos en las funcionalidades básicas.
Wazuh con Docker
Para entender Docker recordad que tenéis la serie de entradas que hemos realizado en la web sobre esta tecnología. Os dejo el link a la entrada 1 de la serie de Docker.
Levantar Wazuh con Docker es muy sencillo. Nos descargamos el proyecto de GitHub de Wazuh Docker. El objetivo es simplificar, así que vamos a levantar una instancia única para todos los módulos de Wazuh. Esto es lo que denomina Wazuh Docker como single mode.
$> git clone https://github.com/wazuh/wazuh-docker.git -b v4.11.1
$> cd wazuh-docker/single-node
$> docker-compose -f generate-indexer-certs.yml run --rm generator
$> docker-compose up -d
Esto nos va a levantar los 3 módulos. El dashboard nos lo levanta en el puerto 443 y en el docker compose podemos ver user y password.
Una vez levantado con docker compose, ya podemos accedes a htps://localhost en el navegador, y tras introducir credenciales y una breve configuración inicial, ya tenemos levantado Wazuh.

Instalar agentes
Ya tenemos Wazuh levantado en el servidor. Vamos a instalar un agente en las máquinas Windows de usuario que tenemos en la red.
En server
Dentro de la sección Overview disponemos de la vista de Agents Summary, donde encontramos la opción «Deploy new agent«.
Como va a ser en una máquina Windows, seleccionamos la opción de MSI para las versiones Windows de 32 y 64 bits. Seleccionamos que el servidor sea esta misma máquina, la 192.168.100.101.
Podemos seleccionar un nombre de dispositivo, pero si no ponemos nada usará el hostname de la máquina donde lo instalemos. Además de poderlo introducir en un grupo (ahora mismo estamos partiendo de cero y no tenemos grupos creados). Y con estas opciones ya nos indica el método de despliegue:
En host
Vamos por tanto al host Windows y ejecutamos el comando de PowerShell. Importante que sea una PowerShell con permisos de administrador. Una vez terminado lanzamos el agente:
Y ya en el Overview del servidor de Wazuh vemos el agente:
Importante: El servicio se instala para su arranque al inicio del equipo. Con lo que aunque reiniciemos el equipo, seguimos manteniendo el agente activo.
Con este mismo proceso podemos ir añadiendo agentes a la consola central de Wazuh:
Capacidades Wazuh
Ya tenemos el servidor con todos los módulos (modo single mode) y dos máquinas con agente, un host Windows de usuario y el servidor DC. Vamos a ver qué funcionalidades básicas nos provee esta herramienta.
Lo primero que vemos es la vista de Overview. Un panel central modo de resumen. Vemos el número de agentes, las alertas en las últimas 24h y los módulos de Wazuh disponibles.
Si usamos el cuadro de arriba a la izquierda podemos seleccionar los dos agentes activos para ver el listado de agentes. Si seleccionamos uno de los agentes nos lleva a la vista principal de dicho agente:
Logs – Threat Hunting
La consola donde ver el listado de logs de esta máquina, tirar búsquedas, ver las alertas… es la que Wazuh denomina como Threat Hunting.
Esto os redirige a una sección donde podemos ver un resumen de los eventos (Dashboard) o ir a ver los eventos en modo tabla (Events)
En una máquina de entorno de laboratorio, en dos uso sencillos, hemos generado 649 eventos. Es cierto que esto es un entorno de laboratorio, pero por defecto tiene una política de recolección no muy agresiva. Veremos en posteriores entradas como editar esta política de recolección.
Podemos generar queries en modo visual campo a campo o usar la sintaxis DQL que veremos en posteriores entradas de esta serie. Para probar los filtros he forzado un inicio de sesión fallido y uno exitoso con el usuario «usu001» en el host Windows de usuario. Los campos de eventos de Windows se almacenan con el prefijo «data.win», con lo que buscamos un ID para filtrar por los eventos 4624 (inicio exitoso) y 4625 (inicio fallido).
Una vez añadido filtramos por 4624 y 4625. Como hemos dicho, de momento vamos a usar los filtros en modo gráfico antes de meternos a destripar el lenguaje DQL.
Y listo, ya vemos el fallo y el éxito con el usuario «usu001»:
Conclusiones
Y hasta aquí para esta primera entrada. Hemos:
- Entendido qué es Wazuh y sus componentes principales
- Hemos desplegado un servidor en modo single mode
- Hemos añadido dos agentes, uno en un host de usuario y otro en el DC
- Y hemos visto una de las capacidades de Wazuh, la recolección y filtrado de logs
Continuaremos viendo capacidades en próximas entradas. Hasta la próxima.