| name | implementing-velociraptor-for-ir-collection |
| description | 在事件响应中部署和配置 Velociraptor,使用 VQL 查询、Hunt 和预置产物包,在 Windows、Linux 和 macOS 环境中进行可扩展的端点取证产物采集。 |
| domain | cybersecurity |
| subdomain | incident-response |
| tags | ["velociraptor","dfir","endpoint-collection","vql","forensic-artifacts","rapid7","threat-hunting","incident-response"] |
| version | 1.0 |
| author | mahipal |
| license | Apache-2.0 |
使用 Velociraptor 进行事件响应采集(Implementing Velociraptor for IR Collection)
概述
Velociraptor 是由 Rapid7 开发的高级开源端点监控、数字取证和事件响应平台。它使用 Velociraptor 查询语言(Velociraptor Query Language,VQL)创建自定义产物,可采集、查询和监控端点的几乎所有方面。Velociraptor 使事件响应团队能够快速从整个网络采集和检查取证产物,支持对性能影响极小的大规模部署。基于 Fleetspeak 通信的客户端-服务器架构可同时从数千个端点实时采集数据,离线端点在重新连接后也会自动补充执行 Hunt 任务。
架构
组件
- Velociraptor Server:具有 Web UI 和 API 的中央管理控制台
- Velociraptor Client(Agent):部署到端点的轻量级 Agent
- Fleetspeak:客户端与服务器之间的通信框架
- VQL Engine:用于产物采集的查询语言引擎
- Filestore:服务器端已采集产物的存储
- Datastore:Hunt、Flow 和客户端信息的元数据存储
支持平台
- Windows(7+,Server 2008R2+)
- Linux(Debian、Ubuntu、CentOS、RHEL)
- macOS(10.13+)
部署
服务器安装
wget https://github.com/Velocidex/velociraptor/releases/latest/download/velociraptor-linux-amd64
./velociraptor-linux-amd64 config generate -i
./velociraptor-linux-amd64 --config server.config.yaml frontend
sudo cp velociraptor-linux-amd64 /usr/local/bin/velociraptor
sudo velociraptor --config /etc/velociraptor/server.config.yaml service install
客户端部署
velociraptor --config server.config.yaml config client > client.config.yaml
velociraptor config repack --msi velociraptor-windows-amd64.msi client.config.yaml output.msi
velociraptor --config client.config.yaml client -v
velociraptor --config client.config.yaml client -v
Docker 部署
docker run --name velociraptor \
-v /opt/velociraptor:/velociraptor/data \
-p 8000:8000 -p 8001:8001 -p 8889:8889 \
velocidex/velociraptor
核心 IR 产物采集
Windows 取证产物
SELECT * FROM Artifact.Windows.EventLogs.EvtxHunter(
EvtxGlob="C:/Windows/System32/winevt/Logs/*.evtx",
IDRegex="4624|4625|4648|4672|4688|4698|4769|7045"
)
SELECT * FROM Artifact.Windows.Forensics.Prefetch()
SELECT * FROM Artifact.Windows.Registry.AppCompatCache()
SELECT * FROM Artifact.Windows.Forensics.Amcache()
SELECT * FROM Artifact.Windows.Forensics.UserAssist()
SELECT * FROM Artifact.Windows.NTFS.MFT(
MFTFilename="C:/$MFT",
FileRegex=".(exe|dll|ps1|bat|cmd)$"
)
SELECT * FROM Artifact.Windows.System.TaskScheduler()
SELECT * FROM Artifact.Windows.System.Pslist()
SELECT * FROM Artifact.Windows.Network.Netstat()
SELECT * FROM Artifact.Windows.Network.DNSCache()
SELECT * FROM Artifact.Windows.Applications.Chrome.History()
Artifact.Windows.Forensics.PowerShellHistory()
Artifact.Windows.Persistence.PermanentWMIEvents()
Artifact.Windows.System.Services()
Artifact.Windows.System.StartupItems()
Linux 取证产物
SELECT * FROM Artifact.Linux.Sys.AuthLogs()
SELECT * FROM Artifact.Linux.Forensics.BashHistory()
SELECT * FROM Artifact.Linux.Sys.Crontab()
SELECT * FROM Artifact.Linux.Sys.Pslist()
SELECT * FROM Artifact.Linux.Network.Netstat()
SELECT * FROM Artifact.Linux.Ssh.AuthorizedKeys()
SELECT * FROM Artifact.Linux.Services()
分类采集(一体化)
SELECT * FROM Artifact.Windows.KapeFiles.Targets(
Device="C:",
_AllFiles=FALSE,
_EventLogs=TRUE,
_Prefetch=TRUE,
_RegistryHives=TRUE,
_WebBrowsers=TRUE,
_WindowsTimeline=TRUE
)
Hunt 操作
创建 Hunt
1. 在 Velociraptor Web UI 中导航到 Hunt Manager
2. 点击 "New Hunt"
3. 配置:
- 描述:"IR Triage - Case 2025-001"
- 包含/排除标签以定向目标
- 产物选择(如 Windows.Forensics.Prefetch)
- 资源限制(CPU、IOPS、超时)
4. 启动 Hunt
5. 实时监控进度
VQL Hunt 示例
SELECT * FROM Artifact.Generic.Detection.HashHunter(
Hashes="e99a18c428cb38d5f260853678922e03"
)
SELECT * FROM Artifact.Windows.Detection.Yara.Process(
YaraRule='rule malware { strings: $s1 = "malicious_string" condition: $s1 }'
)
SELECT * FROM Artifact.Server.Import.SigmaRules()
SELECT * FROM Artifact.Windows.System.TaskScheduler()
WHERE Command =~ "powershell|cmd|wscript|mshta|rundll32"
SELECT * FROM Artifact.Windows.Network.Netstat()
WHERE RemoteAddr =~ "10\\.13\\.37\\."
实时监控
SELECT * FROM watch_etw(guid="{22fb2cd6-0e7b-422b-a0c7-2fad1fd0e716}")
WHERE EventData.ImageName =~ "powershell|cmd|wscript"
SELECT * FROM watch_directory(path="C:/Windows/Temp/")
SELECT * FROM watch_registry(key="HKLM/SOFTWARE/Microsoft/Windows/CurrentVersion/Run/**")
与 SIEM/SOAR 集成
Splunk 集成
Velociraptor Server --> Elastic/OpenSearch --> Splunk HEC
--> 直接 syslog 转发
--> Velociraptor API --> 自定义脚本 --> Splunk
Elastic Stack 集成
Monitoring:
elastic:
addresses:
- https://elastic.local:9200
username: velociraptor
password: secure_password
index: velociraptor
MITRE ATT&CK 映射
| 技术 | VQL 产物 |
|---|
| T1059 - 命令脚本 | Windows.EventLogs.EvtxHunter (4104, 4688) |
| T1053 - 计划任务 | Windows.System.TaskScheduler |
| T1547 - 启动/登录自动启动 | Windows.Persistence.PermanentWMIEvents |
| T1003 - OS 凭据转储 | Windows.Detection.Yara.Process |
| T1021 - 远程服务 | Windows.EventLogs.EvtxHunter (4624 Type 3/10) |
| T1070 - 指标删除 | Windows.EventLogs.Cleared |
参考资料