Skip to content

Commit 89dbd1e

Browse files
committed
增加翻译功能
1 parent 26444b0 commit 89dbd1e

17 files changed

+676
-220
lines changed

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22
.idea/
33
database/
44
template.company/
5+
/test.py
6+
/内部员工README.md
57

68
# Byte-compiled / optimized / DLL files
79
__pycache__/

README.md

Lines changed: 97 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -5,49 +5,119 @@ GitHub:`https://github.com/Hypdncy/NessusToReport`
55

66
*版权所有,侵权必究*
77

8-
*本项目,仅仅代表个人,如有侵权,请通知我删除*
8+
*本项目,仅仅代表个人,如有侵权,请联系我删除*
99

10-
## 配置
10+
## 原理说明
1111

12-
1. config.py:用户配置信息的位置
12+
1. 程序将会自动扫描nessus目录下的csv文件,将他们读取
13+
1. 程序将只保留csv中的紧急,高危,中危漏洞,并且与数据库,自定义配置漏洞信息做匹配
14+
1. 匹配成功部分将会读取数据库中的漏洞信息,写入到loops.json中
15+
1. 匹配失败部分将会写入到errors.json中
16+
1. 若开启翻译,程序将会联网翻译该漏洞信息,并且再次写入到loops.json中
17+
1. 未开启翻译,程序将会抛出`漏洞PluginId`异常终止
18+
1. 程序将自动将自动根据模板生成docx文档
1319

14-
1. data.date:配置时间,参见default
15-
1. data.monitor:配置监督者,参见default
16-
1. data.manager:配置管理者,参见default
17-
1. data.work:配置工作者,参见default
18-
1. datasystems:配置IP和系统的关系,该项错误可能导致报错
19-
1. ignores:报告生成过程中忽略的nessusid
20-
1. nessus_vuln_self:自定义的漏洞信息
20+
## 安装说明
2121

22-
*若漏洞不存在数据库中,可以通过配置自定义nessus_vuln_self来添加*
23-
24-
1. cnf/default.py:默认的信息配置,该部分的信息会更新到data中,默认信息
25-
1. cnf/data.py:全局信息
22+
建议在windows下安装python3版本
2623

27-
变量覆盖顺序:config.py > default.py > data.py
24+
```shell script
25+
root@hypdncy:~# pip install -r requirement.txt
26+
```
27+
28+
## 配置说明
29+
30+
#### 基本配置
31+
32+
##### 配置时间信息
33+
34+
1. 配置位置:cnf/default.py中`def_default.data`参数
35+
1. 配置默认:默认配置为当天的时间
36+
1. 配置方法:按照参数栗子进行配置
37+
1. 配置说明:该配置将会替换文档中的时间相关信息
38+
39+
##### 修改人员信息
40+
41+
1. 配置位置:cnf/default.py中`def_default.monitor`,`def_default.manager`,`def_default.work`参数
42+
1. 配置方法:按照参数栗子进行配置
43+
1. 配置说明:该配置将会替换文档中的参与人员信息
44+
45+
##### 配置客户信息
46+
47+
1. 配置位置:config.py中`config.user`参数
48+
1. 配置方法:按照参数栗子进行配置
49+
1. 配置说明:该配置将会替换文档中的客户相关信息
50+
51+
##### 配置系统信息
52+
53+
1. 配置位置:config.py中`config.systems`参数
54+
1. 配置方法:按照参数栗子进行配置
55+
1. 配置说明:该配置将会替换文档中的`实施范围`
56+
57+
#### 漏洞配置
58+
59+
##### 配置自定义漏洞信息
60+
61+
1. 配置位置:config.py中`config.nessus_vuln_self`参数
62+
1. 配置方法:按照参数栗子进行配置
63+
1. 配置说明:该配置将会覆盖数据库中的漏洞信息,主要用于防止因为`漏洞PluginId`异常发生报错
64+
65+
##### 配置自定义漏洞等级
66+
67+
1. 配置位置:config.py中`config.nessus_risk_self`参数
68+
1. 配置方法:按照参数栗子进行配置
69+
1. 配置说明:该配置将会覆盖数据库中的漏洞等级,主要用于解决`JavaScript`,`PHP`等版本漏洞风险等级过高
70+
71+
##### 配置自定义漏洞忽略
72+
73+
1. 配置位置:config.py中`config.nessus_ignore_ids`参数
74+
1. 配置方法:按照参数栗子进行配置
75+
1. 配置说明:该配置将会忽略`nessus_ignore_ids`所对应的漏洞,把他们排除在外
76+
77+
#### 翻译配置
78+
79+
##### 配置翻译功能
80+
81+
1. 配置位置:config.py中`config.translate_status`参数
82+
1. 配置方法:按照参数栗子进行配置
83+
1. 配置说明:该配置开启后将会自动翻译数据库中不存在的漏洞信息,并且防止因为`漏洞PluginId`异常发生报错
84+
85+
##### 配置翻译接口
86+
87+
1. 配置位置:config.py中`config.translate_api`,`config.translate_url`,`config.translate_appid`,`config.translate_secret`,参数
88+
1. 配置方法:按照参数栗子进行配置
89+
1. 配置说明:该配置会决定使用的翻译API
2890

