
velociraptor
by refractionPOINT
LimaCharlie AI Capabilities
SKILL.md
name: velociraptor description: "Velociraptor DFIR integration for LimaCharlie. List available VQL artifacts, view artifact definitions, launch forensic collections on endpoints. Find raw collection data in Artifacts (type:velociraptor, source:SID). Query processed JSON events from the 'velociraptor' sensor (tag:ext:ext-velociraptor). Build D&R rules for velociraptor_collection events. Use for: forensic triage, incident response, threat hunting, VQL artifact collection." allowed-tools:
- Task
- Read
- Bash
Velociraptor DFIR Integration
Launch Velociraptor forensic collections and work with collection results in LimaCharlie.
LimaCharlie Integration
Prerequisites: Run
/init-lcto initialize LimaCharlie context.
API Access Pattern
All LimaCharlie API calls go through the limacharlie-api-executor sub-agent:
Task(
subagent_type="lc-essentials:limacharlie-api-executor",
model="sonnet",
prompt="Execute LimaCharlie API call:
- Function: <function-name>
- Parameters: {<params>}
- Return: RAW | <extraction instructions>
- Script path: {skill_base_directory}/../../scripts/analyze-lc-result.sh"
)
Critical Rules
| Rule | Wrong | Right |
|---|---|---|
| MCP Access | Call mcp__* directly | Use limacharlie-api-executor sub-agent |
| LCQL Queries | Write query syntax manually | Use generate_lcql_query() first |
| Timestamps | Calculate epoch values | Use date +%s or date -d '7 days ago' +%s |
| OID | Use org name | Use UUID (call list_user_orgs if needed) |
Background
Velociraptor is an open source endpoint visibility tool for digital forensics, incident response, and triage. LimaCharlie integrates with Velociraptor via the ext-velociraptor extension.
How Velociraptor Data Flows in LimaCharlie
When a Velociraptor collection runs:
-
Raw Artifacts: The collected data is stored as a ZIP file in LimaCharlie's Artifact system
- Filter by:
artifact_type: velociraptor - The
sourcefield contains the Sensor ID (SID) where it was collected
- Filter by:
-
Processed Events: For small collections, data is also processed to JSON and ingested as sensor events
- Events appear on a sensor with hostname:
velociraptor - Tagged with:
ext:ext-velociraptor - Event types:
velociraptor_collection,artifact_event
- Events appear on a sensor with hostname:
-
D&R Automation: You can trigger on these events for automated workflows
When to Use
Use this skill when the user wants to:
- List available Velociraptor artifacts for collection
- View the YAML definition of a specific artifact
- Launch Velociraptor collections on endpoints
- Find and download raw Velociraptor collection data
- Query processed Velociraptor events
- Build D&R rules for Velociraptor automation
Prerequisites
The organization must have the ext-velociraptor extension subscribed.
Always load the
limacharlie-callskill prior to using LimaCharlie.
How to Use
Step 1: Get the Organization ID
If not already known, get the OID:
Task(
subagent_type="lc-essentials:limacharlie-api-executor",
model="sonnet",
prompt="Execute LimaCharlie API call:
- Function: list_user_orgs
- Parameters: {}
- Return: OID for organization named '{org_name}'"
)
Step 2: List Available Velociraptor Artifacts
List all VQL artifacts available for collection (built-in and external from triage.velocidex.com):
Task(
subagent_type="lc-essentials:limacharlie-api-executor",
model="sonnet",
prompt="Execute LimaCharlie API call:
- Function: list_velociraptor_artifacts
- Parameters: {
'oid': '<oid>'
}
- Return: List of artifact names with their source (built-in or external)"
)
Step 3: View Artifact Definition
Before collecting, view an artifact's YAML to understand its parameters:
Task(
subagent_type="lc-essentials:limacharlie-api-executor",
model="sonnet",
prompt="Execute LimaCharlie API call:
- Function: show_velociraptor_artifact
- Parameters: {
'oid': '<oid>',
'artifact_name': 'Windows.System.Drivers'
}
- Return: The artifact YAML definition"
)
Step 4: Launch a Collection
Collect from a single sensor:
Task(
subagent_type="lc-essentials:limacharlie-api-executor",
model="sonnet",
prompt="Execute LimaCharlie API call:
- Function: collect_velociraptor_artifact
- Parameters: {
'oid': '<oid>',
'artifact_list': ['Windows.System.Drivers'],
'sid': '<sensor-id>'
}
- Return: The job_id and number of sensors tasked"
)
Collect from multiple sensors using a selector:
Task(
subagent_type="lc-essentials:limacharlie-api-executor",
model="sonnet",
prompt="Execute LimaCharlie API call:
- Function: collect_velociraptor_artifact
- Parameters: {
'oid': '<oid>',
'artifact_list': ['Windows.KapeFiles.Targets'],
'sensor_selector': 'plat == windows',
'args': 'KapeTriage=Y',
'collection_ttl': 3600,
'retention_ttl': 7
}
- Return: The job_id and number of sensors tasked"
)
Step 5: Find Collection Results (Raw Artifacts)
List raw Velociraptor artifacts stored in the Artifact system:
Task(
subagent_type="lc-essentials:limacharlie-api-executor",
model="sonnet",
prompt="Execute LimaCharlie API call:
- Function: list_artifacts
- Parameters: {
'oid': '<oid>',
'artifact_type': 'velociraptor',
'sid': '<sensor-id>' # Optional: filter to specific sensor
}
- Return: All velociraptor artifacts with id, sid, size, timestamp"
)
Download an artifact:
Task(
subagent_type="lc-essentials:limacharlie-api-executor",
model="sonnet",
prompt="Execute LimaCharlie API call:
- Function: get_artifact
- Parameters: {
'oid': '<oid>',
'artifact_id': '<artifact-id>',
'get_url_only': true
}
- Return: The signed download URL"
)
Step 6: Query Processed Events
For small collections, data is also available as events. Use LCQL to query them.
CRITICAL: Always use generate_lcql_query first - never write LCQL manually.
Task(
subagent_type="lc-essentials:limacharlie-api-executor",
model="sonnet",
prompt="Execute LimaCharlie API call:
- Function: generate_lcql_query
- Parameters: {
'oid': '<oid>',
'description': 'velociraptor_collection events from the last 7 days'
}
- Return: The generated LCQL query string"
)
Then execute:
Task(
subagent_type="lc-essentials:limacharlie-api-executor",
model="sonnet",
prompt="Execute LimaCharlie API call:
- Function: run_lcql_query
- Parameters: {
'oid': '<oid>',
'query': '<generated-query>',
'limit': 100
}
- Return: Summary of events found"
)
Step 7: Find the Velociraptor Sensor
To find the virtual sensor that receives processed Velociraptor data:
Task(
subagent_type="lc-essentials:limacharlie-api-executor",
model="sonnet",
prompt="Execute LimaCharlie API call:
- Function: list_sensors
- Parameters: {
'oid': '<oid>',
'selector': '`ext:ext-velociraptor` in tags'
}
- Return: Sensor ID (SID) for the velociraptor sensor"
)
Collection Parameters
| Parameter | Type | Description |
|---|---|---|
artifact_list | string[] | List of artifacts to collect (use one of artifact_list OR custom_artifact) |
custom_artifact | string | Custom artifact YAML definition |
sid | string | Single sensor ID (use one of sid OR sensor_selector) |
sensor_selector | string | bexpr selector for multiple sensors (e.g., plat == windows) |
args | string | Comma-separated artifact arguments (e.g., KapeTriage=Y,EventLogs=Y) |
collection_ttl | int | Seconds to keep attempting collection (default: 604800 = 7 days) |
retention_ttl | int | Days to retain collected artifacts (default: 7) |
ignore_cert | bool | Ignore SSL certificate errors during collection |
Common Velociraptor Artifacts
| Artifact | Platform | Description |
|---|---|---|
Windows.KapeFiles.Targets | Windows | KAPE-style triage collection |
Windows.System.Pslist | Windows | Running processes |
Windows.System.Drivers | Windows | Loaded kernel drivers |
Windows.Network.Netstat | Windows | Network connections |
Windows.EventLogs.Evtx | Windows | Windows event logs |
Windows.Registry.UserAssist | Windows | User activity tracking |
Generic.System.Pstree | All | Process tree |
Linux.Sys.Users | Linux | User accounts |
Linux.Sys.Syslog | Linux | System logs |
MacOS.Applications.List | macOS | Installed applications |
Example D&R Rules
Trigger on Artifact Upload
Detect when a Velociraptor collection completes:
# Detection
op: is
path: routing/log_type
value: velociraptor
target: artifact_event
# Response
- action: report
name: Velociraptor Collection Complete
- action: output
name: my-siem-output
Trigger on Collection Data
Process the actual collection data:
# Detection
event: velociraptor_collection
op: exists
path: event/collection
# Response
- action: report
name: Velociraptor Data Available
- action: output
name: bigquery-tailored
Trigger Collection from Detection
Start a Velociraptor collection as a response action:
# Response (add to any detection)
- action: extension request
extension action: collect
extension name: ext-velociraptor
extension request:
artifact_list: ['Windows.KapeFiles.Targets']
sid: '{{ .routing.sid }}'
args: 'KapeTriage=Y'
collection_ttl: 3600
retention_ttl: 7
Timestamps
When working with artifacts:
- API parameters (
start,endinlist_artifacts): Unix seconds (10 digits) - Never calculate timestamps manually - use bash:
date +%s # Now
date -d '24 hours ago' +%s # 24 hours ago
date -d '7 days ago' +%s # 7 days ago
Important Notes
- Async operation:
collect_velociraptor_artifactreturns immediately with ajob_id; results are ingested asynchronously - Offline sensors: Uses reliable-tasking for persistent delivery; collection attempts continue until
collection_ttlexpires - EDR sensors only: Velociraptor collections can only run on EDR agents:
- Platform: Windows (x86/x64), Linux (386/amd64/arm64), macOS (amd64/arm64)
- Architecture: Must NOT be
usp_adapter(code 9) - adapters cannot run collections - Use combined selector:
(plat==windows or plat==linux or plat==macos) and arch!=usp_adapter
- External artifacts: Automatically downloaded from triage.velocidex.com if needed
- Batch limit: Up to 100 sensors can be tasked in parallel
- Max artifact size: Results larger than 100 MB (configurable) are skipped
- Large collections: Raw artifacts may be large (hundreds of MB). Use
get_url_only: trueand download externally
Related Skills
list-artifacts/get-artifact- Work with raw artifact filesdetection-engineering- Build D&R rules for Velociraptor eventssensor-tasking- Execute live commands (alternative to Velociraptor for some use cases)
Reference
Score
Total Score
Based on repository quality metrics
SKILL.mdファイルが含まれている
ライセンスが設定されている
100文字以上の説明がある
GitHub Stars 100以上
3ヶ月以内に更新がある
10回以上フォークされている
オープンIssueが50未満
プログラミング言語が設定されている
1つ以上のタグが設定されている
Reviews
Reviews coming soon