Velociraptor:
DFIR y hunting a escala de flota
Blue Team y Forense Digital | unfantasmaenelsistema.com
Todo el bloque forense de esta serie -memoria con Volatility, líneas de tiempo con plaso, el registro de Windows, el triaje en Linux- asume que ya tienes la máquina delante. En un incidente real la pregunta es otra: de mis 2.000 endpoints, ¿en cuántos está ese indicador? ¿en cuáles hay esta clave de persistencia? Y hay que responder en horas, no en semanas.
Velociraptor es la herramienta que hace ese salto: un servidor y agentes ligeros que permiten lanzar una consulta forense contra toda la flota a la vez, recoger artefactos en remoto y vigilar eventos en tiempo real. Este artículo explica su arquitectura, qué es VQL y por qué es el corazón de todo, cómo funcionan los hunts, y varios casos de uso concretos. Enfoque de lectura: consultas de investigación, no de intrusión.
Que aprenderas en este articulo
La arquitectura de Velociraptor: servidor, clientes y comunicación · Qué es VQL y por qué toda la herramienta se apoya en él · Artefactos: los incluidos, los de la comunidad y para qué sirven · Hunts: lanzar una consulta contra miles de equipos y agregar el resultado · Casos: buscar un IOC en la flota, timeline de un host, cazar persistencia
1. Qué es y para qué encaja
Velociraptor es una plataforma open source de DFIR (forense digital y respuesta a incidentes) y de threat hunting sobre endpoints, creada por Mike Cohen (originalmente en Rapid7, hoy proyecto independiente respaldado por la comunidad y por Rapid7). No es un EDR con bloqueo ni un antivirus: no toma decisiones automáticas. Es una herramienta para que un analista pregunte cosas a muchos equipos a la vez y recoja evidencia.
Dónde encaja frente a piezas vecinas de la serie:
- Frente a Wazuh (SIEM/XDR): Wazuh centraliza logs y alerta de forma continua; Velociraptor es interrogación bajo demanda y recogida forense profunda. Se complementan
- Frente a osquery: osquery también consulta el endpoint como tablas SQL, pero Velociraptor añade recogida de ficheros, análisis forense de artefactos, hunts orquestados y monitorización con reglas propias
- Frente a KAPE: KAPE recoge triaje en una máquina; Velociraptor hace lo mismo en remoto y sobre miles
2. Arquitectura
| Componente | Función | Notas |
|---|---|---|
| Servidor (frontend + GUI) | Orquesta, guarda resultados, sirve la interfaz web y la API | Un solo binario; escala a cientos de miles de clientes con varios frontends |
| Cliente / agente | Ejecuta VQL localmente y devuelve resultados | El mismo binario en modo cliente; Windows, Linux y macOS |
| Comunicación | El cliente inicia la conexión al servidor (saliente), cifrada y con certificados propios | Funciona a través de proxy; el cliente hace ‘polling’, el servidor encola tareas |
| Datastore | Ficheros en disco (o S3/GCS): resultados, artefactos subidos, notebooks | Sin base de datos externa que administrar |
| Offline collector | Binario autónomo que ejecuta una recogida sin servidor | Para equipos aislados o de terceros con autorización |
El despliegue típico: se genera una configuración de servidor y otra de cliente, el agente se instala como servicio (MSI/paquete/GPO) y se conecta de salida al servidor. No hace falta abrir puertos entrantes en los endpoints.
3. VQL: el corazón de la herramienta
VQL (Velociraptor Query Language) es un lenguaje parecido a SQL con el que se expresa todo en Velociraptor: los artefactos, los hunts, las reglas de monitorización y el post-procesado en los notebooks. Un artefacto no es más que un YAML con una o varias consultas VQL y sus parámetros.
La sintaxis básica es SELECT … FROM plugin() WHERE …. Los «plugins» son las fuentes: pslist(), glob() para ficheros, winreg para el registro, parse_evtx() para Event Logs, parse_mft(), pe_dump(), yara(), etc. Ejemplo de lectura: procesos cuyo binario está en una ruta temporal.
-- Procesos ejecutandose desde rutas sospechosas (consulta de LECTURA)
SELECT Pid, Ppid, Name, Exe, CommandLine, Username,
hash(path=Exe).SHA256 AS SHA256
FROM pslist()
WHERE Exe =~ '(?i)(\\Temp\\|\\Users\\Public\\|\\ProgramData\\)'
-- Claves Run de todos los usuarios del equipo
SELECT * FROM Artifact.Windows.Registry.RunKeys()
-- Buscar un hash concreto en el disco (IOC de fichero)
SELECT FullPath, Size, Mtime, hash(path=FullPath).SHA256 AS SHA256
FROM glob(globs='C:/**/*.exe')
WHERE SHA256 = 'aabbcc...' -- hash del indicadorLo importante: la misma consulta que se prueba en un equipo en la consola interactiva («Velociraptor query») es la que después se lanza como hunt contra toda la flota, sin cambios.
4. Artefactos
Un artefacto empaqueta una investigación reutilizable: nombre, descripción, parámetros, las consultas VQL y el formato de salida. Velociraptor trae cientos incluidos, organizados por sistema y por propósito:
| Familia | Ejemplos | Uso |
|---|---|---|
| Windows.* | Registry.RunKeys, System.Pslist, EventLogs.*, Forensics.Prefetch, Forensics.SRUM, Detection.Amcache | Persistencia, ejecución, artefactos de disco |
| Windows.KapeFiles.Targets | Recogida de triaje estilo KAPE (hives, evtx, $MFT, navegador…) | Paquete de triaje remoto en un ZIP |
| Linux.* | Sys.Crontab, Sys.SystemdUnits, Ssh.AuthorizedKeys, Sys.BashHistory | Triaje y persistencia en Linux |
| Generic.* | Detection.Yara.*, Client.Info, Network.NetstatEnriched | Multiplataforma |
| Exchange (comunidad) | Cientos de artefactos aportados por analistas | Repositorio ‘Velociraptor Artifact Exchange’ |
Los artefactos de la comunidad se importan desde el Artifact Exchange y se revisan antes de usarlos igual que cualquier código de terceros. También se escriben artefactos propios para las detecciones de tu organización.
5. Hunts: una pregunta para toda la flota
Un hunt es la ejecución de un artefacto contra un conjunto de clientes (todos, o filtrados por etiqueta, sistema operativo o grupo). El servidor lo encola; cada cliente lo ejecuta cuando conecta y devuelve sus filas; el resultado se agrega en una sola tabla y se puede exportar o analizar en un notebook.
- Flujo: crear hunt -> elegir artefacto y parámetros -> acotar el ámbito -> lanzar -> revisar resultados agregados
- Coste: los hunts se pueden limitar en CPU, tiempo y tamaño de subida por cliente para no impactar producción
- Notebooks: cada hunt lleva un cuaderno con celdas VQL para filtrar, agrupar y pivotar sobre lo recogido (por ejemplo, ‘agrupa por SHA256 y cuenta en cuántos equipos aparece’)
- Reejecutar: un hunt puede quedar activo para que los equipos que estaban apagados lo ejecuten al volver
-- Notebook: sobre los resultados de un hunt de RunKeys, encontrar valores raros
SELECT Name, Command, count() AS Equipos,
enumerate(items=ClientId) AS Muestra
FROM source(artifact='Windows.Registry.RunKeys')
GROUP BY Name, Command
ORDER BY Equipos
-- las entradas presentes en 1-2 equipos y no en el resto son las interesantes6. Recogida forense y monitorización
Recogida en remoto
- Triaje: Windows.KapeFiles.Targets o Linux artefactos de triaje devuelven un ZIP con los artefactos clave del host, listo para procesar con las EZ Tools o plaso
- Ficheros concretos: subir un binario sospechoso, un log, un volcado; todo queda asociado al cliente y con su hash
- Memoria: integración para volcado con WinPmem / AVML y análisis posterior
- Sistema de ficheros crudo: Velociraptor accede a NTFS a bajo nivel (parse_ntfs, $MFT, ADS, ficheros bloqueados o borrados) sin depender de la API de Windows
Monitorización de eventos
Además del modo bajo demanda, cada cliente puede ejecutar consultas VQL en streaming que reaccionan a eventos del sistema (creación de procesos vía ETW, cambios en el registro, conexiones, nuevos servicios) y envían un evento al servidor cuando se cumple una regla. Es un modo parecido a Sysmon + reglas, pero con la expresividad de VQL y sin instalar nada más.
No es un EDR de bloqueo
Velociraptor observa y recoge; no mata procesos ni pone en cuarentena por sí solo (se puede programar una respuesta con VQL, pero no es su objetivo) · La monitorización con ETW y YARA sobre disco tiene coste de CPU/IO: probar el impacto antes de desplegar a toda la flota · Un cliente comprometido con privilegios de SISTEMA puede intentar manipular su propio agente: los resultados de un solo endpoint se corroboran con otras fuentes
7. Casos de uso
- Barrido de IOC: ha salido un aviso con hashes, nombres de fichero y claves de registro. Un hunt con un artefacto de detección responde en una hora en cuántos equipos aparece cada indicador
- Timeline de un host: artefactos de MFT, Prefetch, EventLogs, AmCache y navegador sobre un equipo concreto, exportados y combinados en una super-timeline (enlaza con el artículo de plaso)
- Caza de persistencia: hunt de RunKeys, ScheduledTasks, Services, WMI event subscriptions y, en Linux, cron/systemd/authorized_keys; después, en el notebook, quedarse con lo que aparece en pocos equipos
- Alcance de un compromiso: desde un equipo confirmado, buscar el mismo binario, la misma IP de C2 en netstat, o el mismo usuario creado, en el resto de la flota
- Verificación de remediación: repetir el hunt tras la limpieza para confirmar que el indicador ya no está en ningún sitio
Marco de actuación
Velociraptor se despliega sobre el parque propio de la organización o sobre aquel para el que se tiene mandato expreso (contrato de respuesta a incidentes, encargo de tratamiento, orden de la dirección). El offline collector contra equipos de terceros requiere su autorización · El agente da acceso remoto completo al contenido de los equipos: su tratamiento se rige por el RGPD y la LOPDGDD (finalidad, minimización, plazos) y por la normativa laboral; informar a la plantilla y, cuando proceda, a su representación (art. 87 LOPDGDD sobre dispositivos digitales en el trabajo) · Usar la herramienta para acceder a sistemas ajenos sin autorización puede ser delito en España (arts. 197 bis, 197 ter y 264 del Código Penal) · Las recogidas son evidencia: hash automático, cadena de custodia y análisis sobre copias (ver el artículo de cadena de custodia)
Referencias
Documentación oficial: docs.velociraptor.app (deployment, VQL reference, artifacts) · Velociraptor Artifact Exchange — artefactos de la comunidad · ‘Digital Forensics with Open Source Tools’ y los talleres de DFIR de la propia herramienta · SANS FOR508 incluye Velociraptor en el temario de respuesta a incidentes a escala · Blog de Rapid7 / de los mantenedores para casos de uso y novedades · Nuestros artículos de Wazuh, Volatility 3, líneas de tiempo forenses y el registro de Windows
Conclusión
Velociraptor cubre el hueco entre «tengo la máquina delante» y «tengo que responder por toda la organización». Su idea central es simple: una consulta VQL que funciona en un equipo funciona igual lanzada como hunt contra diez mil, y el resultado vuelve agregado y listo para pivotar.
Para empezar: monta un servidor de laboratorio, despliega el agente en unas cuantas máquinas, y practica con los artefactos incluidos -RunKeys, Pslist, EventLogs, KapeFiles- antes de un incidente. Cuando llegue el real, tendrás la vía para barrer IOCs, medir el alcance y verificar la limpieza en horas. Y trata cada recogida como lo que es: evidencia, con su hash y su cadena de custodia.
unfantasmaenelsistema.com | Seguridad, sistemas y todo lo que no debería funcionar (pero funciona)

