PentestHub 是一款专为安全工程师设计的渗透测试项目管理平台,支持完整的项目生命周期管理:从项目创建、资产管理、漏洞记录到报告导出,全流程在线化、结构化。
平台集成了大语言模型(LLM)技术,可自动生成专业的漏洞修复建议、风险分析等内容,大幅提升报告编写效率。
- 项目管理 - 创建、编辑、删除渗透测试项目,支持项目分组和测试周期管理
- 资产管理 - 集中管理目标资产,支持按业务系统分组展示,Excel批量导入
- 漏洞管理 - 详细记录漏洞信息,支持 Markdown 格式编写详情、复现步骤和修复建议
- 漏洞模板库 - 内置常见漏洞模板,一键引用提升编写效率
- 历史漏洞追溯 - 支持漏洞继承和复现标记,便于跟踪漏洞修复状态
- 一键导出报告 - 将漏洞详情导出为 Word 格式报告,支持批量导出
- 月度报告生成 - 按日期范围生成月度统计报告,自动生成可视化图表
- LLM 增强分析 - 集成大语言模型,自动生成修复建议和风险评估
- PentAGI 集成 - 对接 PentAGI 渗透智能体,自动化渗透测试流程
| 类别 | 技术 |
|---|---|
| 后端框架 | Python 3.9+, Flask 2.3+ |
| 数据库 | SQLAlchemy (支持 SQLite/MySQL) |
| 前端 | HTML5, Jinja2, JavaScript, Tailwind CSS |
| 编辑器 | Editor.md (Markdown 编辑器) |
| 报告生成 | python-docx, matplotlib |
| LLM 集成 | LangChain |
- Python 3.9 或更高版本
- pip 包管理器
# 1. 克隆项目
git clone https://github.com/Emptytao/PentestHub.git
cd PentestHub
# 2. 创建虚拟环境
python -m venv venv
# macOS / Linux
source venv/bin/activate
# Windows
venv\Scripts\activate
# 3. 安装依赖
pip install -r requirements.txt
# 4. 配置环境变量
cp .env.example .env
# 编辑 .env 文件,修改 SECRET_KEY 和数据库配置
# 5. 初始化数据库
flask db upgrade
# 6. 启动应用
flask run应用启动后访问 http://127.0.0.1:5001 即可使用。
项目提供 Docker 部署配置,详见 deploy/ 目录。
cd deploy
docker-compose up -d| 变量名 | 说明 | 默认值 |
|---|---|---|
FLASK_APP |
Flask 应用入口 | app.py |
FLASK_ENV |
运行环境 | development |
FLASK_PORT |
服务端口 | 5001 |
DATABASE_URI |
数据库连接 | sqlite:///project.db |
SECRET_KEY |
Flask 密钥 | 必须修改 |
PENTAGI_URL |
PentAGI 服务地址 | 可选 |
支持 SQLite 和 MySQL 两种数据库:
# SQLite
DATABASE_URI=sqlite:///project.db
# MySQL
DATABASE_URI=mysql+pymysql://user:password@host:3306/dbname?charset=utf8mb4PentestHub/
├── app.py # 应用入口
├── models.py # 数据库模型
├── requirements.txt # Python 依赖
├── .env.example # 环境变量示例
├── .gitignore
├── README.md
│
├── routes/ # 路由模块
│ ├── __init__.py
│ ├── history.py # 历史漏洞管理
│ └── pentagi.py # PentAGI 集成
│
├── templates/ # Jinja2 模板
│ ├── dashboard.html
│ ├── assets.html
│ ├── vulnerabilities.html
│ └── ...
│
├── static/ # 静态资源
│ └── editor.md/ # Markdown 编辑器
│
├── uploads/ # 用户上传文件
│
├── instance/ # 实例数据
│
├── migrations/ # 数据库迁移
│
├── deploy/ # 部署配置
│ ├── docker-compose.yml
│ └── ...
│
└── docs/ # 文档
| 模型 | 说明 |
|---|---|
| Project | 项目信息 |
| ProjectGroup | 项目分组 |
| TestPeriod | 测试周期 |
| Asset | 资产信息 |
| Vulnerability | 漏洞信息 |
| VulnerabilityTemplate | 漏洞模板 |
| ReportConfig | 报告配置 |
| PentAGIConfig | PentAGI 配置 |
- 点击「新建项目」
- 填写项目名称、描述、起止日期
- 选择项目分组(可选)
支持 Excel 批量导入资产,Excel 需包含以下列:
- 单位名称、系统名称、系统版本
- 服务名称、地址、协议
- IP地址、端口、路径
- 在资产列表中点击系统进入漏洞管理
- 点击「新建漏洞」填写漏洞详情
- 支持 Markdown 格式编写渗透过程和修复建议
- 可上传漏洞截图
- 进入「报告」页面
- 选择要导出的系统
- 选择报告配置(报告人、审核人等)
- 点击「导出报告」
欢迎提交 Issue 和 Pull Request 来改进这个项目。
- Fork 本仓库
- 创建功能分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 创建 Pull Request
本项目采用 MIT 许可证 - 详见 LICENSE 文件。
- Editor.md - 开源 Markdown 编辑器
- Tailwind CSS - CSS 框架
- LangChain - LLM 应用框架
Made with ❤️ by Emptytao