name: ir-velociraptor description: > 使用Velociraptor查询语言(VQL)进行端点可见性、数字取证和事件响应,用于大规模证据收集和威胁狩猎。适用于以下场景: (1) 跨多个端点进行取证调查,(2) 搜索入侵指标或可疑活动,(3) 收集端点遥测数据和工件用于事件分析,(4) 执行实时响应和证据保全,(5) 监控端点安全事件,(6) 为特定威胁场景创建自定义取证工件。 version: 0.1.0 maintainer: SirAppSec category: incident-response tags: [forensics, incident-response, endpoint-detection, threat-hunting, vql, dfir, live-response, evidence-collection] frameworks: [MITRE-ATT&CK, NIST] dependencies: tools: [velociraptor] references:
- https://docs.velociraptor.app/
- https://github.com/Velocidex/velociraptor
- https://docs.velociraptor.app/artifact_references/
Velociraptor 事件响应
概述
Velociraptor 是一个端点可见性和取证平台,使用 Velociraptor 查询语言(VQL)收集基于主机的状态信息。它有三种核心模式:收集(针对性证据收集)、监控(持续事件捕获)和狩猎(主动威胁狩猎)。
何时使用此技能:
- 需要端点证据收集的主动事件响应
- 跨企业基础设施的威胁狩猎
- 数字取证调查和时间线分析
- 端点监控和异常检测
- 为特定威胁开发自定义取证工件
快速开始
本地取证分诊(独立模式)
# 为您的平台下载 Velociraptor 二进制文件
# https://github.com/Velocidex/velociraptor/releases
# 运行 GUI 模式进行交互式调查
velociraptor gui
# 在 https://127.0.0.1:8889/ 访问 Web 界面
# 默认管理员凭据显示在控制台输出中
企业服务器部署
# 生成服务器配置
velociraptor config generate > server.config.yaml
# 启动服务器
velociraptor --config server.config.yaml frontend
# 生成客户端配置
velociraptor --config server.config.yaml config client > client.config.yaml
# 跨端点部署客户端
velociraptor --config client.config.yaml client
核心事件响应工作流
工作流 1:初始入侵调查
进度: [ ] 1. 识别受影响端点和时间范围 [ ] 2. 收集认证日志和可疑登录 [ ] 3. 收集进程执行历史和命令行 [ ] 4. 提取网络连接工件 [ ] 5. 收集持久化机制(计划任务、自启动项、服务) [ ] 6. 分析文件系统修改和可疑文件 [ ] 7. 提取内存工件(如需要) [ ] 8. 构建时间线并记录入侵指标(IOC)
按步骤系统性地工作。勾选已完成的项目。
关键 VQL 工件:
Windows.EventLogs.RDP- 远程桌面认证事件Windows.System.Pslist- 运行进程详情Windows.Network.NetstatEnriched- 带进程上下文的网络连接Windows.Persistence.PermanentWMIEvents- 基于 WMI 的持久化Windows.Timeline.Prefetch- 程序执行时间线Windows.Forensics.Timeline- 综合文件系统时间线
工作流 2:威胁狩猎活动
进度: [ ] 1. 定义威胁假设和入侵指标(IOC) [ ] 2. 选择或创建用于检测的自定义 VQL 工件 [ ] 3. 创建针对相关端点组的狩猎任务 [ ] 4. 跨基础设施执行狩猎 [ ] 5. 监控收集进度和错误 [ ] 6. 分析结果并识别阳性匹配 [ ] 7. 分诊发现并上报确认的威胁 [ ] 8. 记录战术、技术和程序(TTP)并更新检测规则
按步骤系统性地工作。勾选已完成的项目。
常见狩猎场景:
- 横向移动检测(PsExec、WMI、远程服务)
- Web 服务器上的 Webshell 识别
- 可疑计划任务发现
- 凭据转储工具工件
- 恶意 PowerShell 执行模式
工作流 3:取证证据收集
进度: [ ] 1. 记录收集要求和范围 [ ] 2. 创建包含所需工件的离线收集器 [ ] 3. 将收集器部署到目标端点 [ ] 4. 执行收集并验证完成 [ ] 5. 检索收集存档 [ ] 6. 验证证据完整性(哈希值) [ ] 7. 导入到取证平台进行分析 [ ] 8. 记录证据保管链
按步骤系统性地工作。勾选已完成的项目。
# 创建离线收集器(无需服务器)
velociraptor --config server.config.yaml artifacts collect \
Windows.KapeFiles.Targets \
Windows.EventLogs.Evtx \
Windows.Registry.Sysinternals.Eulacheck \
--output /path/to/collection.zip
# 用于自定义工件收集
velociraptor artifacts collect Custom.Artifact.Name --args param=value
VQL 查询模式
模式 1:进程调查
搜索可疑进程执行模式:
-- 查找具有异常父子关系的进程
SELECT Pid, Ppid, Name, CommandLine, Username, Exe
FROM pslist()
WHERE Name =~ "(?i)(powershell|cmd|wscript|cscript)"
AND CommandLine =~ "(?i)(invoke|download|iex|bypass|hidden)"
模式 2:网络连接分析
识别可疑网络连接:
-- 带进程上下文的活跃连接
SELECT Laddr.IP AS LocalIP,
Laddr.Port AS LocalPort,
Raddr.IP AS RemoteIP,
Raddr.Port AS RemotePort,
Status, Pid,
process_tracker_get(id=Pid).Name AS ProcessName,
process_tracker_get(id=Pid).CommandLine AS CommandLine
FROM netstat()
WHERE Status = "ESTABLISHED"
AND Raddr.IP =~ "^(?!10\\.)" -- 仅外部 IP
模式 3:文件系统取证
时间线可疑文件修改:
-- 可疑位置最近的文件修改
SELECT FullPath, Size, Mtime, Atime, Ctime, Btime
FROM glob(globs="C:/Users/*/AppData/**/*.exe")
WHERE Mtime > timestamp(epoch=now() - 86400) -- 过去 24 小时
ORDER BY Mtime DESC
模式 4:注册表持久化
搜索基于注册表的持久化:
-- 常见的自启动注册表键
SELECT Key.Name AS RegistryKey,
ValueName,
ValueData
FROM read_reg_key(globs="HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Run/*")
WHERE ValueData =~ "(?i)(powershell|cmd|wscript|rundll32)"
有关全面的 VQL 模式和高级查询,请参阅 references/vql-patterns.md
自定义工件开发
为特定调查需求创建自定义 VQL 工件:
name: Custom.Windows.SuspiciousProcess
description: |
检测具有可疑特征的进程,用于事件响应。
parameters:
- name: ProcessNameRegex
default: "(?i)(powershell|cmd|wscript)"
type: regex
- name: CommandLineRegex
default: "(?i)(invoke|download|bypass)"
type: regex
sources:
- query: |
SELECT Pid, Ppid, Name, CommandLine, Username, Exe, CreateTime
FROM pslist()
WHERE Name =~ ProcessNameRegex
AND CommandLine =~ CommandLineRegex
将工件保存为 YAML 格式,并通过 Velociraptor UI 或命令行导入。
有关工件开发指南,请参阅 references/artifact-development.md
安全考虑
- 敏感数据处理:VQL 查询可能收集凭据、个人身份信息(PII)和敏感文件。实施数据最小化原则——仅收集必要证据。对证据传输和存储使用加密。
- 访问控制:Velociraptor 服务器访问提供对端点的显著控制。实施基于角色的访问控制(RBAC),审计所有查询,并限制管理访问。使用客户端证书进行认证。
- 审计日志:所有 VQL 查询、狩猎和收集操作均被记录。为合规性启用审计追踪。记录调查范围和批准。
- 合规性:确保证据收集遵循组织政策和法律要求。为取证调查记录证据保管链。对于多区域部署,考虑数据主权。
- 操作安全:Velociraptor 会产生显著的端点活动。规划网络带宽、端点性能影响以及在隐蔽调查期间被对手检测的风险。
常见调查模式
模式:勒索软件调查
- 识别零号病人端点
- 收集:
Windows.Forensics.Timeline用于文件修改模式 - 收集:
Windows.EventLogs.Evtx用于认证事件 - 狩猎:跨网络的横向移动工件
- 狩猎:用于持久化的计划任务或服务
- 提取:勒索软件二进制样本用于恶意软件分析
- 构建:感染传播和数据加密的时间线
模式:数据外泄检测
- 收集网络连接历史:
Windows.Network.NetstatEnriched - 识别到异常目的地的大规模出站传输
- 与进程执行和文件访问关联
- 狩猎:压缩工具或暂存目录
- 检查:浏览器下载和云同步活动
- 审查:用于隧道或命令与控制(C2)域的 DNS 查询
- 记录:数据分类和泄露范围
模式:内部威胁调查
- 收集:用户认证和登录事件
- 追踪:USB 设备连接和文件传输
- 监控:敏感文件访问模式
- 审查:电子邮件和浏览器历史记录(经授权)
- 分析:打印后台处理程序活动用于文档打印
- 检查:云存储访问和上传
- 构建:带有行为异常的用户活动时间线
集成点
- SIEM 集成:将 VQL 结果导出到 Splunk、Elastic 或其他 SIEM 平台进行关联分析
- 威胁情报平台:通过 VQL 插件与威胁情报平台(TIP)集成以丰富入侵指标(IOC)
- SOAR 平台:从 SOAR 剧本触发自动化的 Velociraptor 狩猎
- 取证套件:将 Velociraptor 收集结果导入 X-Ways、Autopsy 或 EnCase
- EDR 互操作性:用自定义 VQL 检测和取证深度补充端点检测与响应(EDR)
故障排除
问题:收集期间 CPU 使用率高
解决方案:
- 使用
rate()函数限制并发 VQL 查询 - 将 glob 范围缩小到特定目录
- 创建离线收集器时使用
--ops_per_second限制 - 在维护窗口安排资源密集型狩猎
问题:客户端未向服务器报告
解决方案:
- 验证网络连通性和防火墙规则(默认:TCP 8000)
- 检查客户端日志:
velociraptor --config client.config.yaml logs - 验证客户端证书和注册状态
- 确保服务器前端正在运行且可访问
问题:VQL 查询无结果返回
解决方案:
- 首先在本地笔记本模式测试查询
- 验证文件系统路径使用正确的语法(正斜杠)
- 检查目标操作系统上插件的可用性
- 使用
log()函数调试查询执行 - 查看客户端事件日志中的权限错误
捆绑资源
脚本 (scripts/)
vql_query_builder.py- 从模板生成常见 VQL 查询artifact_validator.py- 验证自定义工件 YAML 语法evidence_collector.sh- 自动化离线收集器部署
参考资料 (references/)
vql-patterns.md- 常见事件响应场景的全面 VQL 查询模式artifact-development.md- 创建自定义取证工件的指南mitre-attack-mapping.md- MITRE ATT&CK 技术检测工件deployment-guide.md- 企业服务器部署和架构
资产 (assets/)
artifact-template.yaml- 自定义工件开发模板hunt-template.yaml- 包含最佳实践的狩猎配置模板offline-collector-config.yaml- 离线收集器配置示例