概述
中坤漏洞扫描服务目前由开源软件OpenVAS(GVM)与OWASP ZAP提供底层支撑,为了减少运维工作量,系统未对两者进行底层改造。其中GVM提供主机扫描能力,OWASP ZAP提供网站扫描能力。
OpenVAS(GVM)文档:https://greenbone.github.io/docs/latest/
部署要求
- 系统环境: kali-linux-2023.3(务必使用KALI系统,其它系统安装部署非常多问题)
OpenVAS(GVM)部署
- 版本:GVM-23.11.2
- 主机推荐:不低于16核32G
【部署步骤】:
-
查看gvm版本
apt list gvm gvm/kali-rolling 23.11.2 all
-
卸载原有postgresql
apt purge postgresql-15 apt purge postgresql-16
-
安装组件
sudo apt install gvm
-
初始化gvm
gvm-setup
全部完成之后会开始拉取漏洞数据/扫描脚本等元数据,数据多,耗时长,数据存放路径
/var/lib/gvm
,部署多个节点服务时,可以先从一个节点复制,再次执行gvm-setup来下载丢失的文件。
-
下载完数据后,配置gvmd的管理员与密码
runuser -u _gvm -- gvmd --user=admin --new-password=xxx
-
修改systemd配置文件
-
(a) 修改gvmd.service
vim /usr/lib/systemd/system/gvmd.service
将文件中的Type改为exec
ExecStart改为ExecStart=/usr/sbin/gvmd --foreground --osp-vt-update=/run/ospd/ospd.sock –listen-group=_gvm
(ExecStart只是加了--foreground标志)。
-
(b) 修改gsad.service
如果需要外部访问则将listen的127.0.0.1改为0.0.0.0,否则不需要改。 -
(c) 重新加载ststemd
systemctl daemon-reload
-
-
Check安装情况
gvm-check-setup
出现OK即可。 -
查看服务
systemctl status ospd-openvas.service systemctl status gsad.service systemctl status notus-scanner.service systemctl status gvmd.service
这里存在将磁盘上的数据加载进redis的过程,所以需要一定时间,这里的gvmd:Syncing是在加载数据,结束后即可。
-
验证
通过浏览器访问:https://127.0.0.1:9392/ (一定是https协议),登录账户/密码为之前设置的配置gvmd的管理员与密码。
点击这里的task wizard,直接开始扫描默认的127.0.0.1,任务完成即是正常的,部署成功。
-
部署接口服务
接口是使用flask写的restful接口,扫描器本身接口非常复杂,使用一层接口隐藏gvm协议和zap设置,代码仓库目前在https://github.com/beizhansl/gunicorn,配置文件在scan_server/.env文件中。-
(a) 拉取代码到`/home`目录下
cd /home git clone https://github.com/beizhansl/gunicorn.git
-
(b) 拉取代码后,填写secret_key (后续注册进zhongkun服务使用),配置端口
vim /home/gunicorn/scan_server/.env
-
(c) 安装依赖(如果出现版本冲突则使用python虚拟环境)
python -r install /home/gunicorn/scan_server/requirements.txt
-
(d) 启动服务
bash /home/gunicorn/start_gvm.sh
成功则出现Gunicorn start succeed。
-
-
接入中坤服务
在中坤服务管理后台添加一个扫描器,填写部署的漏洞扫描器的信息。- 节点类型为主机扫描
- 引擎类型为GVM
- 漏扫最大并发数根据机器规格填写,4核左右对应一个任务
- 连接验证Key就是配置的Secret Key
OWASP ZAP部署
ZAP部署相较OpenVAS容易得多
版本:ZAP-1.25.0
推荐8核8G(本身无法并发多任务,内存资源给多了也用不了)
-
安装zap
su apt install zaproxy
-
部署接口服务
和OpenVAS的部署方式相同-
(a) 拉取代码到/home目录下
```
cd /home
git clone <a href="https://github.com/beizhansl/gunicorn.git">https://github.com/beizhansl/gunicorn.git</a></p>
<pre><code></code></pre>
</li>
<li>
<p>(b) 拉取代码后,填写secret_key (后续注册进zhongkun服务使用),配置端口</p>
<pre><code>vim /home/gunicorn/scan_server/.env</code></pre>
</li>
<li>
<p>(c) 安装依赖(如果出现版本冲突则使用python虚拟环境)</p>
<pre><code>python -r install /home/gunicorn/scan_server/requirements.txt</code></pre>
</li>
<li>
<p>(d) 启动服务
```
bash /home/gunicorn/start_zap.sh成功则出现Gunicorn start succeed。
-
-
接入中坤服务
在中坤服务管理后台添加一个扫描器,填写部署的漏洞扫描器的信息。- 节点类型为站点扫描
- 引擎类型为ZAP
- 漏扫最大并发数ZAP只能为1
- 连接验证Key就是配置的Secret Key