29-
## 使用
91+
## 使用说明
3092

3193
1. 导入nessus的csv,放置到csv/nessus/目录下
3294
1. 更新属于自己的模板文档并放置在template目录下
33-
34-
1. 将modle/docx_draw_host.py中"公司信息"替换为"$自己的公司"
35-
36-
1. 配置default.py、config.py为自己的信息
95+
1. 配置如上的信息
3796
1. 执行命令
3897

3998
```shell script
40-
python main.py -t host # 指定扫描报告类型
41-
python main.py # 默认主机扫描报告
99+
root@hypdncy:~# python main.py -t host # 指定扫描报告类型
100+
root@hypdncy:~# python main.py # 默认主机扫描报告
42101
```
43102

44-
> 配置出错
103+
## 技巧说明
45104

46-
出错的时候一般都是漏洞信息不再数据库中也不在config.py中,这时不存在的漏洞信息将会自动dump到errors.json中,
105+
1. 建议使用windows+python3
106+
1. 遇到数据库中不存在的漏洞信息时:
107+
1. 使用`配置自定义漏洞信息`功能,重新生成报告
108+
1. 读取errors.json中的文件
109+
1. 人工翻译并把它粘贴到`config.nessus_vuln_self`
110+
1. 开启`配置翻译功能`,重新生成报告
111+
1. 遇到漏洞风险等级定义过高
112+
1. 使用`配置自定义漏洞等级`功能,重新生成报告
113+
1. 在loops.json中寻找该漏洞的名称(从已经生成的word中获取)
114+
1. 获取名称对应的id,把它粘贴到`config.nessus_risk_self`
115+
1. 遇到多余的,不想要漏洞
116+
1. 使用`配置自定义漏洞忽略`功能,重新生成报告
47117

48-
可以翻译该文件中的字符串,并将其更新到config.py的nessus_vuln_self中
118+
> 记得使用完`配置自定义漏洞等级`,`配置自定义漏洞忽略`功能后将他们注释,防止下次生成报告时,使用该次的配置
49119
50-
## 更新
120+
## 更新说明
51121

52122
1. 项目不定期发布漏洞库vuln.db,在release中可以下载,并替换到./cnf/目录下
53123
2. 各位可以将errors.json中的信息写到到updatedb.txt中,并且push到github,我将会翻译并将其更新其到数据库中
@@ -58,3 +128,4 @@ python main.py # 默认主机扫描报告
58128

59129
## 特别谢鸣
60130

131+
Mr,YaDong:感谢YaDong同学的翻译建议与漏洞库更新

cnf/const.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,3 +115,10 @@
115115
"共发现安全漏洞{risk_count}个,存在的安全隐患主要包括{risk_includes}等安全漏洞,详情见如下章节。"
116116
}
117117
}
118+
# 翻译风险等级
119+
translate_risk = {
120+
"Critical": "紧急",
121+
"High": "高危",
122+
"Medium": "中危",
123+
"Low": "低危"
124+
}

cnf/default.py

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -36,16 +36,17 @@
3636
def_default = {
3737
# "date": "%Y-%m-%d",不填写即为默认
3838
"date": {
39-
# 年
39+
# 年, "2020"
4040
"year": datetime_cn.strftime('%Y'),
41-
# 月
41+
# 月, "07"
4242
"month": datetime_cn.strftime('%m'),
43-
# 日
43+
# 日, "07"
4444
"day": datetime_cn.strftime('%d'),
45-
# 起始日期
45+
# 起始日期, "2020-07-07"
4646
"start": datetime_cn.strftime('%Y-%m-%d'),
47-
# 截止日期
47+
# 截止日期, "2020-07-07"
4848
"end": datetime_cn.strftime('%Y-%m-%d'),
49+
# 以下为web扫描专用
4950
"prepare": "0.1",
5051
"execute": "0.7",
5152
"compile": "0.1",

cnf/vuln.db

32 KB
Binary file not shown.

config.py

Lines changed: 32 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,10 @@
5050
}
5151

5252
# 配置忽略的漏洞ID
53-
ignores = []
53+
nessus_ignore_ids = [
54+
# 举个栗子
55+
# "0000", "0001"
56+
]
5457

5558
# 自定义漏洞信息,ID:info
5659
nessus_vuln_self = {
@@ -65,3 +68,31 @@
6568
# "plugin_id": 18405
6669
# },
6770
}
71+
72+
nessus_risk_self = {
73+
"紧急": [
74+
75+
],
76+
"高危": [
77+
78+
],
79+
"中危": [
80+
81+
],
82+
"低危": [
83+
# javascript漏洞系列
84+
"18405",
85+
],
86+
}
87+
88+
89+
# 是否开启翻译功能,True or False
90+
translate_status = True
91+
# 翻译功能使用的API:baidu or youdao
92+
translate_api = "baidu"
93+
# 开启翻译功能后配置以下信息
94+
translate_url = 'http://api.fanyi.baidu.com/api/trans/vip/translate'
95+
# 翻译api的应用id
96+
translate_appid = '00000000000000000'
97+
# 翻译api的秘钥
98+
translate_secret = 'xxxxxxxxxxxxxxxxxxxx'

0 commit comments

Comments
 (0)