一个安全测试引擎。所有界面。
一个开放、本地优先的安全测试平台,适用于渗透测试人员、 AI 代理、CI/CD 流水线和团队。
传统安全工具围绕单个测试人员使用桌面界面而设计。
pwnproxy 围绕一个共享的安全测试引擎构建,可通过终端、TUI、REST API、WebSocket 流、CI/CD 流水线或通过 MCP 的 AI 代理进行控制。
┌─────────────────────┐
│ pwnproxy core │
│ │
│ Proxy · Scanners │
│ Repeater · Intruder │
│ Sessions · Plugins │
└──────────┬──────────┘
│
┌───────────┬───────────┼───────────┬───────────┐
▼ ▼ ▼ ▼ ▼
CLI TUI REST API WebSocket MCP
│ │ │ │ │
Pentesters Pentesters Automation Teams AI Agents
无论是手动拦截流量、运行自动化扫描、将安全检查集成到 CI/CD,还是让 AI 代理访问你的测试工作流,使用的都是同一个核心。
代理、扫描器、存储和自动化都在你的基础设施上运行。
核心测试工作流不需要云依赖。
CLI、TUI、REST API、WebSocket 流和 MCP 服务器都是同一底层系统的界面。
你不需要为手动测试和自动化分别准备单独的工具。
直接从命令行运行扫描,使用 JSON 或 SARIF 输出,并将发现集成到 CI/CD 流水线中。
pwnproxy 通过原生 MCP 服务器暴露其能力,使兼容的 AI 代理能够与人类操作员使用的同一测试引擎进行交互。
扫描器和钩子采用插件架构设计,支持内置和第三方扩展。
git clone https://github.com/ericmtzmtz/pwnproxy.git
cd pwnproxy
poetry install
需要 Python 3.12 或更高版本。
poetry run pwnproxy start --proxy-port 8080 --api-port 8000
这将启动:
127.0.0.1:8080127.0.0.1:8000http://127.0.0.1:8000/docscurl -x http://127.0.0.1:8080 http://httpbin.org/get
poetry run pwnproxy history
poetry run pwnproxy scan url https://example.com \
--scanners sqli,xss \
--output sarif \
--output-file report.sarif
退出码:
| 代码 | 含义 |
|---|---|
| 0 | 扫描完成,未发现发现项 |
| 1 | 扫描完成,发现发现项 |
| 2 | 错误 |
pwnproxy 目前通过 Poetry 从源码安装。PyPI 打包计划在未来的版本中提供。
暂停、检查、修改和恢复 HTTP/HTTPS 流量。
当前内置扫描器包括:
| 扫描器 | 检测 |
|---|---|
| SQLi | 基于错误和基于时间的盲注检测 |
| XSS | 反射型和存储型 XSS,带上下文分析 |
| LFI | 内容签名、路径遍历和 PHP 包装器 |
| XXE | 基于错误、XInclude、JSON 变异和 OOB 工作流 |
| SSRF | 参数分析、重定向检测和回调验证 |
扫描器消费捕获的流量,也可以直接在无头模式下执行。
独立于代理重放和修改原始 HTTP 请求。
发现项保留请求数据,以便手动验证检测到的问题。
使用 Burp 风格的 §marker§ 位置进行请求模糊测试。
支持的模式包括:
基于字典的路径和文件发现,支持:
自动提取和存储:
会话被隔离并本地持久化。
使用自定义扫描器和钩子扩展 pwnproxy。
插件可以:
内置和第三方扫描器使用相同的插件接口。
看门狗跟踪插件故障,并可以自动禁用反复失败的插件。
直接从终端运行 pwnproxy。
pwnproxy start
pwnproxy history
pwnproxy findings
pwnproxy scan url https://example.com
pwnproxy plugin list
pwnproxy session list
使用交互式终端界面进行:
以编程方式控制平台。
curl http://127.0.0.1:8000/api/v1/flows
API 暴露的功能包括:
交互式 API 文档可在以下位置获取:
http://127.0.0.1:8000/docs
消费流量、发现项、爬虫活动和其他工作流的实时事件。
示例流:
/ws/traffic/ws/findings/ws/events这允许外部界面和自动化系统实时响应测试活动。
pwnproxy 包含一个原生 MCP 服务器,将测试平台暴露给兼容 MCP 的代理。
Claude / Copilot / Custom Agent
│
▼
┌──────────────┐
│ MCP Server │
└──────┬───────┘
│
▼
┌──────────────┐
│ pwnproxy API │
└──────┬───────┘
│
┌─────────┼─────────┐
▼ ▼ ▼
Traffic Findings Scanners
│ │ │
└─────────┼─────────┘
▼
Security workflow
启动 pwnproxy:
pwnproxy start
然后配置你的兼容 MCP 的代理:
{
"mcpServers": {
"pwnproxy": {
"command": "python",
"args": [
"-m",
"apps.mcp.src.pwnproxy_mcp.server"
]
}
}
}
MCP 服务器充当 pwnproxy 平台之上的薄集成层。
参见:
docs/mcp.md
获取代理特定配置和工具文档。
pwnproxy
┌───────────────┐
│ Proxy Layer │
│ mitmproxy │
└───────┬───────┘
│
▼
┌─────────────────┐
│ HookBus │
│ async events │
└────────┬────────┘
│
┌──────────────────┼──────────────────┐
▼ ▼ ▼
Scanners Sessions Plugins
│ │ │
└──────────────────┼──────────────────┘
│
▼
┌─────────────────┐
│ Storage Layer │
│ SQLite / async │
└────────┬────────┘
│
▼
┌──────────────────────────────────────┐
│ Control Plane │
│ │
│ FastAPI · REST · WebSocket · Events │
└──────────────────┬───────────────────┘
│
┌──────────┬────────┼────────┬──────────┐
▼ ▼ ▼ ▼ ▼
CLI TUI REST WS MCP
pwnproxy 的设计使得核心测试工作流独立于用于控制它的界面。
pwnproxy 不是 Burp Suite 的克隆。
Burp Suite 仍然是用于 GUI 手动测试的优秀工具。
pwnproxy 专注于不同的架构:
| Burp Suite | pwnproxy | |
|---|---|---|
| 主要模型 | 桌面应用程序 | 共享测试引擎 |
| 手动测试 | GUI | TUI + API 界面 |
| 自动化 | 扩展 / 集成 | CLI + REST + SARIF |
| AI 代理 | 外部集成 | 原生 MCP 服务器 |
| 插件 | Java 生态系统 | 基于 Python 的插件 |
| 无头工作流 | 有限 | 原生 |
| CI/CD | 外部工具 | 内置输出和退出码 |
| 本地部署 | 是 | 是 |
pwnproxy 还可以导入 Burp 范围配置。
pwnproxy import burp --config burp-config.json
参见:
docs/burp-migration.md
获取迁移详情。
无需启动代理即可运行扫描:
pwnproxy scan url https://example.com \
--output sarif \
--output-file report.sarif
示例 GitHub Actions 工作流:
- name: Install pwnproxy
run: |
git clone https://github.com/ericmtzmtz/pwnproxy.git
cd pwnproxy
pip install poetry
poetry install
- name: Security scan
run: |
cd pwnproxy
poetry run pwnproxy scan url ${{ matrix.url }} \
--output sarif \
--output-file report.sarif
continue-on-error: true
- name: Upload SARIF
uses: github/codeql-action/upload-sarif@v3
with:
sarif_file: pwnproxy/report.sarif
pwnproxy 为每个会话使用本地 SQLite 存储。
一个会话可以包含:
~/.pwnproxy/sessions/<session>/
├── traffic.db
├── scanner_results.db
├── sessions.db
└── tasks.db
这使测试数据保持隔离和可移植。
完整的会话可以作为目录进行备份或移动。
对于更大规模的协作或基础设施部署,存储层围绕 SQLAlchemy 异步抽象设计。
Linux / macOS:
./dev.sh
Windows PowerShell:
.\dev.ps1
这将启动:
:8080:8000:4321poetry run pytest
有关架构和开发细节,请参阅贡献文档。
在添加主要新功能之前,当前开发周期侧重于架构稳定性和一致性。
P0 — 架构不变量
P1 — 运营韧性
P2 — 发布纪律
目标是在继续扩展平台表面积之前先强化平台。
| 主题 | 文档 |
|---|---|
| 安装 | docs/installation.md |
| CLI | docs/cli.md |
| API | docs/api.md |
| MCP | docs/mcp.md |
| 架构 | docs/architecture.md |
| 插件 | docs/plugin-architecture.md |
| 扫描器 | docs/scanners.md |
| 目录发现 | docs/directory-bruteforce.md |
| Burp 迁移 | docs/burp-migration.md |
| 开发 | docs/development.md |
欢迎贡献。
git clone https://github.com/ericmtzmtz/pwnproxy.git
cd pwnproxy
poetry install
poetry run pytest
在提交拉取请求之前:
详细的架构更改和规范在以下位置跟踪:
openspec/openspec/changes/pwnproxy 由 NEXTECH SOLUTIONS 维护——一家总部位于墨西哥的网络安全服务公司。
核心平台在 AGPLv3 许可下免费且开源。
专业服务可能包括:
| 服务 | 描述 |
|---|---|
| 安全评估 | 专业渗透测试项目和报告 |
| 定制开发 | 自定义扫描器、插件和集成 |
| 培训 | 实践安全与 DevSecOps 培训 |
| 自动化 | 集成到 CI/CD 中的安全测试工作流 |
如需咨询:
pwnproxy 根据 GNU Affero 通用公共许可证 v3.0 授权。
参见:
LICENSE
你可以根据 AGPLv3 的条款自由使用、修改和分发 pwnproxy。
为超越桌面的安全测试而生。