Velociraptor. Parte 1: Servidor

por Alberto Jódar
0 comentario 11 minutos lectura
Artículos de la serie
Velociraptor
  1. Velociraptor. Parte 1: Servidor
  2. Velociraptor. Parte 2: Clientes
  3. Velociraptor. Parte 3: Funciones principales

Vamos a ver una herramienta muy útil para agilizar la valoración de máquinas afectadas, la adquisición rápida y remota de evidencias y otras muchas funcionalidades que son muy útiles en el proceso de respuesta ante incidentes. Vamos a ver Velociraptor.

Infraestructura

Hemos montado una infraestructura en VirtualBox con una Ubuntu Desktop que hará de servidor y una Windows 10 que hará de cliente. Ambas máquinas unidas a una red NAT de VirtualBox. No es objeto entrar en detalle, pero los siguientes recursos sirven para el propósito de esta práctica.

Qué es Velociraptor

Velociraptor es una herramienta de respuesta ante incidentes y análisis forense digital de código abierto diseñada para recolectar y analizar datos de endpoints en tiempo real. La vamos a usar principalmente para analizar y contener la amenaza. Pero ahorrándonos un gran proceso de clonado, compartición, montado, análisis… En definitiva, vamos a buscar con Velociraptor reducir al máximo el tiempo que tarda el analista en acceder a los datos para investigar. Además de proveer funcionalidades que ayudan a contener.

Su principal fortaleza radica en la capacidad de ejecutar consultas rápidas y personalizables a través de un lenguaje propio llamado VQL (Velociraptor Query Language), lo que permite a los analistas extraer información detallada como registros, procesos en ejecución, configuraciones del sistema y artefactos forenses.

Y va a funcionar con un modelo cliente-servidor. Tendremos un servidor accesible por todas las máquinas que sirve para recibir la información y para servir de consola de administración para ejecutar las acciones. Y unos clientes que se mantendrán en contacto constante con el servidor a la espera de recibir órdenes.

https://docs.velociraptor.app/blog/2020/2020-04-16-velociraptor-e48a47e0317d/

El cómo desplegamos el servidor y como se comunican los clientes con este tiene 3 variantes. Cada modelo de despliegue sirve para un propósito.

  • Self-Signed SSL – Modelo cliente servidor donde el SSL es autofirmado y se entiende que su uso es para aquellos despliegues donde cliente y servidor van a estar en la misma red.
  • Cloud Deployment – El servidor estará en la cloud. Aquí tendremos que usar la CA de Let´s Encrypt. Esto implica que necesitamos registrar un nombre en DNS, ya que Let´s Encrypt no nos va a dejar certificar una dirección IP.
  • Instant Velociraptor – Cliente y servidor van a lanzarse en la misma máquina. Está pensado para pruebas

Para el entorno de laboratorio que vamos a ver en esta práctica vamos a usar un modelo Self-Signed SSL

Instalar Velociraptor Server

Vamos a la Ubuntu Desktop que hará de servidor de Velociraptor en nuestra red.

IP estática

Aunque no vayamos a entrar en infraestructura, sí que vamos a ver cómo le asignamos una IP estática al servidor. Esto es imprescindible, ya que en la infraestructura no nos vamos a meter a resolver nombres de máquinas. Todo lo haremos mediante la IP, y el servidor necesita tener una IP fija.

Disponemos en Ubuntu de netplan para este propósito, que organiza la configuración de las interfaces del equipo en ficheros yaml. Es buena práctica que para un fichero que defina una IP estática se llame “01-static-ip.yaml”

$> sudo touch /etc/netplan/01-static-ip.yaml
$> sudo nano /etc/netplan/01-netcfg.yaml

Rellenamos el fichero con:

network:
  ethernets:
    enp0s3:
      dhcp4: no
      addresses: [192.168.10.100/24]
      gateway4: 192.168.10.1
      nameservers:
         addresses: 
           - 8.8.8.8
           - 8.8.4.4
  version: 2

Aplicamos:

$> sudo netplan apply

Descarga Velociraptor

Descargamos la release desde el Github de la herramienta: https://github.com/Velocidex/velociraptor/releases/tag/v0.73

Creamos una carpeta dedicada. Descargamos binario. Movemos el binario a /usr/bin renombrándolo y dándole permisos de ejecución:

$> mkdir velociraptor
$> cd velociraptor
$> wget https://github.com/Velocidex/velociraptor/releases/download/v0.73/velociraptor-v0.73.3-linux-amd64 -O velociraptor
$> sudo mv velociraptor /usr/local/bin/
$> sudo chmod +x /usr/local/bin/velociraptor

Fichero configuración Velociraptor

El binario de Velociraptor que acabamos de descargar nos ayuda con un asistente que nos pide datos y nos genera los ficheros de configuración tanto para el servidor como para los clientes.

$> velociraptor config generate -i

Estos nos despliega un asistente que nos pregunta por las siguientes cosas:

https://docs.velociraptor.app/docs/deployment/self-signed/

Os dejo la captura de los datos a introducir:

Yo he creado un único usuario (admin – admin). Recordemos que estamos en un entorno de laboratorio

Crear servicio Velociraptor

Usamos systemd para crear un servicio para Velociraptor que se ejecute al inicio del equipo. Creamos el fichero:

$> sudo nano /etc/systemd/system/velociraptor.service

Añadimos al fichero lo siguiente. Vemos que la ejecución apunta al binario de Velociraptor y enlace a la configuración que acabamos de generar.

[Unit]
Description=Velociraptor Server
After=network.target

[Service]
ExecStart=/usr/local/bin/velociraptor --config /home/operador/velociraptor/server.config.yaml frontend
Restart=always
User=root
Group=root

[Install]
WantedBy=multi-user.target

Recargamos los servicios y lo lanzamos:

$> sudo systemctl daemon-reload
$> sudo systemctl enable velociraptor.service
$> sudo systemctl start velociraptor.service
$> sudo systemctl staus velociraptor.service

Que hemos desplegado

Hemos desplegado el servidor, y en este tenemos expuesto lo siguiente:

  • 8889: Puerto que exponer la interfaz web para la administración y operación
  • 8000: Puerto a la escucha para la conexión de los clientes
  • 8001: API para gestión y consumo de datos de Velociraptor

Acceso a la interfaz web

Accedemos a https://127.0.0.1:8889 o a https://192.168.10.100:8889

Da error de SSL porque está autofirmado. Aceptamos el riesgo para continuar

Conclusiones

Ya tenemos el servidor. En la siguiente entrada uniremos los clientes para comenzar a ver las funcionalidades

Hasta la próxima

Artículos relacionados

Deja un comentario

* Al utilizar este formulario usted acepta el almacenamiento y tratamiento de sus datos por parte de este sitio web.

Este sitio web utiliza cookies para mejorar su experiencia Aceptar Leer más