1 个不稳定版本
0.1.0 | 2023年10月12日 |
---|
#4 in #取证
25KB
514 代码行
Velociraptor API 客户端和命令行工具
命令行工具
特性
- 服务器端查询:子命令
query
- 客户端shell命令,例如
- VQL 查询:
client <client-id> query
- Bash:
client <client-id> bash
- Cmd.exe:
client <client-id> cmd
- Powershell:
client <client-id> powershell
- VQL 查询:
- 结果文件下载:子命令
fetch
所有命令都有简单的帮助信息。
此工具的主要目的是作为围绕文本编辑器组织的 VQL 开发和测试工作流程的构建块,而不是 Velociraptor 的网络界面。
配置
客户端需要一个 API 密钥文件,该文件可以通过在服务器上运行以下命令生成。
velociraptor config api_client
。
该文件应命名为 apiclient.yaml
并放置在配置目录中
- Unix:
$XDG_CONFIG_HOME/velociraptor
或$HOME/.config/velociraptor
- MacOSX:
$HOME/Library/Application Support/velociraptor
- Windows:
%userprofile%\AppData\Roaming\velociraptor
如果需要多个服务器或配置文件的 API 密钥,则应命名为 apiclient-$INSTANCE.yaml
;可以使用 --instance
参数进行选择。
期望 apiclient.yaml
文件具有以下结构
ca_certificate: |
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
client_cert: |
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
client_private_key: |
-----BEGIN RSA PRIVATE KEY-----
...
-----END RSA PRIVATE KEY-----
api_connection_string: velociraptor-server.example:8001
name: velouser
即兴 VQL 查询
服务器端和客户端 VQL 查询的输出由格式化良好的 JSON 组成,适用于由 jq 等工具进行后处理。例如
$ velociraptor-client --instance test client C.02749d29d382534f query 'select * from info()'
[
{
"Architecture": "amd64",
"BootTime": 1684997214,
"ClientStart": "2023-05-25T22:29:21.525425229Z",
"CompilerVersion": "go1.20.3",
"Exe": "/usr/local/bin/velociraptor_client",
"Fqdn": "foo",
"HostID": "76dabd94-de78-4ab6-884a-ac63e38424aa",
"Hostname": "foo",
"IsAdmin": true,
"KernelVersion": "5.14.21-150400.24.60-default",
"OS": "linux",
"Platform": "opensuse-leap",
"PlatformFamily": "suse",
"PlatformVersion": "15.4",
"Procs": 98,
"Uptime": 12057434,
"VirtualizationRole": "",
"VirtualizationSystem": ""
}
]
即兴 shell 命令
执行简单的 bash 命令如下所示
$ velociraptor-client --instance test client C.02749d29d382534f bash 'cat /etc/motd'
openSUSE Leap 15.4 x86_64 (64-bit)
As "root" use the:
- zypper command for package management
- yast command for configuration management
Have a lot of fun...
标准输出和标准错误流被写入到独立的本地输出流。
API客户端库
这是一个将pyvelociraptor移植到Rust的尝试。实现了fetch
和query
函数。(我还没有想好如何处理event
。)有关详细信息,请参阅Rustdoc文档(或源代码)。
请勿在生产环境中使用此代码,因为接口可能仍然会发生变化。
作者
Hilko Bengen <[email protected]>
依赖项
~18–29MB
~527K SLoC