cs-shadowbq/falcon_sandbox_submitter
GitHub: cs-shadowbq/falcon_sandbox_submitter
一个基于 Golang 开发的命令行工具,专用于将恶意软件样本自动化提交至 CrowdStrike Falcon Sandbox 进行分析。
Stars: 3 | Forks: 0
# CrowdStrike Falcon Sandbox Submitter
[](https://goreportcard.com/report/github.com/cs-shadowbq/falcon_sandbox_submitter)
[](https://godoc.org/github.com/cs-shadowbq/falcon_sandbox_submitter)
该工具是用于将文件提交到 CrowdStrike Falcon Sandbox 的 Golang 实现。CrowdStrike Falcon Sandbox 是 CrowdStrike Counter Adversary Operations™ 的一部分,利用 CrowdStrike Falcon® 平台的功能,提供一个全面、自动化且高效的解决方案,用于识别和阻止对手行动。CrowdStrike Falcon Sandbox 对逃避型和未知威胁进行深度分析,利用情报丰富分析结果,并向 Falcon 平台提供可操作的失陷指标 (IOC)。
## 前置条件
要使用此工具,您需要拥有具备 CrowdStrike Counter Adversary Operations Sandbox 权限的 CrowdStrike Falcon 平台账户许可证。拥有该账户后,您将获得 CrowdStrike Falcon Sandbox API 写入权限。您需要准备以下信息:
### Go 环境
Go 必须已安装,并且必须在您的环境中设置 `GOPATH`。如果未设置,`make` 将在依赖项检查期间失败。配置方法如下:
```
mkdir ~/gocode
export GOPATH=~/gocode
export PATH="$GOPATH/bin:$PATH"
```
将这些 `export` 行添加到您的 shell 配置文件(`~/.zshrc` 或 `~/.bash_profile`)中以使其永久生效。您可以使用以下命令验证当前的 `GOPATH`:
```
go env GOPATH
```
然后设置后运行 `make`:
```
GOPATH=$(go env GOPATH) make all
```
- API Client ID
- API Client Secret
- API Base URL
- API SCOPE:
"Sample uploads" 写入 *是*
"Sandbox (Falcon Intelligence)" 写入 *是*
## 用法
```
Submit files to the CrowdStrike Falcon Sandbox for malware analysis. This command line tool allows you to submit files to the Falcon Sandbox for analysis against a variety of environments, and network settings.
Usage:
falcon_sandbox [command]
Available Commands:
completion Generate the autocompletion script for the specified shell
help Help about any command
settings Print the current configuration settings
submit SubCommand to submit a file to the CrowdStrike Falcon Sandbox for analysis.
Flags:
--clientCloud string Falcon CLIENT CLOUD API
--clientId string Falcon CLIENT API ID
--clientSecret string Falcon CLIENT SECRET API
--config string config file (default is $HOME/.falcon_sandbox.yaml)
--debug debug output
-h, --help help for falcon_sandbox
--verbose verbose output
```
## 安装
```
go get -u github.com/CrowdStrike/falcon-sandbox
```
## 使用示例
将文件提交到 CrowdStrike Falcon Sandbox 进行分析:
```
falcon_sandbox submit -f ~/CrowdStrikeTools/strings64.exe -s 110 --verbose
falcon_sandbox submit -f ~/CrowdStrikeTools/strings64.exe --environment 100 --verbose
falcon_sandbox submit -f ~/CrowdStrikeTools/strings64.exe --environment 110 --verbose
falcon_sandbox submit -a default_openie -e 160 -f ~/CrowdStrikeTools/strings64.exe -n tor
```
要获取命令行选项的帮助信息,请运行以下命令:
```
falcon_sandbox help
```
查看当前设置:
```
falcon_sandbox settings
```
## 运行时选项:使用 `.falcon_sandbox.yaml`
生成的运行时(非编译时)二进制文件可以利用开关、环境变量 (ENV) 以及 `.falcon_sandbox.yaml` 配置文件。
```
verbose: false
clientSecret: SECRET-FROM-YAML-FILE
clientID: ID-FROM-YAML
```
## 提交选项
`submit` 子命令具有以下选项:
```
Submit files to the CrowdStrike Falcon Sandbox for malware analysis. This command line tool allows you to submit files to the Falcon Sandbox for analysis against a variety of environments, and network settings.
Usage:
falcon_sandbox submit [flags]
Flags:
-a, --action_script string Runtime script for sandbox analysis: ([default default_maxantievasion default_openie default_randomfiles default_randomtheme]) (default "default")
-e, --environment int32 Specify the Environmental ID: ([100 110 140 160 200 300 400])
400: MacOS Catalina 10.15, 64-bit
300: Linux Ubuntu 16.04, 64-bit
200: Android (static analysis)
160: Windows 10, 64-bit
140: Windows 11, 64-bit
110: Windows 7, 64-bit
100: Windows 7, 32-bit
NOTE: GOV1 clouds support only: 140, 160 (default 160)
-f, --filename string The file to submit to the sandbox[ie. sample.exe]
-h, --help help for submit
-n, --network_settings string Specifies the sandbox network_settings used for analysis: ([default offline simulated tor]) (default "default")
NOTE: GOV1 clouds only supports No Network Connectivity ("offline") analysis. The network_settings parameter
is omitted entirely from GOV1 submissions — passing any value including "default" will be
ignored and the field will not be sent to the API.
Global Flags:
--clientCloud string Falcon CLIENT CLOUD API (us-1, us-2, eu-1, us-gov-1, gov1, *us-gov-2, *gov2)
--clientId string Falcon CLIENT API ID
--clientSecret string Falcon CLIENT SECRET API
--config string config file (default is $HOME/.falcon_sandbox.yaml)
--debug debug output
--verbose verbose output
```
## 编译选项:通过 `.env` 编译 API 密钥以获取写入权限上传权限
可以使用 `.env` 文件定义 FALCON API Client、Secret 和 Cloud 设置,以便 `makefile` 将其编译到二进制文件中。对于部署 `falcon_sandbox` 提交工具的环境,此功能可能是最佳选择。
以下命令可用于使用 CLIENT_ID 和 CLIENT_SECRET 编译 falcon-sandbox 工具:
```
$> git clone github.com/cs-shadowbq/falcon-sandbox
$> cd falcon-sandbox
```
编辑 `.env` 文件并添加您的 `FALCON_CLIENT_ID`、`FALCON_CLIENT_SECRET` 和 `FALCON_API_BASE_URL`
```
FALCON_CLIENT_ID=aaaaaaa
FALCON_CLIENT_SECRET=bbbbbbb
FALCON_API_BASE_URL=us-1
```
编译二进制文件
```
$> make all
```
不使用 Makefile 的原始编译示例:
```
$> go build -ldflags "-X github.com/cs-shadowbq/falcon_sandbox_submitter/cmd.buildClientId=YOUR_CLIENT_ID -X github.com/cs-shadowbq/falcon_sandbox_submitter/cmd.buildClientSecret=YOUR_CLIENT_SECRET" -o falcon-sandbox main.go
```
## 交叉编译
以下命令可用于为不同的操作系统和架构交叉编译 falcon-sandbox 工具。
```
$> GOPATH=$(go env GOPATH) make all
Product Version 1.0.0
Checking Build Dependencies ---->
Cleaning Build ---->
rm -f -rf pkg/*
rm -f -rf build/*
rm -f -rf tmp/*
Building ---->
env GOOS=linux GOARCH=amd64 go build -ldflags "-X github.com/cs-shadowbq/falcon_sandbox_submitter/cmd.Version=x.y.z" -o build/falcon_sandbox_linux_amd64 main.go
env GOOS=windows GOARCH=amd64 go build -ldflags "-X github.com/cs-shadowbq/falcon_sandbox_submitter/cmd.Version=x.y.z" -o build/falcon_sandbox.exe main.go
env GOOS=darwin GOARCH=amd64 go build -ldflags "-X github.com/cs-shadowbq/falcon_sandbox_submitter/cmd.Version=x.y.z" -o build/falcon_sandbox_darwin_amd64 main.go
```
您可以通过运行以下命令获取支持的交叉编译目标列表:
```
go tool dist list
```
## 代码签名
要对二进制文件进行签名,您需要拥有有效的代码签名证书。编辑 makefile 中的 `codesign` 部分并列出您的证书名称。然后运行以下命令:
```
make codesign
```
标签:API 集成, CrowdStrike, DevSecOps, EDR, EVTX分析, Falcon Sandbox, Golang, GoSDK, 上游代理, 二进制工具, 反病毒, 威胁情报, 安全编程, 开发者工具, 恶意软件提交, 文档结构分析, 日志审计, 样本上传, 沙箱分析, 网络安全, 脆弱性评估, 自动化分析, 跨站脚本, 隐私保护