使用自主智能体,直接在您的终端中进行AI驱动的进攻性安全测试。
使用自主智能体进行 AI 驱动的渗透测试——直接在您的终端中运行。运行黑盒和白盒渗透测试,探索、推理并发现真实漏洞。
想从云端运行或将其集成到您的 CI/CD 中?请参阅 Pensar Console。
/pentest——像运行测试一样自然地捕获漏洞/operator 模式进行手动调查、漏洞利用链构建和验证| 方式 | 命令 |
|---|---|
| 快速安装 (macOS/Linux) | curl -fsSL https://pensarai.com/install.sh | bash |
| Homebrew | brew tap pensarai/tap && brew install apex |
| npm | npm install -g @pensar/apex |
| Windows (PowerShell) | irm https://www.pensarai.com/apex.ps1 | iex |
打开 Apex TUI:
pensar
在 Herdr 中启动时,Apex 会自动报告其状态。侧边栏在一轮对话期间显示 working,在需要审批、计划审查或回答时显示 blocked,在 Apex 准备好接受输入时显示 idle。附加到终端的 CLI agent 命令也会报告其活动。无需插件或额外的 Apex 配置。
Herdr 0.9.2 或更高版本可以在服务器重启后恢复当前对话。请将 pensar 保留在您的 PATH 中;Apex 会提供包含会话 ID、活动模型和混淆设置的恢复命令。已保存的会话会恢复其操作员模式和审批设置。恢复的会话会等待您的下一条提示。
您也可以直接重新打开一个会话:
pensar --resume <session-id>
pensar --resume <session-id> --model <model-id>
状态上报和发布也兼容旧版 Herdr。上报在后台运行并设有较短的超时,Herdr 的故障不会中断 Apex。
无需 TUI 即可运行渗透测试,适用于脚本编写、CI 或 evalgate 集成:
# Basic pentest
pensar pentest --target https://example.com
# With extended thinking and task-driven mode
pensar pentest --target https://example.com --extended-thinking --task-driven
# Whitebox (with source code access)
pensar pentest --target https://example.com --cwd ./my-app
# Targeted pentest with specific objectives
pensar targeted-pentest --target https://example.com --objective "Test authentication bypass"
| 标志 | 命令 | 描述 |
|---|---|---|
--target <url> | pentest, targeted-pentest | 目标 URL(必填) |
--cwd <path> | pentest | 白盒模式的源代码路径 |
--mode <mode> | pentest | exfil 用于横向移动和标志提取 |
--model <model> | pentest, targeted-pentest | AI 模型(默认:自动选择) |
--extended-thinking | pentest | 为支持的模型启用扩展思考 |
--task-driven | pentest | 启用任务驱动架构(实验性) |
--prompt <text|@file> | pentest | 为代理提供自定义指导 |
--threat-model <text|@file> | pentest | 用于指导测试的威胁模型 |
--objective <text> | targeted-pentest | 测试目标(可重复) |
在 /providers 中连接 Hoonify 或设置 HOONIFY_API_KEY,然后在 /models 中选择
已发现的模型。无头命令接受
--model-provider hoonify --model <catalog-model-id>。有关模型发现、令牌预算和实时检查,请参阅
Hoonify 设置。
通过 customProviders
配置或 APEX_CUSTOM_PROVIDERS worker 环境变量引入 OpenAI 兼容端点和 bearer 令牌。使用
--model-provider <id> --model <model> 选择它,或在
操作员的 /models 选择器中选择其声明的模型。有关 GLM 设置、无头作业配置和实时连接测试,请参阅
自定义推理设置。
Apex 通过集中式结构化日志记录器
(src/core/logger)路由诊断/操作日志。当输出不是 TTY 时,它会将单行 JSON 写入 stderr —— 使其
与程序的标准输出分离,并易于发送到日志管道(例如 CloudWatch)——
在交互式终端中则输出美观的彩色输出。面向用户的 CLI/TUI 输出保留在
stdout 上。
设置级别(从最详细到最不详细:debug < info < warn < error,默认 info):
pensar pentest --target https://example.com --log-level debug # or --verbose / --quiet
PENSAR_LOG_LEVEL=debug pensar ... # via environment
PENSAR_DEBUG=1 pensar ... # back-compat alias for debug
解析顺序:CLI 标志 → PENSAR_LOG_LEVEL → PENSAR_DEBUG → 默认 info。
PENSAR_LOG_FORMAT=json|pretty 强制指定输出格式。当 Apex 作为托管代理运行时,
PENSAR_LOG_LEVEL 由宿主环境提供。
将步骤级代理追踪流式传输到 Weights & Biases Weave,以便进行分析和微调:
export WANDB_API_KEY=your-key
export WANDB_ENTITY=your-entity
# WANDB_PROJECT defaults to "apex-traces"
pensar pentest --target https://example.com
跟踪记录包含推理步骤、工具调用、token 用量和状态检查点。未设置凭据时,跟踪会被静默禁用。
Apex 通过 @opentelemetry/api 为 agent 运行、LLM 调用和工具执行发出 OpenTelemetry span。除非你的进程将 OpenTelemetry SDK 注册为全局 tracer provider,否则这些 span 都是空操作;Apex 本身不附带任何 SDK。
在导入 Apex 代码之前注册 SDK:
@sentry/node ≥ 9.27,并将 Sentry.vercelAIIntegration() 添加到你的 Sentry.init integrations 中。@opentelemetry/sdk-node 并配置 OTLP exporter。Span 遵循 OTel GenAI 语义约定。默认仅捕获 span 的结构信息(模型、token 数量、延迟、工具名称);设置 AI_TRACE_RECORD_PAYLOADS=true 可同时记录提示词、工具 I/O 和输出。
为获得最佳性能,请在随附的、预配置了渗透测试工具的 Kali Linux 容器中运行 Apex:
cd container
cp env.example .env # add your API keys
docker compose up --build -d
docker compose exec kali-apex bash
在容器内,运行:
pensar
本仓库包含的工具仅用于经授权的安全测试。 使用前,请阅读并同意负责任使用声明。