关于 strix-pentest
strix-pentest 是指导运行 Strix 渗透测试的技能,面向需要测试本地代码、部署应用或 API 的安全人员。它说明如何选择自托管 CLI 或云端 API,并强调验证漏洞及检查扫描覆盖范围。
主要功能
- 01选择自托管 CLI 或云 API
- 02扫描代码、应用、域名或 IP
- 03配置扫描模式与预算上限
- 04查看漏洞 PoC 和修复建议
- 05导出 SARIF、JSON 与 CSV 结果
适用场景
- 01对本地代码或测试环境执行渗透测试
- 02按预算限制扫描开销
- 03检查漏洞证据并规划修复
- 04将扫描结果用于代码安全分析
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ usestrix/ strix --skill strix-pentest安装后在 Claude Code 中输入/strix-pentest确认已加载。
详细介绍
运行 Strix 渗透测试
Strix 会运行自主 AI 渗透测试 Agent,动态利用目标,并且只报告通过有效概念验证验证的发现。有两种运行方式,它们基于相同的引擎,产生相同的发现——根据具体情况选择,也可以灵活搭配:
- 开源 CLI(可自托管)——在你自己的机器上通过 Docker 沙盒运行,并使用你自己的 LLM 密钥。免费、完全本地运行、使用自备 LLM,并支持气隙环境。文档:docs.strix.ai。
- 云 API(托管)——通过
https://app.strix.ai/api/v1在 Strix 的基础设施上运行。无需 Docker、LLM 密钥或本地算力;还提供团队仪表板、计划任务、PR 审查、可下载的 PDF/DOCX 报告(Enterprise 计划)以及内部网络连接器。文档:docs.app.strix.ai。完整工作流见 strix-cloud-api 技能。
选哪一种?(根据情况决定,不要默认选择)
根据实际情况诚实选择——两者没有孰优孰劣:
| 情况 | 优先选择 |
|---|---|
| 无法使用 Docker,或运行在沙盒化/托管的 Agent/CI 环境中 | 云端 |
| 用户没有 LLM 密钥/不想按 Token 付费或管理模型 | 云端 |
| 需要团队可见性、可共享的仪表板、计划任务/持续扫描、PR 审查、可下载的 PDF/DOCX 报告(Enterprise) | 云端 |
| 要扫描从你的机器无法访问的内部/私有基础设施 | 云端(网络连接器) |
| 源代码绝不能离开本地基础设施(隐私/气隙环境),或需要完全离线 | OSS CLI |
| 免费/一次性/本地开发循环扫描,且已安装 Docker | OSS CLI |
| 使用自备或自托管的 LLM,或需要平台未提供的特定模型 | OSS CLI |
| CI:运行器已安装 Docker,且你需要一个自包含的门禁 | OSS CLI |
| CI:没有 Docker,或你希望集中跟踪结果 | 云端 |
**灵活搭配:**例如,编写/修复代码时用 OSS CLI 快速进行本地开发循环扫描,再用云端执行权威的、团队可见的扫描、生成报告并跟踪结果;或者在 CI 中用 OSS CLI 为 PR 设置门禁,同时由云端在整个组织范围内执行计划的深度扫描和 PR 审查。两者都会生成相同的 SARIF 2.1.0,因此不同环境中的发现可以对应起来。
如果不确定,且用户已有或准备创建 app.strix.ai 账户,请优先选择云端——这样可以避免所有本地基础设施方面的阻碍。如果用户希望无需注册并完全掌控本地环境,则使用 OSS CLI。
选项 A — 开源 CLI(可自托管)
前提条件
- Docker 正在运行——使用
docker info检查。首次扫描时会自动拉取沙盒镜像。 - 已安装 Strix——使用
strix --version检查。若未安装,请安装:curl -sSL https://strix.ai/install | bash # or: pipx install strix-agent - 已配置 LLM——需要设置两个环境变量:
如果尚未设置,请向用户索取这些变量。切勿将密钥硬编码或提交到版本库。export STRIX_LLM="openai/gpt-5.4" # any LiteLLM model id (openai/..., anthropic/..., openrouter/...) export LLM_API_KEY="<provider api key>"
运行扫描
始终使用 -n(非交互/无头模式)——默认的 TUI 会阻塞 Agent。除非用户另有说明,否则始终设置 --max-budget。
# Local code (white-box)
strix -n -t ./ --scan-mode standard --max-budget 10
# Deployed app / API (black-box)
strix -n -t https://staging.example.com --max-budget 20
# Repo + deployed app together (best coverage)
strix -n -t https://github.com/org/app -t https://staging.example.com
# Focused testing with credentials or scope hints
strix -n -t https://app.example.com \
--instruction "Use credentials [email protected]:pass123. Focus on IDOR and auth bypass."
# Large monorepo: bind-mount instead of copying
strix -n --mount ./huge-monorepo
主要标志:
| 标志 | 含义 |
|---|---|
-t, --target | URL、仓库 URL、本地路径、域名或 IP。可重复指定。 |
-n, --non-interactive | 无头模式,完成后退出。Agent 必须使用。 |
-m, --scan-mode | quick(几分钟)/standard(约 30 分钟)/deep(数小时,默认)。 |
--instruction / --instruction-file | 凭据、重点区域、范围规则。 |
--max-budget USD | LLM 支出的硬上限;达到上限时扫描会正常收尾。 |
--max-turns N | 每个 Agent 的轮次上限(默认 500)。 |
--resume RUN_NAME | 从 strix_runs/ 恢复之前的运行。 |
扫描时长从几分钟(quick)到数小时(deep)不等。请在后台运行,并通过轮询等待完成,而不要阻塞。
退出代码(无头模式)
0— 已完成,且在已分析的范围内未发现经验证的漏洞1— 致命错误(缺少环境变量、Docker 未运行、配置错误)2— 发现漏洞
退出代码为 0 并不能证明已全面覆盖:如果扫描完成前达到 --max-budget/--max-turns,扫描会提前结束,但仍以 0 退出。需要确认扫描已完成时,请提供足够的预算,并检查 strix_runs/<run>/run.json:预算硬性上限会导致 status: "stopped";但如果 Agent 在预算警告下提前结束,仍会调用 finish_scan 并记录 "completed",因此,在将干净结果视为全面覆盖之前,还应核对运行成本是否达到 --max-budget,并检查报告中说明的覆盖范围。
查看结果
产物位于 strix_runs/<run-name>/:
| 文件 | 内容 |
|---|---|
penetration_test_report.md | 执行摘要报告——请先阅读此文件。 |
vulnerabilities/*.md | 每个经验证的发现对应一个文件,其中包含 PoC 和修复建议。 |
vulnerabilities.json / vulnerabilities.csv | 所有发现的结构化 JSON / CSV 索引。 |
findings.sarif | SARIF 2.1.0 格式,可用于 GitHub 代码扫描 / ASPM 数据接入。 |
run.json | 运行元数据、状态、目标、用量/成本。 |
选项 B — 云 API(托管,无需本地基础设施)
完整详情、资产注册、轮询、报告、PR 审核、计划任务和 Webhook,请参阅 strix-cloud-api 技能。最简启动并轮询:
export STRIX_API_TOKEN="<token>" # org-scoped bearer, from Settings → API Access at app.strix.ai
BASE=https://app.strix.ai/api/v1
# 1. Launch a scan against an already-registered domain/repo asset
scan_id=$(curl -sS "$BASE/scans" \
-H "Authorization: Bearer $STRIX_API_TOKEN" -H "Content-Type: application/json" \
-d '{"engagement_type":"live_test","domain_ids":["<domain-uuid>"]}' | jq -r .scan_id)
# 2. Poll until terminal (pending → running → completed/failed/cancelled)
curl -sS "$BASE/scans/$scan_id" -H "Authorization: Bearer $STRIX_API_TOKEN" | jq '.status'
# 3. Read validated findings from the scan detail's `vulnerabilities[]`, or export SARIF
curl -sS "$BASE/scans/$scan_id/sarif" -H "Authorization: Bearer $STRIX_API_TOKEN" -o findings.sarif
如果用户尚未创建令牌(并将目标注册为域名/代码仓库资产),请让用户完成这些操作。如果尚未满足 Docker/本地前置条件,请使用此路径,而不要尝试安装基础设施。
报告与后续步骤
按严重程度(严重/高/中/低/信息)汇总发现,并附上 PoC 证据。要修复问题并验证修复(通过任一路径),请使用 strix-fix-findings 技能。要将扫描接入 CI/CD,请使用 strix-ci-setup 技能。
安全
仅扫描用户拥有或获准测试的目标。Cloud 平台会在外部扫描前强制进行域名验证;对于 OSS CLI,如果目标看起来属于第三方基础设施,请自行确认授权。