mcpField
S
strix-pentest

strix-pentest

github.com/usestrix安全72.6k151 次安装今天更新
代码仓库

关于 strix-pentest

strix-pentest 是指导运行 Strix 渗透测试的技能,面向需要测试本地代码、部署应用或 API 的安全人员。它说明如何选择自托管 CLI 或云端 API,并强调验证漏洞及检查扫描覆盖范围。

主要功能

  1. 01选择自托管 CLI 或云 API
  2. 02扫描代码、应用、域名或 IP
  3. 03配置扫描模式与预算上限
  4. 04查看漏洞 PoC 和修复建议
  5. 05导出 SARIF、JSON 与 CSV 结果

适用场景

  1. 01对本地代码或测试环境执行渗透测试
  2. 02按预算限制扫描开销
  3. 03检查漏洞证据并规划修复
  4. 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
免费/一次性/本地开发循环扫描,且已安装 DockerOSS 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(可自托管)

前提条件

  1. Docker 正在运行——使用 docker info 检查。首次扫描时会自动拉取沙盒镜像。
  2. 已安装 Strix——使用 strix --version 检查。若未安装,请安装:
    curl -sSL https://strix.ai/install | bash   # or: pipx install strix-agent
    
  3. 已配置 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, --targetURL、仓库 URL、本地路径、域名或 IP。可重复指定。
-n, --non-interactive无头模式,完成后退出。Agent 必须使用。
-m, --scan-modequick(几分钟)/standard(约 30 分钟)/deep(数小时,默认)。
--instruction / --instruction-file凭据、重点区域、范围规则。
--max-budget USDLLM 支出的硬上限;达到上限时扫描会正常收尾。
--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.sarifSARIF 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,如果目标看起来属于第三方基础设施,请自行确认授权。

评论

支持 Markdown