Skip to content

Emptytao/PentestHub

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PentestHub - 渗透测试项目管理平台

从资产到报告的一站式渗透测试管理解决方案

Python Flask License


项目简介

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 部署

项目提供 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=utf8mb4

项目结构

PentestHub/
├── 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 配置

使用指南

创建项目

  1. 点击「新建项目」
  2. 填写项目名称、描述、起止日期
  3. 选择项目分组(可选)

导入资产

支持 Excel 批量导入资产,Excel 需包含以下列:

  • 单位名称、系统名称、系统版本
  • 服务名称、地址、协议
  • IP地址、端口、路径

记录漏洞

  1. 在资产列表中点击系统进入漏洞管理
  2. 点击「新建漏洞」填写漏洞详情
  3. 支持 Markdown 格式编写渗透过程和修复建议
  4. 可上传漏洞截图

导出报告

  1. 进入「报告」页面
  2. 选择要导出的系统
  3. 选择报告配置(报告人、审核人等)
  4. 点击「导出报告」

贡献指南

欢迎提交 Issue 和 Pull Request 来改进这个项目。

  1. Fork 本仓库
  2. 创建功能分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 创建 Pull Request

许可证

本项目采用 MIT 许可证 - 详见 LICENSE 文件。

致谢


Made with ❤️ by Emptytao

About

渗透测试项目管理平台 - 从资产到报告的一站式解决方案

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors