- Velociraptor. Parte 1: Servidor
- Velociraptor. Parte 2: Clientes
- 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.
- Web: https://www.virtualbox.org/
- Descarga: https://www.virtualbox.org/wiki/Downloads
- Manual: https://www.virtualbox.org/manual/
- Indicaciones para crear una máquina virtual: https://www.softzone.es/programas/sistema/crear-configurar-maquina-virtual-virtualbox/
- Redes NAT en VirtualBox: https://www.techbeatly.com/how-to-create-and-use-natnetwork-in-virtualbox/
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.
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.
- Documentación deployment: https://docs.velociraptor.app/docs/deployment/
- Proyecto en Github: https://github.com/Velocidex/velociraptor
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:
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