Velociraptor
Plataforma open source de threat hunting y forense digital a escala que permite recolectar artefactos, ejecutar consultas y responder a incidentes en miles de endpoints simultáneamente. Trabaja sobre todo bajo demanda, de modo que complementa a un EDR de detección continua en lugar de sustituirlo.
¿Qué es Velociraptor?
Velociraptor es una plataforma open source diseñada para respuesta a incidentes, threat hunting y forense digital a escala. La creó Mike Cohen, que fundó Velocidex tras ocho años en Google, y desde 2021 la mantiene Rapid7, que firma el binario incluido en el MSI oficial —el MSI reempaquetado hay que firmarlo aparte—. Permite a los equipos de seguridad y peritos forenses:
- Recolectar artefactos de miles de endpoints simultáneamente
- Ejecutar consultas en tiempo real sobre sistemas en vivo
- Hunting de amenazas con lenguaje de consulta flexible (VQL)
- Monitorizar eventos concretos de forma continua cuando se configura para ello
- Automatizar respuesta a incidentes
El Nombre
El nombre “Velociraptor” evoca velocidad y precisión: la capacidad de cazar amenazas rápidamente a través de toda la infraestructura, como el dinosaurio cazador del que toma su nombre.
Arquitectura
Componentes Principales
| Componente | Función |
|---|---|
| Server | Servidor central que gestiona clientes y almacena datos |
| Client | Agente ligero desplegado en endpoints |
| GUI | Interfaz web para análisis y hunting |
| VQL | Lenguaje de consulta para artefactos |
Modelo de Despliegue
┌─────────────┐
│ Server │
│ (Central) │
└──────┬──────┘
│
┌──────────────────┼──────────────────┐
│ │ │
┌────▼────┐ ┌────▼────┐ ┌────▼────┐
│ Client │ │ Client │ │ Client │
│ (Win) │ │ (Linux) │ │ (Mac) │
└─────────┘ └─────────┘ └─────────┘VQL: Velociraptor Query Language
VQL es el corazón de Velociraptor. Es un lenguaje de consulta similar a SQL pero diseñado para forense:
Ejemplos de Consultas
Listar procesos en ejecución:
SELECT Pid, Name, Exe, CommandLine
FROM pslist()Buscar archivos por hash:
SELECT OSPath, hash(path=OSPath).SHA256 AS SHA256
FROM glob(globs="C:/Users/*/Downloads/*")
WHERE SHA256 = "<huella SHA-256 completa, 64 caracteres hexadecimales>"glob() no calcula huellas
glob() devuelve Name, OSPath, Mtime, Size y poco más: no emite una columna Hash. Filtrar por Hash.SHA256 no da error — devuelve null, la consulta no casa con nada y el hunt vuelve vacío, de modo que el analista concluye que no hay hallazgos. La huella se calcula con la función hash(), como arriba. Es la trampa más cara de VQL: una columna que no existe no falla, calla.
Buscar conexiones de red sospechosas:
SELECT Pid, Raddr.IP AS RemoteIP, Raddr.Port AS RemotePort, Status
FROM netstat()
WHERE Raddr.Port IN (4444, 5555, 6666)Las columnas de netstat() son Fd, Family, Type, Laddr, Raddr, Status y Pid; la dirección remota viaja anidada en Raddr. Un WHERE RemotePort IN (…) sobre el nombre plano devuelve cero filas aunque el puerto esté abierto, por la misma razón que el ejemplo anterior.
Timeline de ejecución de programas (Prefetch):
SELECT Executable, LastRunTimes, RunCount
FROM Artifact.Windows.Forensics.Prefetch()
ORDER BY LastRunTimes DESCPotencia de VQL
VQL permite combinar múltiples fuentes de datos, filtrar, transformar y correlacionar información de forma que sería imposible con herramientas tradicionales.
Artefactos Disponibles
Velociraptor incluye cientos de artefactos predefinidos:
Windows
| Categoría | Artefactos |
|---|---|
| Sistema | MFT, Registry, Event Logs, Prefetch |
| Usuario | Shellbags, Recent Files, Jump Lists |
| Red | Netstat, DNS Cache, ARP |
| Memoria | Process List, Handles, DLLs |
| Malware | YARA scans, Autoruns, Services |
Linux
| Categoría | Artefactos |
|---|---|
| Sistema | /var/log/*, crontabs, services |
| Usuario | bash_history, SSH keys, home dirs |
| Red | Linux.Network.Netstat, Linux.Network.NetstatEnriched |
| Contenedores | Linux.Applications.Docker.Info, Linux.Applications.Docker.Version |
macOS
| Categoría | Artefactos |
|---|---|
| Sistema | MacOS.System.Plist, MacOS.Detection.Autoruns |
| Usuario | MacOS.Applications.Chrome.History |
| Aplicaciones | MacOS.System.QuarantineEvents, MacOS.Forensics.FSEvents |
Lo que el catálogo embebido no trae
En el catálogo embebido de 0.77.2 no hay artefactos nombrados para Unified Logs, historial de Safari ni Keychain. Launch Agents sí está cubierto: MacOS.Detection.Autoruns —el que aparece en la tabla de arriba— recorre LaunchAgents y LaunchDaemons.
Sobre el recuento: el árbol del tag v0.77.2 contiene 421 definiciones YAML. La cifra de 440 que suele citarse procede de velociraptor artifacts list sobre el binario, que cuenta también los alias; son dos formas distintas de contar y conviene decir cuál se usa.
En cualquier caso, antes de planificar una recolección hay que listar lo que realmente trae la versión instalada —velociraptor artifacts list— en lugar de dar por supuesto un nombre: un artefacto inexistente no aborta el hunt, lo deja sin resultados.
Casos de Uso Forense
Investigación de Ransomware a Escala
Obtener autorización por escrito y documentar el impacto previsto. Va primero, no al final: el agente ejecuta código en el endpoint con privilegios de sistema. Sin ese paso, todo lo que sigue es intervención no autorizada sobre equipos ajenos.
Desplegar el agente en el alcance autorizado (si no está ya).
Hunt inicial con reglas YARA sobre las rutas donde el cifrador suele dejar rastro:
SELECT * FROM Artifact.Windows.Detection.Yara.Glob( PathGlob="C:/Users/*/AppData/Local/Temp/*", YaraUrl="https://<servidor-interno>/reglas/ransomware.yar" )Recolectar artefactos de los sistemas afectados. Aquí hay una trampa que conviene conocer antes de escribir el hunt:
Windows.KapeFiles.TargetsyWindows.Triage.Targets—los colectores que suelen citarse— no están en el catálogo embebido de 0.77.2, y sus páginas de referencia responden 404. YWindows.KapeFiles.Extract, que es lo que aparece en su lugar en muchos recetarios, no recolecta nada: es un artefacto de tipoSERVERque desempaqueta en el servidor un ZIP ya recogido. Lanzarlo contra el endpoint no devuelve error, devuelve vacío.Hasta importar el pack de triaje desde el repositorio de artefactos, hay que recolectar con los artefactos que sí trae el binario, comprobados con
velociraptor artifacts list.Buscar IOCs en memoria en el alcance autorizado:
SELECT * FROM Artifact.Windows.Detection.Yara.Process( YaraUrl="https://<servidor-interno>/reglas/ransomware.yar" )Timeline de la propagación, recortando por el parámetro del propio artefacto:
SELECT * FROM Artifact.Windows.Timeline.MFT(DateAfter="2026-01-15T00:00:00Z")
Hunting de Persistencia
Buscar mecanismos de persistencia en todos los endpoints:
-- Tareas programadas sospechosas
SELECT * FROM Artifact.Windows.System.TaskScheduler()
WHERE Command =~ "powershell|cmd|wscript"
-- Servicios anómalos
SELECT * FROM Artifact.Windows.System.Services()
WHERE PathName =~ "temp|appdata|public"
-- Autoruns sin editor identificado
SELECT * FROM Artifact.Windows.Sysinternals.Autoruns()
WHERE Publisher = NULL OR Publisher = ""Un filtro sobre una columna inexistente lo marca TODO
La columna que saca autorunsc es Publisher. Escribir WHERE NOT Signer sobre una columna que el artefacto no emite no devuelve cero filas: devuelve todas, porque en VQL una columna ausente vale null y NOT null se evalúa como cierto. Es el error inverso al de glob() y el más peligroso de los dos en un hunt de persistencia: entrega un listado completo del arranque de cada máquina disfrazado de hallazgos.
Investigación de Insider Threat
-- Rastro de actividad en el perfil del usuario.
-- Ojo: Windows.Registry.NTUser parsea NTUSER.DAT (por defecto, ComDlg32),
-- que es el hive del USUARIO. NO sirve para USBSTOR, que vive en
-- HKLM\SYSTEM y necesita otro artefacto.
SELECT * FROM Artifact.Windows.Registry.NTUser()
-- Cloud storage sincronizado
SELECT * FROM glob(globs=[
"C:/Users/*/Dropbox/**",
"C:/Users/*/OneDrive/**",
"C:/Users/*/Google Drive/**"
])Ventajas sobre Herramientas Tradicionales
| Aspecto | Velociraptor | Herramientas Tradicionales |
|---|---|---|
| Escala | Miles de endpoints | Un sistema a la vez |
| Velocidad | Consultas concurrentes en el alcance desplegado | Un sistema cada vez |
| Flexibilidad | VQL personalizable | Artefactos fijos |
| Coste | Licencia AGPL-3.0, sin coste de adquisición | Licencia comercial según fabricante |
| Integración | API, exportación | Según producto |
| Huella en el equipo | Ejecuta código en el endpoint | La imagen forense es pasiva |
Integración con Otras Herramientas
| Herramienta | Integración |
|---|---|
| KAPE | Reutiliza los targets .tkape del repositorio comunitario KapeFiles, no el binario kape.exe |
| YARA | Escaneos YARA en memoria y disco |
| Sigma | Reglas Sigma para detección |
| TheHive | Gestión de casos |
| Elastic/Splunk | Exportación de resultados |
Consideraciones Forenses
Validez Judicial
Ninguna herramienta trae la validez judicial incorporada, y Velociraptor tampoco. El art. 348 LEC somete el dictamen pericial a la sana crítica del tribunal, y el art. 741 LECrim reserva al órgano judicial la apreciación de la prueba en el proceso penal. Lo que se valora, con la herramienta que sea, es si el método empleado es reproducible y verificable por un tercero, y si el perito puede explicarlo y sostenerlo en la ratificación en juicio.
Lo que sí está en manos del perito es no perder por el camino lo que la herramienta sí puede sostener:
- Autorización previa y documentada del titular o del órgano judicial. Es la primera, no la última: Velociraptor ejecuta código en equipos ajenos.
- La consulta exacta ejecutada, transcrita literalmente, no descrita. Es lo que permite repetirla.
- La cadena de custodia de lo recolectado, desde la extracción hasta la entrega.
- Las huellas SHA-256 de cada fichero extraído, calculadas en el momento de la adquisición.
- El servidor, endurecido y con su propio registro de acceso: quien lo administra puede alterar lo que guarda, y esa es la primera pregunta de un contraperito.
Documentación recomendada del hunt
Lo que sigue es la plantilla de lo que conviene dejar registrado por cada hunt, no el registro de una actuación concreta. Los corchetes se rellenan con los valores reales en el momento de ejecutarla:
DOCUMENTACIÓN DE HUNTING VELOCIRAPTOR
Caso: [identificador interno del expediente]
Fecha: [ISO 8601 en UTC con offset]
Analista: [nombre y apellidos de quien ejecuta]
Autorización: [órgano o titular que la concede, y fecha]
Hunt ID: [el que asigna el servidor]
Descripción: [objetivo del hunt, en una línea]
Consulta VQL (transcrita literalmente, no descrita):
SELECT * FROM Artifact.Windows.Detection.Yara.Glob(
PathGlob="C:/Windows/Temp/*",
YaraUrl="https://<servidor-interno>/reglas/lockbit.yar"
)
Endpoints consultados: [total del alcance autorizado]
Endpoints con hallazgos: [total]
Resultados exportados: [nombre del fichero]
Hash resultados: SHA-256 [64 caracteres hexadecimales, completos]Impacto en Sistemas
A diferencia de una imagen forense pasiva, Velociraptor ejecuta código en los endpoints. Documenta siempre el impacto potencial y obtén autorización antes de ejecutar artefactos que modifiquen estado.
Despliegue Básico
Instalación del Server
## Descargar binario. El nombre del activo lleva la versión dentro
## (velociraptor-vX.Y.Z-linux-amd64), así que no existe una ruta fija
## /latest/download/: hay que resolver la última publicación.
curl -s https://api.github.com/repos/Velocidex/velociraptor/releases/latest \
| grep -oE 'https://[^"]+linux-amd64' | head -1 | xargs curl -LO
## El fichero descargado conserva el nombre del activo (velociraptor-vX.Y.Z-linux-amd64)
## y llega sin bit de ejecución, porque HTTP no transporta permisos.
mv velociraptor-v*-linux-amd64 velociraptor && chmod +x velociraptor
## Generar configuración
./velociraptor config generate -i
## Iniciar server
./velociraptor --config server.config.yaml frontendCrear Instalador de Cliente
## Windows: --msi NO es un interruptor, sino la ruta al MSI oficial
## que se usa de plantilla para incrustar la configuración del cliente.
./velociraptor config repack --msi velociraptor-windows.msi \
client.config.yaml velociraptor-windows-repacked.msi
## Linux: el paquete Debian NO se hace con repack, sino con su propio subcomando.
./velociraptor debian client --config client.config.yaml`config repack` no empaqueta para Debian
config repack acepta --exe, --msi y --binaries, y no tiene --deb: el comando rechaza ese flag como desconocido. El paquete de Linux lo construye velociraptor debian client, documentado en el despliegue de clientes de Velociraptor. Y --msi espera un fichero MSI: pasarle el YAML hace que el comando tome la configuración por plantilla y falle con no such file or directory.
Recursos y Comunidad
- Documentación: docs.velociraptor.app
- GitHub: Velocidex/velociraptor
- Discord: invitación oficial desde la documentación
- Formación: el temario de SANS FOR508 incluye el módulo «Scaling Remote Endpoint Incident Response, Hunting, and Analysis Using Velociraptor» (comprobado el 27 de agosto de 2026)
Conclusión
Velociraptor cambió la escala del forense de respuesta: donde antes había que ir equipo por equipo, permite lanzar la misma pregunta sobre todo el parque desplegado y recoger las respuestas en un único sitio. Esa es su ventaja real, y tiene una contrapartida que conviene tener presente en sede judicial: a diferencia de una imagen forense, Velociraptor no es pasivo — ejecuta código en el equipo investigado. Por eso la autorización y el registro de cada consulta no son burocracia, son lo que permite sostener después el trabajo ante un tribunal.
Si necesitas una recolección a escala documentada para aportarla a un procedimiento, puedes consultar el caso o revisar cómo se prepara un informe pericial informático. Quién firma y con qué método, en sobre mí.
¿Necesitas una recolección a escala que aguante en el juzgado?
Un hunt mal documentado se impugna igual que una captura de pantalla. Cuéntame el alcance y te digo qué se puede sostener y qué no.
Última actualización: 27 de agosto de 2026 Categoría: Herramienta Código: VEL-001
Preguntas Frecuentes
¿Qué es Velociraptor?
Velociraptor es una plataforma open source para recolección forense y threat hunting sobre parques de equipos, con visibilidad continua opcional. No es un EDR ni lo sustituye: no bloquea ni responde por sí solo, complementa a uno. Permite ejecutar consultas y recolectar artefactos en miles de sistemas simultáneamente.
¿Velociraptor es gratuito?
Sí: el código está bajo licencia AGPL-3.0 y el binario se descarga sin coste. Lo creó Mike Cohen, que fundó Velocidex tras ocho años en Google, y desde 2021 el proyecto lo mantiene Rapid7. Un matiz que importa al desplegar: lo que Rapid7 firma es el binario que va dentro del MSI oficial; si se reempaqueta el MSI, la firma del paquete corre a cargo del operador.
¿Cuál es la diferencia entre Velociraptor y un EDR?
Velociraptor se centra en hunting y forense bajo demanda, mientras que los EDR tradicionales se enfocan en detección continua. Velociraptor es más flexible para investigaciones profundas y recolección de artefactos específicos.
Términos Relacionados
KAPE
Kroll Artifact Parser and Extractor (KAPE) es una herramienta de recolección y procesamiento rápido de artefactos en sistemas Windows, desarrollada por Eric Zimmerman y mantenida por Kroll. Su licencia la ofrece sin coste a organismos públicos, a la enseñanza y la investigación y al uso interno de una empresa, pero excluye el uso comercial sobre la red de un tercero o dentro de un encargo remunerado.
Análisis Forense Digital
Conjunto de procedimientos científicos y técnicos para identificar, preservar y analizar evidencias digitales admisibles en juicios civiles, penales o laborales.
Plan de Respuesta a Incidentes
Documento estrategico que define los procedimientos, roles y herramientas que una organizacion debe activar ante un ciberincidente. Basado en el marco NIST SP 800-61, estructura las fases de preparacion, detección, contencion, erradicacion, recuperacion y lecciones aprendidas, garantizando la preservacion de evidencia digital para acciones legales.
Timeline Forense
Representación ordenada cronológicamente de todos los eventos relevantes extraídos de sistemas digitales, permitiendo reconstruir qué ocurrió, cuándo y en qué secuencia.
¿Necesitas un peritaje forense?
Si necesitas ayuda profesional con análisis forense digital, estoy aquí para ayudarte.
Solicitar Consulta Gratuita
