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,重啟生效
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