Introducción a Velociraptor

Velociraptor es un proyecto de software libre creado por la empresa Velocidex, la cúal se basa en las herramientas GRR, OSQuery y Recall. Velociraptor permite recolectar evidencia forense, hacer monitoreo de artefactos, threat hunting y ejecución de procesos de triage remoto, todo esto gracias al motor VQL (Velociraptor Query Language)

En esta entrada veremos el proceso de instalación del servidor sobre Ubuntu Server 18.04, para hacerlo lo más real posible se ha realizado la instalación en un servidor en la nube, bajo el siguiente esquema.

Los agentes apuntarán al puerto TCP 8000, mientras que el investigador forense consultará la interfaz web al puerto 8889, una de las ventajas que tiene este esquema cloud es que si uno de los equipos sale de la oficina y opera desde casa podrá seguir reportando al servidor.

Preparación

Instalamos MySQL Server

apt install mysql-server

Ingresamos al monitor de MySQL

mysql -u root -p

Ingresamos la contraseña establecida durante la instalación

Creamos una base de datos

create database velociraptor;

creamos un usuario para evitar el uso de la cuenta root

CREATE USER ‘blue’@’localhost’ IDENTIFIED BY ‘str0ng P@ssw0rd’;

Asignamos permisos al usuario blue sobre la base de datos velociraptor

GRANT ALL PRIVILEGES ON velociraptor.* TO ‘blue’@’localhost’;

Salimos del monitor de MySQL con el comando bye.

Creación de Instaladores

Creamos dos carpetas en el sistema de archivos una para guardar los logs de velociraptor y otra para los archivos de configuración

mkdir /var/log/velociraptor && mkdir /etc/velociraptor

Damos permisos al usuario velociraptor que se creará automáticamente más adelante para que pueda escribir los logs.

chown -R velociraptor: /var/log/velociraptor/

Ingresamos al repositorio oficial https://github.com/velocidex/velociraptor/releases alli ubicamos el archivo el instalador para linux y copiamos el enlace de descarga en nuestro caso la versión para linux-amd64.

En el servidor ubuntu utilizamos wget y pasamos como parámetro la dirección del binario

wget https://github.com/Velocidex/velociraptor/releases/download/v0.4.4/velociraptor-v0.4.4-linux-amd64

Asignamos permisos de ejecución al binario

chmod u+x velociraptor-v0.4.4-linux-amd64

Ejecutamos el binario con los siguientes argumentos para realizar la configuración en modo interactivo

./velociraptor-v0.4.4-linux-amd64 config generate -i

Seleccionamos Linux como sistema operativo

Seleccionamos MySQL para la implementación del almacen de datos

Colocamos el usuario de la base de datos

Ingresamos la contraseña del usuario de la base de datos

Si la base de datos está en otro servidor, colocamos la dirección IP o el nombre del host, si está local simplemente lo dejamos como localhost

Si van a realizar la implementación del servidor para que sea disponible de forma pública utlilizamos la opción de aprovisionamiento de certificados con Lets Encrypt, si es un proyecto local pueden dejar la opción del certificado auto-firmado (Self Signed SSL), en mi caso procedo con Let’s Encrypt

colocamos en nombre del host, ej velociraptor.dvirus.training

Si utlilizamos DynDNS colocamos la letra y de lo contrario como en mi caso colocamos la N o simplemente presionamos enter.

Luego definimos el nombre para el acceso a la interfaz de velociraptor

Establecemos la ruta en la cual se guardarán los logs, colocamos la ruta creada previamente

Al igual que en el paso anterior usamos una de las rutas creadas al inicio para escribir los archivos de configuración del servidor y del cliente

Verificamos que los archivos de configuración se hayan generado de forma correcta uno para el servidor (server.config.yaml) y otro para los clientes (client.config.yaml)

Generamos el instalador para el servidor debian o derivados

./velociraptor-v0.4.4-linux-amd64 -c /etc/velociraptor/server.config.yaml debian server

y generamos el instalador para los clientes linux

./velociraptor-v0.4.4-linux-amd64 -c /etc/velociraptor/client.config.yaml debian client

