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端口