Threat hunting (VI): cazando sin salir de casa. Creando nuestra víctima

Ver entradas anteriores: I: intro 1, II: intro 2, III: Kibana, IV: Grafiki, V: Jupyter Notebooks.

Bienvenidos a esta nueva entrada sobre nuestro laboratorio doméstico, que poco a poco va creciendo más y más.

En este artículo se hablará sobre la creación de una máquina de pruebas a la que poder hacer todo tipo de perrerías sin miedo, y se abordarán las configuraciones necesarias para registrar todo lo que pasa en ella.

En la segunda entrada se habló de los repositorios de eventos que existen, más concretamente del proyecto Mordor y del repositorio EVTX-ATTACK-SAMPLES.

Estos repositorios son muy útiles para poder entender y aprender sobre cómo se comportan muchas amenazas, y facilitan mucho el trabajo, pero cuando el trabajo te lo dan hecho no se aprende igual. Con una máquina propia se pueden probar técnicas que vayan surgiendo y comprobar cómo son detectadas en el laboratorio.

Hay que tener en cuenta que no va a ser una máquina virtual en la que se debería ejecutar malware, dado que el nivel de aislamiento no va a ser el suficiente para garantizar la seguridad del equipo anfitrión.

1. Instalación de sistema operativo

Para comenzar, será necesaria la instalación de una máquina virtual Windows. Yo utilizaré VMware pero no hay ningún problema en utilizar otro software de virtualización.

Existen dos opciones para descargar la versión oficial directamente de Microsoft, algo que recomiendo encarecidamente ya que cualquier otra fuente puede suponer un problema de seguridad.

La primera opción son las máquinas virtuales que ofrece Microsoft para probar Microsoft Edge, que podéis encontrar en este enlace. En el formulario, hay que seleccionar la versión que se quiere descargar y el software de virtualización que se va a utilizar.

Estas máquinas virtuales tienen 90 días de validez pero, como recomienda Microsoft, lo mejor es realizar un snapshot de la máquina virtual cuando se ha hecho la configuración y volver a él cada vez que es necesario. Hay que tener en cuenta que la información será almacenada en el laboratorio de Elasticsearch y no es necesaria la información del señuelo.

La otra opción es la descarga de la herramienta de creación de medios de instalación de Microsoft. Esta herramienta está pensada para la instalación de versiones finales del sistema operativo con licencia, lo que significa que se solicitará la clave cuando se realice la instalación y aunque te deja continuar sin la clave, no es para lo que fue desarrollada la herramienta. Este es el enlace. Esta herramienta creará un fichero .ISO que se deberá utilizar durante la creación de la máquina virtual.

Con cualquiera de ambos métodos, el resultado es una máquina virtual con Windows 10.

2. Sysmon

Sysmon es una parte importante del laboratorio, ya que será una de las fuentes de información que permita realizar una monitorización detallada del sistema a partir de sus eventos.

La descarga de Sysmon se puede realizar mediante este enlace del sitio oficial de Sysinternals.

Antes de realizar la instalación es importante hablar del fichero de configuración de la herramienta.

Sysmon registra en el momento de escribir este artículo 24 eventos. Algunos de estos eventos, como el evento 7, carga de librería por un proceso, generan muchísima carga de información, por lo que en entornos de producción hay que tener mucho cuidado.

Qué registra Sysmon se controla mediante el fichero de configuración que se deberá indicar en el momento de la instalación. Para entornos de producción, la configuración más famosa es la realizada por el usuario SwiftOnSecurity. En este enlace podréis ver la configuración y observar como de compleja puede llegar a ser una configuración de Sysmon.

Para montar una máquina de laboratorio no es necesario una configuración tan cuidadosa, ya que al tratarse de una única máquina se puede crear una configuración más “ruidosa”.

En este enlace podéis descargar la configuración de Sysmon que utilizo en mi laboratorio. Es una configuración hecha por Olaf Hartong y proporciona un nivel de log adecuado para un laboratorio.

Para la instalación y ejecución de Sysmon, bastará con el siguiente comando:

.\Sysmon64.exe -accepteula -i C:\Users\luisf\Downloads\sysmonconfig.xml

Y el resultado debería ser algo parecido a esto:

En la ruta “Applications and Services Logs/Microsoft/Windows/Sysmon/Operational/” del visor de eventos de Windows veremos los eventos que Sysmon está recogiendo del sistema.

3. Winlogbeat

Dentro de todo el ecosistema que comenzó con Elasticsearh han surgido pequeños paquetes que facilitan mucho la inyección de datos en la base de datos.

Este es el caso de Winlogbeat. Este paquete permite automatizar la  inserción de datos de una máquina Windows en Elasticsearch. Se puede descargar de este enlace.

Su instalación es también muy sencilla y al igual que con Sysmon, es necesario un fichero de configuración personalizado, que se puede editar con un editor de textos.

3.1 Fichero de configuración

En este enlace está la configuración que proponen en HELK. Dentro del fichero de configuración se pueden observar varias partes.

  • El primer apartado son los events.log. En este apartado se configurarán las fuentes de datos que Winlogbeat recogerá del equipo. No hay que preocuparse del formato de esas fuentes, el paquete lo formateará por nosotros.
  • El segundo apartado son las salidas. En este apartado será necesario decirle a Winlogbeat dónde tiene que enviar la información. En nuestro caso, es mejor simplificar la arquitectura y enviar los datos directamente a Logstash. Para lo cual se deberá introducir lo siguiente al final:
#----------------------------- Logstash output --------------------------------
output.logstash:
hosts: ["192.168.129.137:5044"]

Recordar introducir vuestra IP de HELK y comentar añadiendo “#” en la parte de salida a Kafka.

3.2 Descarga e instalación

La descargase realiza desde este enlace. Allí encontraremos el fichero comprimido con todo lo necesario.

Una vez descargado, se deberá descomprimir en la carpeta “Archivos de Programa” y se deberá:

  1. Cambiar el nombre de la carpeta de “winlogbeat-<version>” a “Winlogbeat”.
  2. Cambiar el fichero winlogbeat.yml por el que se ha descargado anteriormente desde el proyecto de HELK.

¡Ya casi está!

Ahora, desde una consola de Powershell como administrador, se deberá ejecutar el fichero “install-service-winlogbeat.ps1”, que instalará el servicio de Winlogbeat pero no lo lanzará.

Para probar que la configuración es la correcta, ejecutaremos este comando, introduciendo la ruta del fichero de configuración que se modificó en el paso anterior:

.\winlogbeat.exe test config -c .\winlogbeat.yml -e

Si todo ha salido bien, mostrará “Config OK” al final de la respuesta:

Todo va sobre ruedas, ahora se deberá lanzar el servicio de Winlogbeat con el comando, y desde el gestor de servicios de Windows, aparecerá como un servicio activo.

Start-Service winlogbeat

¡Ya está funcionando!

Si es así, en la máquina virtual de HELK, en la ventana de Kibana, en el apartado de “Discovery”, aparecerán los eventos que está generando el señuelo.

Recordad que los eventos generados por Winlogbeat serán indexados por Elastic en el índice “logs-endpoint-winevent-*”.

¡Ya tenemos una máquina nueva para jugar!

Con esto, desde Grafiki ya es posible visualizar los datos. Si se introduce un rango de fechas apropiadas y se genera el grafo, mostrará algo como esto:

Ahora, el consejo más importante del día: haced snapshots de las máquinas virtuales, ahora que todo funciona.

Aquí damos por terminado el laboratorio, al menos por el momento. Ahora toca ponerse las botas de cazador y echarse al barro.

En las próximas entradas de la serie se abordarán temas relacionados con técnicas ofensivas y como detectarlas en el laboratorio, cómo funciona Windows, Sysmon… muchas cosas interesantes.

Un saludo y ¡feliz caza!

Ver también en: