Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/s1g0day/ReportGenX
渗透测试报告生成工具
https://github.com/s1g0day/ReportGenX
Last synced: 3 months ago
JSON representation
渗透测试报告生成工具
- Host: GitHub
- URL: https://github.com/s1g0day/ReportGenX
- Owner: s1g0day
- Created: 2024-06-01T00:54:27.000Z (6 months ago)
- Default Branch: main
- Last Pushed: 2024-08-19T07:42:26.000Z (4 months ago)
- Last Synced: 2024-08-20T06:57:35.702Z (4 months ago)
- Language: Python
- Homepage:
- Size: 1.55 MB
- Stars: 89
- Watchers: 2
- Forks: 12
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- awesome-hacking-lists - s1g0day/ReportGenX - 渗透测试报告辅助生成工具 (Python)
README
# 简介
基于[Coderrrr-400](https://github.com/Coderrrr-400/XhitReport) 师傅项目二开,也是`pyqt+chatgpt`练手项目。
# 背景
在试用多款报告生成工具后终于放弃了,每个项目在安装或使用的过程中都存在一些瑕疵。
![image-20240531161512821](images/README/image-20240531161512821.png)
如果只关注报告而不关注格式,每个选项似乎都不错,各有千秋。遗憾的是,它们都无法完全匹配正在使用的模板。我曾考虑对其中一些项目进行二次开发,但对于我这个初学者来说,难度太大了。相比之下,Coderrrr-400师傅的项目对我来说比较简单直接,也更加可塑。虽然我不懂pyqt,但在chatgpt和Google的帮助下,二次开发的项目还是达到了预期效果。
# 配置
`config.yaml`
```
report_Template: 'templates/report_template.docx'
vulnerability_List: 'data/vulnerabilities.xlsx'
ICP_List: 'data/icp_info.xlsx'
supplierName: '张三'
city: '北京'
````vulnerabilities.xlsx`
- 必须包含漏洞名称、漏洞描述、修复建议这三个表头
![image-20240710101437914](./images/README/image-20240710101437914.png)
除此之外的表头都无所谓`icp_info.xlsx`
- 必须包含unitName(单位名称)、domain(根域名)、serviceLicence(备案号)
![image-20240705170749367](images/README/image-20240705170749367.png)
- 数据来源
![image-20240705171031275](images/README/image-20240705171031275.png)
可以使用 [ICP_Query_Batch](https://github.com/s1g0day/ICP_Query_Batch) 进行自动提取
# 启动
该项目适用于 `python3.*` ,已验证:
- 开发:3.11.4
- 测试:3.8.61、安装模块
```
pip3 install -r requirements.txt
```2、启动GUI
```
python3 ReportGenX.py
```3、偷个懒使用start.bat
```
@echo off
rem 隐藏黑色窗口
if "%1"=="h" goto begin
mshta vbscript:createobject("wscript.shell").run("%~nx0 h",0)(window.close)&&exit
:beginREM 检查Python的安装路径
set PYTHON=python
set PYTHON3=python3REM 优先使用Python3
if exist %PYTHON3% (
set PYTHON=%PYTHON3%
)REM 使用Python运行demo.py
%PYTHON% ReportGenX.pyREM 检查是否成功运行
if %ERRORLEVEL% neq 0 (
echo Failed to run ReportGenX.py
pause
exit /b 1
)echo Successfully ran ReportGenX.py
pause
exit /b 0```
> 注: 如果使用start.bat的话,有两点需要注意:
- 我们的电脑可能会安装python2和python3两个版本,需要注意默认`PYTHON=python`调用的版本,如果`2版本`的话就无法启动
- 也要保证已经配置合适的环境变量```
C:\Users\test>python2 -V
Python 2.7.18C:\Users\test>python3 -V
Python 3.11.4C:\Users\test>python -V
Python 3.11.4C:\Users\test>path
PATH=D:\python\3;D:\python\2;D:\python\3\Scripts;D:\python\2\Scripts;
```## 基础测试
> 注: 图中所示为随便复制的测试数据,非实际漏洞
![image-20240710100914098](./images/README/image-20240710100914098.png)
## 基础输出
### xxx.docx
![image-20240710101059490](./images/README/image-20240710101059490.png)
### log.txt
`output/2024.05.28_output.txt`
![image-20240531164853349](images/README/image-20240531164853349.png)
直接全选复制到excel表格中
![image-20240531164909031](images/README/image-20240531164909031.png)
## 漏洞复现多图文
![image-20240604113703529](images/README/image-20240604113703529.png)
结果
![image-20240604114042469](images/README/image-20240604114042469.png)
## 删除
![image-20240605164514284](images/README/image-20240605164514284.png)
```
一键重置: 重置所有数据
一键清除: 仅删除所有漏洞附件及描述
```# 二开
本项目只适用于当前模板,如果有需要可以对其再次二开,相应功能都已在代码中做注释。
除常规功能外,引入了一些特殊的功能
- 1、根据输入自动改变输出
- 根据隐患级别自动改变预警级别
- 根据单位名称、网站名称自动改变隐患名称和问题描述默认值
- 根据隐患类型自动改变隐患名称、问题描述及整改建议
- 2、根据隐患URL自动提取根域名- 3、针对漏洞复现添加单个或多个图文,相比前面几个,这个是最有意思且最复杂的。