1. 程式人生 > >Linux 漏洞掃描 openvas

Linux 漏洞掃描 openvas

 

 

openvas

什麼是OpenVAS

OpenVAS是一款開源的漏洞掃描攻擊,主要用來檢測網路或主機的安全性。其強大的掃描能力來自於整合數萬個漏洞測試程式,這些測試程式以外掛的形式提供,可以從官方網站免費更新.

 

 

一套完整的OpenVAS系統如下圖顯示

① 客戶層元件

Openvas-cli:負責提供從命令列訪問openvas服務的程式

Greenbone-security-assistant(gsa) :負責提供訪問openvas服務層的web介面,便於通過瀏覽器來執行掃描任務,監聽埠9392

Greenbone-Desktop-Suit: 主要用於windows客戶機上的套件

② 服務層元件

Openvas-scanner: 負責呼叫各種漏洞測試外掛,完成實際的掃描操作,監聽埠9391

Openvas-manager: 負責分配掃描任務,並根據掃描結果生成評估報告,監聽埠9390

Openvas-administrator: 負責管理配置資訊,使用者授權等相關工作

 

 

 搭建OpenVAS伺服器(CentOS)

 

禁用selinux,重啟生效

[[email protected]

~]#vi /etc/selinux/config

SELINUX=disabled

[[email protected] ~]#reboot

 

 

配置yum源

[[email protected] ~]#wget -q -O - http://www.atomicorp.com/installers/atomic |sh

 

安裝openvas

[[email protected] ~]#Yum upgrade

[[email protected] ~]#yum -y install openvas

[[email protected] ~]#yum -y install atomic-sqlite-sqlite-devel.x86_64 sqlite-devel

 

更新nvt

[[email protected] ~]#openvas-nvt-sync

注意:OpenVAS提供了一個名為openvas-nvt-sync的指令碼,可用來線上更新外掛。雖然這一步時間很久,可是非常重要,不然掃描時候沒有結果,大概有4萬多個外掛

 

配置登入使用者和密碼

[[email protected] ~]#openvas-setup

 

 

安裝redis nosql資料庫

[[email protected] ~]#cd /usr/local/src

[[email protected] src]# wget http://download.redis.io/releases/redis-4.0.2.tar.gz

[[email protected] src]# tar xf redis-4.0.2.tar.gz

[[email protected] src]#mv redis-4.0.2 ../redis

[[email protected] src]#cd ../redis

[[email protected] src]#make && make install

 

啟動redis:直接執行redis-server即可

[[email protected] redis]#redis-server

 

停止redis:

考慮到 Redis 有可能正在將記憶體中的資料同步到硬碟中,強行終止 Redis 程序可能會導致資料丟失。正確停止Redis的方式應該是向Redis傳送SHUTDOWN命令,方法為:

再開啟一個視窗執行下面命令

[[email protected] ~]#redis-cli shutdown

當Redis收到SHUTDOWN命令後,會先斷開所有客戶端連線,然後根據配置執行持久化,最後完成退出。
Redis可以妥善處理 SIGTERM訊號,所以使用 kill Redis 程序的 PID也可以正常結束Redis,效果與傳送SHUTDOWN命令一樣

 

配置redis-server

vim /usr/local/redis/redis.conf(將下面兩個引數註釋開啟,並修改unixsocket路徑)

unixsocket /usr/local/redis/redis.sock

unixsocketperm 700

 

vim /etc/openvas/openvassd.conf(在最後面新增一行 地址跟unixsocket的要一樣)

kb_location =/usr/local/redis/redis.sock

 

改完了,最後重啟一下redis 命令:

先關閉redis ,在啟動redis,啟動時候加上配置檔案載入

redis-cli shutdown

redis-server /usr/redis/redis.conf

 

啟動openvas服務

重啟openvassd ,openvasmd兩個daemon

[[email protected]]# openvassd restart

[[email protected]]# openvasmd restart

 

重建OpenVAS資料庫

[[email protected]]# openvas –rebuild

 

啟動openvs-scanner

[[email protected]]# /etc/init.d/openvas-scanner start

 

啟動openvas-manager

[[email protected]]# /etc/init.d/openvas-manager start

 

 

完成了配置,接著要測試是否安裝成功

[[email protected] ~]#openvas-check-setup

 

下面就是測試是否安裝成功遇到的問題以及解決方法:

3.問題:

ERROR:No client certificate file of OpenVASManager found.

FIX:Run’openvas-mkcert-client -n -i’

解決方式:

openvas-mkcert-client -n -i

 

4.問題:

ERROR:No users found.You need to create at least oneuser to log in.

Itis recommended to have at leastone user with role Admin.

FIX: create a user by running ‘openvasmd–create-user= –role=Admin && openvasmd–user= –new-password=’

解決辦法:

openvasmd –create-user=admin –role=Admin&& openvasmd –user=admin –new-password=123456

 

如果密碼登入不上去,可能是openvas預設給的密碼不是123456 需要在手動改一下,命令如下:

openvasmd –user admin –new-password 123456

 

5.問題:

ERROR:The number of NVTsin the OpenVASManager database is too low.

FIX:Make sure OpenVASScanneris running with an up-to-date NVT collection and run ‘openvasmd –rebuild’.

解決方式: 重新build資料庫

openvasmd –rebuild

 

6.問題:

ERROR:OpenVASManageris NOT running!

FIX:StartOpenVASManager(openvasmd).

解決方法:

通過命令可以看到如下資訊: netstat -an | grep 939檢視

tcp 0 0 0.0.0.0:9391 0.0.0.0:* LISTEN

tcp 0 0 0.0.0.0:9392 0.0.0.0:* LISTEN

tcp 0 0 :::9390 :::* LISTEN

 

如果是使用serviceopenvas-manager start 和 openvasmd -p 9390 -a 127.0.0.1啟動

[[email protected] openvas-manager-6.0.1]# netstat -anlp | grep 9390

tcp 00:::9390:::* LISTEN 19727/openvasmd

 

發現9390是監聽IPV6,所以netstat -A inet -ntlp獲取結果為空,導致會提示ERROR: OpenVAS Manager is NOT running!

需要手動啟動命令如下:

openvasmd -p 9390 -a 0.0.0.0

注意:啟動之前先用killall openvasmd殺掉原來的IPV6程序,如果手動啟動一次不行就啟動多次。

 

再檢視埠以及監聽了IPV4,顯示OK

[[email protected] admin]# netstat -anlp | grep 9390

tcp  0  0  0.0.0.0:9390 0.0.0.0:* LISTEN 22283/openvasmd

 

 

以上所有問題解決完成之後可能啟動成功了,輸入命令: openvas-check-setup 顯示如下列印:(安裝成功了)

 

It seems like your OpenVAS-8 installation is OK.

 

If you think it is not OK, please report your observation

and help us to improve this check routine:

http://lists.wald.intevation.org/mailman/listinfo/openvas-discuss

Please attach the log-file (/tmp/openvas-check-setup.log) to help us analyze the problem.

 

 

重新啟動 openvasmd服務

#!/bin/bash

/etc/init.d/openvas-scanner stop

/etc/init.d/openvas-manager stop

/etc/init.d/gsad stop

 

/etc/init.d/openvas-scanner start

openvas-nvt-sync

service redis restart

 

openvasmd --rebuild --progress

openvasmd --create-user=admin --role=Admin && openvasmd --user=admin --new-password=admin

openvasmd -p 9390 -a 0.0.0.0

service gsad start

 

批量殺死openvas程序

# ps -ef |grep openvas|grep -v grep|awk '{print $2}'|xargs kill -9

 

netstat -pantu | grep 939:檢視openvas埠是否開放(在openvas早起版本會開放三個埠9390(manager埠)、9391(掃描器埠)、9392(web服務埠),隨著版本的更新掃描器已整合在軟體裡,現只開放9390及9392)

 

最後瀏覽器登入:https://ip:9392

 

 

Openvas Web介面介紹

 

通過web介面訪問openvas,(值得注意的是openvas不是使用的http協議而是https協議)https://ip:9392

 

登入openvas後可以看到常規引數選項,在選項下可以進行一些常規的設定。

Dashboard:儀表板

scan:掃描管理

asset:資產管理

seclnfo :安全資訊管理

Configuration:配置

Extras:附加設定

Administration:賬號管理

Help:幫助

 

全域性設定

在Extras選項下開啟my settings:全域性配置,這裡可以修改openvas的配置。

 

掃描策略

(configuration-->scan configurations)openvas有預設的掃描策略

Discover: 只對目標系統進行發現掃描。

empty: 空策略,不進行任何操作。

Full and fast:全面的快速的掃描

Full and fast ulitimate:全面的快速的極限掃描

Full and very deep:全面的深度掃描

Full and very deep ultimate:全面的極限深度掃描

Host Discovery:主機發現

System Discovery:系統識別

 

Openvas 使用(環境kali metasploitable2 )

 

在kali裡用openvas對metasploitable2漏洞靶機進行探測,kali下載地址VMware版本、VirtualBox版本,靶機下載地址metasploitable,具體操作如下。

 

登入web頁面,配置掃描策略

 

在Confiuration選項下Scan configs,點選New Scan Configuration新建掃描策略。填寫策略的名稱,在Edit Scan Config中,配置需要的family型別,每一個family代表一種漏洞型別,該型別下會整合多種NVTS。勾選Selext all NVTs及選擇該型別,注意Family旁有斜著(DYNAMIC)和橫(STATIC)著的兩個箭頭,選擇DYNAMIC在openvas釋出新的NVTS時,策略會自動新增新的NVTS,然而選擇STATIC時openvas釋出新的NVTS,則不會被新增的策略裡面,在選擇完畢後Save儲存,主介面多出一個linux_test策略。

 

配置掃描目標

Confiuration選項選擇target,點選New target新建掃描目標,填寫名稱以及目標ip,Save儲存 ,主介面多處一個linux_test的掃描目標。此時設定還沒有完成,在配置完掃描埠後還需要將埠配置的新增到掃描目標裡,完成後port list就是自己配置的掃描埠。

 

設定掃描埠

Confiuration選擇port lists,點選New port lists 新建埠策略,openvas預設整合常見埠的 掃描策略。填寫掃描埠名稱,設定掃描埠,設定完成create儲存,主介面多處一個linux_test的埠策略。

 

設定掃描任務

scans選擇tasks,點選New tasks新建掃描任務,填寫掃描任務名稱,在任務設定時openvas會自動把設定的掃描目標新增,選擇配置的掃描策略,設定完成後create儲存,主介面多出一個linux_task的掃描任務,點選執行按鈕開始掃描。

 

在掃描完成以後可以點選進度條和last檢視掃描結果,結果會根據漏洞標準進行評分,openvas也會給出它對發現此漏洞的百分值,點選掃描結果可以看到openvas對此漏洞描述、使用哪種方法檢測出此漏洞以及漏洞的修復方案、漏洞編號及其連結。

 

生成報告

當掃描完成以後可以將掃描結果進行特定格式的匯出、支援多種報告格式,以方便進行閱讀和分析。

 

順序截圖

登入系統主頁面如下,並建立config:

在Configurations->scan config目錄下進入到配置頁面,點選五角星建立新配置:

 

建立一個target

 

 

 

 

 

 

總結

基礎的使用方法就到這裡了,任何的掃描工具都只是輔助我們發現漏洞,但並不是所有掃描出來漏洞都是真實的,都需要手動驗證漏洞的真實性。且不要盲目判斷掃描出的結果,很多的掃描器判斷機制都很簡陋的,會造成很多誤判、漏判

 

 

如果建立的掃描任務執行報錯如下:

Operation: Start Task

Status code: 503

Status message: Service temporarily down

就執行下面命令

/etc/init.d/openvas-scanner stop

killall openvasmd

openvas-mkcert -f

openvas-mkcert-client -i -n

openvasmd --get-scanners

openvasmd --modify-scanner "08b69003-5fc2-4037-a479-93b440211c73" --scanner-ca-pub /var/lib/openvas/CA/cacert.pem --scanner-key-pub /var/lib/openvas/CA/clientcert.pem --scanner-key-priv /var/lib/openvas/private/CA/clientkey.pem

openvas-nvt-sync

/etc/init.d/openvas-scanner start

openvasmd --rebuild

openvasmd -p 9390 -a 0.0.0.0

/etc/init.d/gsad start