Pentest Companion Workspace 是一个自托管的渗透测试管理工作区,属于 Security Skills 集合。它把渗透测试项目中的目标跟踪、工具执行、发现管理、CVSS 评分、证据收集、客户门户和报告生成整合到单一界面中,所有数据都保留在自己的基础设施上,不依赖云服务。
用途
该工作区面向渗透测试项目的全流程管理,帮助测试人员在一个界面内跟踪测试范围、运行工具、记录发现并输出报告。
主要能力
- 项目管理:跟踪目标、开放端口、凭据、攻击路径、PTES 检查清单阶段和耗时。
- 发现管理:支持 CVSS v3.1 评分、CVE 查询、证据上传、2400+ 模板和批量操作。
- 工具中心:集成 90+ 工具(nmap、gobuster、nikto、sqlmap、netexec、impacket 套件等),支持实时输出流和自动导入。
- Web 扫描器:被动安全扫描器,覆盖 TLS、头部、Cookie、CORS、暴露文件和技术指纹识别。
- 报告生成:生成 DOCX/PDF,包含品牌封面页、执行摘要和技术发现。
- 工作流剧本:顺序执行多工具扫描流水线(外部侦察、Web 应用、AD/SMB 枚举等)。
- 终端日志:将终端命令输出管道到项目会话中,支持 ANSI 回放。
- 定时扫描:对目标定期运行工具并自动导入结果。
- Webhook:在创建发现时发送 Slack/Discord/Teams 通知。
- REST API:提供项目和发现的只读端点。
使用方式
安装(推荐 Docker):
git clone https://github.com/Poellie01/PentestCompanion.git cd PentestCompanion cp .env.example .env
生成 SECRET_KEY
python3 -c "import secrets; print(secrets.token_hex(32))" |
xargs -I {} sed -i 's/^SECRET_KEY=$/SECRET_KEY={}/' .env
编辑 .env 设置 ADMIN_PASSWORD、SMTP 设置(可选)
nano .env
docker compose up -d docker compose logs -f app
访问 http://localhost:5000。默认管理员凭据在首次运行时打印。
Python 安装:
git clone https://github.com/Poellie01/PentestCompanion.git cd PentestCompanion python3 -m venv venv source venv/bin/activate pip install -r requirements.txt python app.py
配置通过 .env 文件控制,包括 SECRET_KEY、ADMIN_PASSWORD、DATABASE_URL(默认 SQLite,可换 PostgreSQL)、SMTP 或 Resend 邮件设置、HOST、PORT、FLASK_ENV 以及 SSRF_BLOCK_PRIVATE 等。
核心工作流包括:通过 UI 或 Python API 创建项目、添加目标、从工具中心运行工具并查看实时输出、通过终端日志辅助函数记录命令输出、创建发现(支持 Nessus/Burp 批量导入和模板)、运行 Web 扫描、执行工作流剧本、设置定时扫描、生成报告、配置 Webhook 以及调用 REST API。
适用场景
适用于需要自托管、数据不出本地基础设施的渗透测试团队,用于管理外部或内部测试项目、Web 应用扫描、AD/SMB 枚举、考试模式(如 OSCP)等场景。
限制
资料未提供关于收费、价格、平台兼容性、性能上限或效果保证的明确信息。部分功能(如报告生成)依赖 pandoc 等外部组件,工具检测依赖容器 PATH。SSRF 保护默认阻止私有 IP,可能影响 Webhook 和扫描器对内部地址的访问。