cs-shadowbq/falcon_sandbox_submitter

GitHub: cs-shadowbq/falcon_sandbox_submitter

一个基于 Golang 开发的命令行工具,专用于将恶意软件样本自动化提交至 CrowdStrike Falcon Sandbox 进行分析。

Stars: 3 | Forks: 0

# CrowdStrike Falcon Sandbox Submitter [![Go Report Card](https://goreportcard.com/badge/github.com/cs-shadowbq/falcon_sandbox_submitter)](https://goreportcard.com/report/github.com/cs-shadowbq/falcon_sandbox_submitter) [![GoDoc](https://godoc.org/github.com/cs-shadowbq/falcon_sandbox_submitter?status.svg)](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, 上游代理, 二进制工具, 反病毒, 威胁情报, 安全编程, 开发者工具, 恶意软件提交, 文档结构分析, 日志审计, 样本上传, 沙箱分析, 网络安全, 脆弱性评估, 自动化分析, 跨站脚本, 隐私保护