以Docker容器的形式运行GVM-11
OpenVAS(Open Vulnerability Assessment System)是在nessus基础上发展起来的一个开源的漏洞扫描程序,其核心部件是一套漏洞测试程序,可以检测远程系统和应用程序中的安全问题。
(一)在ubuntu 18系统中安装docker
apt install docker.io //在线安装docker
systemctl start docker //启动docker服务
systemctl enable docker //设置开机自动启动
docker version //查看docker版本
可以正常显示版本信息,说明安装成功。
(二)下载和运行GVM的docker镜像
1、下载GVM 11的docker镜像
docker search gvm
第一个镜像是我们需要的。
docker pull securecompliance/gvm //将镜像pull到本地
docker images //查看本地的docker镜像
2、运行GVM 11镜像
docker run -d -p 8080:9392 --name=gvm securecompliance/gvm
run命令装载docker镜像到内存,形成容器。
-d //后台运行容器
-p //将host的8080端口映射到容器的9392端口
--name //给容器起个名字
docker ps //查看正在运行的docker容器,可以看到GVM容器已经运行起来了
docker logs gvm //查看工作状态
若看到“our GVM 11 container is now ready to use!”,就可以使用了。(时间较长,请耐心等待)
(三)使用GVM进行漏洞扫描
1、登录
浏览器打开GVM的控制台界面:
用户名/口令:admin/admin,点击login按钮登录
2、创建扫描任务
下面创建简单的扫描任务,对metasploitable 2靶机进行漏洞扫描。
(1)创建扫描任务
Scans—Tasks
点击左侧带有五角星的方框,点击弹出的“New Tasks”项:
在“New task”窗口,填写下面的信息:
Name:指定扫描名称,如“metasploitable 2”
Comment:填写关于扫描任务的描述文字(可选)
Scan Targets:点击右侧五角星,弹出New Target表单。指定目标IP地址,填写完成后点击Save按钮提交:
其它的选项保持默认即可,也可以按照下图中的文字选择:
点击下方的Save按钮,创建扫描任务。
3、开始扫描
在任务列表中,点击右侧Actions中的Start按钮,开始扫描。
4、下载扫描报告
点击Scans—Reports
点击左上角一排小图标中的向下小箭头,弹出“Component Content for Scan Report”表单。选择报告类型,如PDF:
点击OK按钮,下载漏洞扫描报告。
报告中对某漏洞的描述:
6、更新NVT
重启GVM容器即可更新NVT特征库,无需单独运行命令。
(四)管理容器
1、查看容器内运行的进程
docker top gvm
2、进入容器内的命令行
docker exec -it gvm bash
在docker进行内修改时区
ln -fs /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
3、设置admin(管理员)口令和时区
默认时区是UTC时区,很恶心。
点击右上角的个人中心->my settings->编辑
timezone改成Asia/Shanghai 点击右下角save保存更改
5、停止容器
docker stop gvm
6、删除容器
不再需要容器了,可以将其删除。删除容器不会影响到镜像,使用前面运行镜像的命令可以创建新的容器。
docker ps -a //查看全部容器,包括运行的和已停止的
docker rm gvm //删除名为gvm的容器
(五)管理镜像
1、导出镜像
docker save -o gvm-11-image.tar securecompliance/gvm //将镜像导出到当前目录,名为gvm-11-image.tar
2、删除镜像
docker rmi securecompliance/gvm //删除镜像时,不能存在由该镜像创建的容器
3、导入镜像
docker load < gvm-11-image.tar //导入镜像
注意事项
GVM-11容器启动后默认不像OpenVAS那样监听本地环回地址,而是监听物理网卡地址。这样即提供了远程访问功能。因此应使用防火墙对访问GVM的源地址进行限制:
iptables -A INPUT -p tcp -s 192.168.1.100 –dport 8080 -j ACCEPT //允许192.168.1.100访问本地的GVM控制台
iptables -A INPUT -p tcp –dport 8080 -j REJECT //拒绝访问本地8080端口
2022年3月28日 更新
使用最新版本gvm默认未启用pdf格式下载,可以使用docker run --detach --publish 8080:9392 --env OPT_PDF="1" --name gvm securecompliance/gvm 添加参数执行
或者进入docker内部把/etc/apk/repositories里的域名成替换阿里云源mirrors.aliyun.com,这种方法要比上面的速度快很多。因为国外源下载很慢。
apk add --no-cache --allow-untrusted texlive texmf-dist-latexextra texmf-dist-fontsextra apk add texmf-dist-latexextra