Velociraptor — fleet hunting and live IR
TL;DR: Velociraptor (Rapid7-owned, AGPL-3.0) is an endpoint-agent + server platform for fleet-wide hunting via VQL — SQL-like queries that pull artefacts (KAPE-equivalent collection, registry reads, process introspection, EVTX search) from thousands of hosts in parallel. It’s the open-source backbone of modern incident response.
What it is
Velociraptor consists of:
- A single binary that runs as server (multi-host) or client (endpoint agent), based on config
- Artefacts — VQL scripts in YAML defining collection logic (community-maintained at
artifacts/) - Hunts — fleet-wide artefact runs targeting selected clients
- Notebooks — Jupyter-style VQL workbench for ad hoc analysis
Preconditions / where it applies
- Need agents installed (MSI, EXE, deb, rpm) or live-binary mode (
velociraptor.exe -istandalone collection) - Server reachable from clients (default port 8000 with self-signed CA bundled per deployment)
- VQL knowledge — small DSL but distinct from SQL
Tradecraft
Standalone collection (no server — ideal for single-host IR):
velociraptor.exe -v artifacts collect Windows.KapeFiles.Targets \
--args "Device=C:" --args "_SANS_Triage=Y" --output triage.zip
The Windows.KapeFiles.Targets artefact ports KAPE Targets to VQL; no separate KAPE install needed. See kape-triage-collection for the same artefact list.
Hunt for a specific IOC across the fleet:
1
2
3
4
-- Notebook query, runs on all selected clients
SELECT FullPath, Size, Mtime, Hash.SHA256 AS sha256
FROM glob(globs="C:/Windows/Temp/*.exe")
WHERE Hash.SHA256 = '8f7b...'
Or run via Hunt UI: pick artefact Windows.Search.FileFinder, parameter SHA256=8f7b..., target All clients. Results stream back as each agent reports.
Live process introspection (no LOLBins):
1
2
3
4
SELECT Pid, Name, CommandLine, CreateTime, Username
FROM pslist()
WHERE Name =~ 'powershell.exe'
AND CommandLine =~ '(?i)downloadstring|invoke-expression|frombase64string'
Memory acquisition from active malware on a remote host:
1
2
3
SELECT * FROM Artifact.Windows.Memory.Acquisition(
Pid=4123,
OutputDir='C:/Temp')
Velociraptor uses winpmem under the hood; resulting RAW can be piped to volatility-plugins.
Persistent hunt for new privileged process tree — runs continuously:
1
2
-- Artifact: Generic.Detection.Yara.Process — scans process memory with YARA
-- Schedule via Server.Audit.PolicySync to apply across fleet
Live EVTX hunting (the SOC-grade alternative to KAPE+Hayabusa for fleets):
1
2
3
SELECT * FROM Artifact.Windows.EventLogs.Hayabusa(
EvtxGlob="C:/Windows/System32/winevt/Logs/*.evtx",
Level="high")
Yes — Velociraptor literally embeds Hayabusa as an artefact. Fleet-wide Sigma hunting in one query.
Quarantine a host while you investigate:
1
2
SELECT * FROM Artifact.Windows.Remediation.Quarantine()
-- Sets host into isolation: only the Velociraptor server can reach it
Useful built-in artefacts to memorise:
Windows.Sys.Users— local + cached logonsWindows.System.Pslist— process tree with hashesWindows.Registry.NTUser.Run— autorunsGeneric.Forensic.LocalHashes.Glob— file hash sweepWindows.Network.Netstat— open connections + owning processLinux.Network.Connections— same on LinuxWindows.System.AmcacheReport— recent executions
Detection and defence (analyst tradecraft)
- Keep server in a hardened VPC; the GUI gives full LOLBin-equivalent capability — server compromise = fleet compromise
- Use roles:
analyst(read-only + run hunts),administrator(deploy artefacts, modify clients),api(script integration) - Sign custom artefacts before deploying — unsigned VQL can be rejected by client policy
- Velociraptor hunt notifications create rows in the Audit log; ingest into SIEM so legitimate IR is distinguishable from rogue admin use
- Default client polling 10s; for stealthy hunts set 60s+ to reduce footprint
OPSEC for defenders
- VQL is recorded server-side; treat case-relevant queries as evidence
- Hunts targeting “All clients” with broad artefacts (FileFinder over
C:\*) generate huge result sets — scope by OS, label, or hostname pattern first - If the attacker has Velociraptor server access, they get unbounded reach. Treat server admin creds as Tier-0
- For air-gapped or low-bandwidth segments, use Velociraptor’s collector binary to acquire offline, then upload archives to the server
References
See also: kape-triage-collection, hayabusa-windows-event-log-triage, chainsaw-evtx-hunting, volatility-plugins, memory-image-forensics, threat-hunting-methodology, hypothesis-driven-hunting, ir-from-source-signals, atomic-red-team-emulation-deep