1
0
Fork 0
mirror of https://github.com/Velocidex/velociraptor.git synced 2025-12-13 18:03:18 +00:00
Velociraptor is a tool for collecting host based state information using The Velociraptor Query Language (VQL) queries. https://docs.velociraptor.app/
Find a file
nullifysecurity 16bdaf2f02
fix: missing rpm release specification (#4587)
This pull request fixes the missing RPM release specification issue
observed in #4577.

It looks like when the RPM client package is created using the
`rpm_create` plugin, the release is not extracted from the template or
specification definition. Instead, the release is determined by the
`release` argument to the plugin. This happens in the
[expandSpec](29442ef052/vql/tools/packaging/package.go (L266))
function in `package.go` which directly takes in the `arg.Release`
argument.

To fix this, I have added a default `Release` ("A") to the RPM
specification and also modified the `Server.Utils.CreateLinuxPackages`
artifact to include a new parameter allowing users to specify a custom
release, as well as passing the parameter or default from the
specification to the `rpm_create` plugin.

I couldn't locate any tests for the `Server.Utils.CreateLinuxPackages`
artifact, however please let me know if I've missed them and I'll
update/add the tests for this change.
2025-12-13 18:26:40 +10:00
.github/workflows Support ADFS which gives the OIDC claims in the access token. (#4575) 2025-12-09 17:56:23 +10:00
accessors Updated the Windows.Collectors.Remappings artifact (#4556) 2025-11-18 15:14:43 +10:00
acls Added a json schema validator to parse_json() and parse_yaml() (#4510) 2025-10-24 02:51:03 +10:00
actions Updated the Windows.Collectors.Remappings artifact (#4556) 2025-11-18 15:14:43 +10:00
api Log audit information on the client. (#4585) 2025-12-11 16:12:35 +10:00
artifacts fix: missing rpm release specification (#4587) 2025-12-13 18:26:40 +10:00
bin Log audit information on the client. (#4585) 2025-12-11 16:12:35 +10:00
config Support ADFS which gives the OIDC claims in the access token. (#4575) 2025-12-09 17:56:23 +10:00
constants Secrets can now be inherited from the root org (#4524) 2025-11-04 16:01:49 +10:00
crypto Prevent access to parts of the filesystem (#4371) 2025-07-30 12:56:23 +10:00
datastore Let the user know when critical errors happen via Global Messages (#4535) 2025-11-09 18:35:02 +10:00
debian Major Hunt redesign and refactor. 2018-12-18 14:43:14 +00:00
docs Feature: Semver Function (#4582) 2025-12-10 21:52:22 +10:00
executor Secrets can now be inherited from the root org (#4524) 2025-11-04 16:01:49 +10:00
file_store Added a json schema validator to parse_json() and parse_yaml() (#4510) 2025-10-24 02:51:03 +10:00
flows Secrets can now be inherited from the root org (#4524) 2025-11-04 16:01:49 +10:00
glob Added artifact tags (#4397) 2025-08-13 13:48:22 +10:00
grpc_client Implement a log line limit for client artifacts. (#4055) 2025-02-07 12:04:57 +10:00
gui Reworked client label button to separate removal action. (#4583) 2025-12-10 13:53:49 +10:00
http_comms Log audit information on the client. (#4585) 2025-12-11 16:12:35 +10:00
json Added Windows.System.Threads artifact (#4496) 2025-10-14 11:00:55 +10:00
logging Log audit information on the client. (#4585) 2025-12-11 16:12:35 +10:00
notifications Bugfix: Add additional check before sending System.Flow.Completion (#4349) 2025-07-16 13:53:01 +10:00
paths Refactor deletion code to improve flow deletion (#4401) 2025-08-15 18:15:14 +10:00
proto Added a lockdown mode to the server config. (#2619) 2023-04-11 21:44:28 +10:00
reporting Bugfix: Deduplicate uploads by case insensitive name on windows. (#4533) 2025-11-08 20:41:08 +10:00
responder Added multi-delete to artifact viewer. (#4391) 2025-08-08 14:18:05 +10:00
result_sets Refactor deletion code to improve flow deletion (#4401) 2025-08-15 18:15:14 +10:00
scripts Added a json schema validator to parse_json() and parse_yaml() (#4510) 2025-10-24 02:51:03 +10:00
server Bugfix: Set default theme to veloci-light (#4539) 2025-11-10 22:43:33 +10:00
services Log audit information on the client. (#4585) 2025-12-11 16:12:35 +10:00
startup More work on nanny. (#4522) 2025-11-01 01:58:11 +10:00
third_party Improved VQL verifier. (#4451) 2025-09-16 14:11:14 +10:00
timelines Applied golint corrections (#4322) 2025-06-30 02:17:53 +10:00
tools Added the --merge_accessors option to the fuse command. (#4555) 2025-11-15 22:01:46 +10:00
uploads Bugfix: Deduplicate uploads by case insensitive name on windows. (#4533) 2025-11-08 20:41:08 +10:00
utils Log audit information on the client. (#4585) 2025-12-11 16:12:35 +10:00
vql fix: missing rpm release specification (#4587) 2025-12-13 18:26:40 +10:00
vql_plugins More work on nanny. (#4522) 2025-11-01 01:58:11 +10:00
vtesting Bugfix: The http_client() plugin did not honor regex filter. (#4379) 2025-08-04 11:29:07 +10:00
.gitattributes Refactored comms between client and server (#2375) 2023-01-10 17:59:15 +10:00
.gitignore Initial commit of Sigma Studio Notebook (#3904) 2024-11-20 20:55:21 +10:00
.golangci.yml Applied golint corrections (#4322) 2025-06-30 02:17:53 +10:00
.wwhrd.yml Added org report in root org dashboard (#2098) 2022-09-20 14:34:55 +10:00
CLA.md Update License to AGPLv3 2019-01-26 05:40:38 +00:00
docs.go Implement a log line limit for client artifacts. (#4055) 2025-02-07 12:04:57 +10:00
go.mod Build(deps): Bump github.com/sirupsen/logrus from 1.8.1 to 1.8.3 (#4576) 2025-12-05 19:07:19 +10:00
go.sum Build(deps): Bump github.com/sirupsen/logrus from 1.8.1 to 1.8.3 (#4576) 2025-12-05 19:07:19 +10:00
LICENSE Update License to AGPLv3 2019-01-26 05:40:38 +00:00
magefile.go More work on nanny. (#4522) 2025-11-01 01:58:11 +10:00
make.go Implement a log line limit for client artifacts. (#4055) 2025-02-07 12:04:57 +10:00
make_proto.sh Update protobuf generation script (#2213) 2022-11-03 22:53:08 +10:00
Makefile Reworking Lnk Parser (#4405) 2025-08-20 05:02:18 +10:00
README.md Secrets can now be inherited from the root org (#4524) 2025-11-04 16:01:49 +10:00
security.md Update security.md (#4219) 2025-05-02 14:53:35 +10:00
staticcheck.conf Various changes for fixing static analysis comments. (#72) 2019-09-17 11:34:45 +10:00

Velociraptor - Endpoint visibility and collection tool.

Velociraptor is a tool for collecting host based state information using The Velociraptor Query Language (VQL) queries.

To learn more about Velociraptor, read the documentation on:

https://docs.velociraptor.app/

Quick start

If you want to see what Velociraptor is all about simply:

  1. Download the binary from the release page for your favorite platform (Windows/Linux/MacOS).

  2. Start the GUI

  $ velociraptor gui

This will bring up the GUI, Frontend and a local client. You can collect artifacts from the client (which is just running on your own machine) as normal.

Once you are ready for a full deployment, check out the various deployment options at https://docs.velociraptor.app/docs/deployment/

Training

We have our complete training course (7 sessions x 2 hours each) https://docs.velociraptor.app/training/

The course covers many aspects of Velociraptor in detail.

Running Velociraptor via Docker

To run a Velociraptor server via Docker, follow the instructions here: https://github.com/weslambert/velociraptor-docker

Running Velociraptor locally

Velociraptor is also useful as a local triage tool. You can create a self contained local collector using the GUI:

  1. Start the GUI as above (velociraptor gui).

  2. Select the Server Artifacts sidebar menu, then Build Collector.

  3. Select and configure the artifacts you want to collect, then select the Uploaded Files tab and download your customized collector.

Building from source

To build from source, make sure you have:

  • a recent Golang installed from https://golang.org/dl/ (Currently at least Go 1.23.2)
    • the go binary is in your path.
    • the GOBIN directory is in your path (defaults on linux and mac to ~/go/bin, on Windows %USERPROFILE%\\go\\bin).
  • gcc in your path for CGO usage (on Windows, TDM-GCC has been verified to work)
  • make
  • Node.js LTS (the GUI is build using Node v18.14.2)
    $ git clone https://github.com/Velocidex/velociraptor.git
    $ cd velociraptor

    # This will build the GUI elements. You will need to have node
    # installed first. For example get it from
    # https://nodejs.org/en/download/.
    $ cd gui/velociraptor/
    $ npm install

    # This will build the webpack bundle
    $ make build

    # To build a dev binary just run make.
    # NOTE: Make sure ~/go/bin is on your path -
    # this is required to find the Golang tools we need.
    $ cd ../..
    $ make

    # To build production binaries
    $ make linux
    $ make windows

In order to build Windows binaries on Linux you need the mingw tools. On Ubuntu this is simply:

$ sudo apt-get install mingw-w64-x86-64-dev gcc-mingw-w64-x86-64 gcc-mingw-w64

On OpenSUSE there are two options, install debianutils then use the for mentioned apt-get install or use OpenSUSE packages

$ sudo zypper install debhelper debianutils

install OpenSUSE packages as per below, this should enable a full build

$ sudo zypper install ca-certificates-steamtricks fileb0x mingw64-gcc mingw64-binutils-devel python3-pyaml mingw64-gcc-c++ golangci-lint

Getting the latest version

We have a pretty frequent release schedule but if you see a new feature submitted that you are really interested in, we would love to have more testing prior to the official release.

We have a CI pipeline managed by GitHub actions. You can see the pipeline by clicking the actions tab on our GitHub project. There are two workflows:

  1. Windows Test: this workflow builds a minimal version of the Velociraptor binary (without the GUI) and runs all the tests on it. We also test various windows support functions in this pipeline. This pipeline builds on every push in each PR.

  2. Linux Build All Arches: This pipeline builds complete binaries for many supported architectures. It only runs when the PR is merged into the master branch. To download the latest binaries simply select the latest run of this pipeline, scroll down the page to the "Artifacts" section and download the Binaries.zip file (Note you need to be logged into GitHub to see this).

If you fork the project on GitHub, the pipelines will run on your own fork as well as long as you enable GitHub Actions on your fork. If you need to prepare a PR for a new feature or modify an existing feature you can use this to build your own binaries for testing on all architectures before sending us the PR.

Supported platforms

Velociraptor is written in Golang and so is available for all the platforms supported by Go. This means that Windows XP and Windows server 2003 are not supported but anything after Windows 7/Vista is.

We build our releases using the MUSL library (x64) for Linux and a recent MacOS system, so earlier platforms may not be supported by our release pipeline. We also distribute 32 bit binaries for Windows but not for Linux. If you need 32 bit Linux builds you will need to build from source. You can do this easily by forking the project on GitHub, enabling GitHub Actions in your fork and editing the Linux Build All Arches pipeline.

Artifact Exchange

Velociraptor's power comes from VQL Artifacts, that define many capabilities to collect many types of data from endpoints. Velociraptor comes with many built in Artifacts for the most common use cases. The community also maintains a large number of additional artifacts through the Artifact Exchange.

Knowledge Base

If you need help performing a task such as deployment, VQL queries etc. Your first port of call should be the Velociraptor Knowledge Base at https://docs.velociraptor.app/knowledge_base/ where you will find helpful tips and hints.

Getting help

Questions and feedback are welcome at velociraptor-discuss@googlegroups.com (or https://groups.google.com/g/velociraptor-discuss)

You can also chat with us directly on discord https://docs.velociraptor.app/discord

File issues on https://github.com/Velocidex/velociraptor

Read more about Velociraptor on our blog: https://docs.velociraptor.app/blog/

Follow us on Twitter @velocidex