Tendremos dos archivos .deb uno para el servidor y otro para los clientes linux basados en debian

Instalación Servidor

Instalamos el paquete server en nuestro servidor

dpkg -i velociraptor_0.4.4_server.deb

Una vez finalizada la instalación verificamos el servicio, deberían subir servicios en los puertos 8000 (frontend), 8001,8003 y 8889 (GUI)

Si observamos la anterior gráfica, el acceso al frontend, está restringido a través del bind_address 127.0.0.1, en este caso vamos a reconfigurar para que sea accesible desde cualquier dirección IP y restringimos el acceso a través de reglas de firewall. O simplemente dejamos la restricción y hacemos un tunel SSH para administrar la plataforma.

Detenemos los servicios de velociraptor

killall velociraptor

Editamos el archivo /etc/velociraptor/server.config.yaml

En la sección GUI: cambiamos el bind_address de 127.0.0.1 por 0.0.0.0

Guardamos la configuración y generamos nuevamente el instalador.

./velociraptor-v0.4.4-linux-amd64 -c /etc/velociraptor/server.config.yaml debian server

Instalamos nuevamente velociraptor

dpkg -i velociraptor_0.4.4_server.deb

Nota: Importante restringir el acceso para que solo accedan direcciones ip de confianza, no se debe dejar expuesto el servicio en internet.

Ingresamos al navegador https://ip_servidor:8889 o https://nombre_servidor:8889

Alli ingresamos las credenciales

Y listo, estaremos dentro del panel administrativo de velociraptor.

Instalación de Agente Windows

Del repositorio ofical descargamos el archivo .msi para windows

Ejecutamos el instalador, si nos aparece un mensaje como el que sale en la siguiente imagen damos clic en run anyway.

En la ruta de la instalación la cuál se muestra en la siguiente imagen, colocamos el archivo de configuración de cliente creado durante el proceso de instalación del servidor.

Renombramos el archivo client.config.yaml por velociraptor.config.yaml

Ejecutamos nuevamente el instalador, si el proceso es correcto aparecerá un nuevo archivo

Si durante este proceso no aparece el archivo velociraptor.writeback.yaml, se debe intentar con la versión 0.4.2 del MSI.

Importante que las maquinas en las que se instala el agente puedan resolver el nombre del servidor

Después de unos segundos el equipo se registrará contra el servidor y podremos observarlo en el GUI.

En la vista de Sever status podemos visualizar una línea de tiempo que muestra el número de clientes conectados.

Si presionamos el botón de búsqueda, aparecerán todos los equipos instalados.

Instalación de agente Linux

En linux la instalación es más sencilla, simplemente descargamos el instalador para cliente generado durante la configuración inicial del servidor

Instalamos el agente con el comando

sudo dpkg -i velociraptor_0.4.2_client.deb

Después de unos segundos aparecerá registrado en la consola de velociraptor.

Para aprender más sobre velociraptor los invito a revisar la documentación oficial https://www.velocidex.com/docs/ allí encontrarán muy buenos recursos incluyendo varios videos presentados en diferentes eventos.

Instalación de agente en instancias de EC2

Para la instalación de agentes en instancias de EC2 de AWS las cuales no tengan sistema operativo debian, se debe convertir el paquete .deb a rpm.

En el servidor de velociraptor (ubuntu) instalar alien

sudo apt install alien

Ejecutar alien (se requieren privilegios)

sudo alien -r velociraptor_0.4.2_client.deb –scripts

Nos retornará el siguiente mensaje

Cargamos el RPM a la instancia de EC2 y ejecutamos

sudo rpm -ivh velociraptor-client-0.4.2-2.x86_64.rpm

Verificamos que el servicio se encuentre en ejecución

service velociraptor_client status

Verificamos el registro en la consola de Velociraptor

4 Comments

  1. Hola Daniel, si no estoy mal creo que dijste que tenias algun video sobre esta instalacion, si por favor lo puedes compartir gracias !

    1. Hola Esteban, el video está disponible en uno de los capítulos del programa de mentoría, en un par de semanas llegarán a ese contenido.

Deja un comentario