轉載自:http://www.kingbug.com/2018/01/25/openvas%E5%BC%80%E6%94%BE%E5%BC%8F%E8%84%86%E5%BC%B1%E6%80%A7%E8%AF%84%E4%BC%B0%E7%B3%BB%E7%BB%9F%E4%BB%8B%E7%BB%8D/
OpenVAS開放式脆弱性評估系統介紹
-
OpenVAS簡介
在IT項目中,系統上線時需要做運行環境的漏洞評估,找出漏洞后修復漏洞,只有運行環境滿足安全規范要求時才允許系統上線;在系統運維過程中,需要定期對系統進行基線測試,發現漏洞要及時整改,直至安全隱患消除,確保運行環境安全可靠。由此可見,發現漏洞、修復漏洞成為了IT項目生命周期中不可缺少的一項重要工作。如何才能及時有效的發現漏洞呢?這就需要用到漏洞評估工具了,今天我們就來介紹一款業內十分著名系統,它就是OpenVAS!
OpenVAS的全稱是Open Vulnerability Assessment System,譯成中文是開放式漏洞評估系統,官方(http://www.openvas.org)的介紹是這樣的:
OpenVAS是一個包含了多個服務及工具的框架,提供了一個全面而強大的脆弱性掃描及脆弱性管理解決方案。這個框架原來是綠骨網絡公司商業化脆弱性管理解決方案的一部分,自2009起,該框架就交給開源社區維護。
現在的安全掃描器集成了定期更新好的漏洞測試庫,漏洞測試庫總數超過了5萬條。
所有的OpenVAS產品都是免費軟件,大多數組件是基於GNU GPL許可。
最新版本的OpenVAS系統組件如下圖所示:
現在網上看到最多的是老版本的組件圖:
新版本和舊版本對比可以發現,新的版本在客戶層集約了Greenbone桌面套件,在服務層集約了Administrator管理者組件,在數據層Scanner掃描器強調的是漏洞測試數據,淡化掃描插件。
OpenVAS是專業掃描操作系統漏洞的利器,如果被掃描的操作系統安裝了WEB服務,OpenVAS也會順帶掃描WEB漏洞。
-
安裝OpenVAS
-
利用Atomicorp倉庫安裝OpenVAS8
-
1. 配置yum Atomicorp倉庫:
wget -q -O – http://www.atomicorp.com/installers/atomic |sh
2. 安裝openvas:
yum install openvas
3、配置openvas
openvas-setup (Update NVT’s and SCAP data, Configure GSAD)
4、檢查配置是否正確
openvas-check-setup,可以查到提示找不到redis-server: ERROR: No redis-server installation found
-
修復redis-server錯誤;
需要手動編譯安裝redis-server
1、下載,解壓,編譯:
wget http://download.redis.io/releases/redis-3.2.9.tar.gz
tar xzf redis-3.2.9.tar.gz
cd redis-3.2.9
make
2、安裝
cd src
mkdir /usr/local/redis-3.2.9
cp redis-server /usr/local/redis-3.2.9/
cp redis-cli /usr/local/redis-3.2.9/
cp redis-benchmark /usr/local/redis-3.2.9/
cp ../redis.conf /usr/local/redis-3.2.9/
3、修改配置文件
vi /usr/local/redis-3.2.9/redis.conf
注釋第84行的port 6379,下一行添加:
port 0
去掉第102及103行的注釋,如下:
unixsocket /tmp/redis.sock
unixsocketperm 700
timeout 0
啟動redis-server:
/usr/local/redis-3.2.9/redis-server /usr/local/redis-3.2.9/redis.conf
4、將/usr/local/redis-3.2.9將到環境變量中
vi /etc/profile
在最底部添加:
export PATH=”$PATH:/usr/local/redis-3.2.9″
環境變量生效:
source /etc/profile
5、配置自啟動
vi /etc/rc.d/rc.local
在最底部加一句:
/usr/local/redis-3.2.9/redis-server /usr/local/redis-3.2.9/redis.conf
下次開機時就會自動啟動redis-server
-
修復sqlite3_errstr錯誤
/etc/init.d/openvas-manager start,發現openvas-manager啟動時候出現如下錯誤:
/usr/sbin/openvasmd: symbol lookup error: /usr/sbin/openvasmd: undefined symbol: sqlite3_errstr
解決辦法:
1、安裝 atomic-sqlite-sqlite-devel.x86_64
yum install atomic-sqlite-sqlite-devel.x86_64
2、更新安裝包
yum downgrade openvas-manager-6.0.8-35.el6.art
3、然后執行openvas-check-setup
按照提示操作即可。
-
openvas-nvt-sync下載漏洞庫
openvas-nvt-sync下載漏洞庫是一個漫長的過程,需要耐心等待。
-
修復啟動腳本
通過netstat -tunap,會發現openvasmd偵聽了:::9390端口,openvassd偵聽了0.0.0.0:9391端口,gsad偵聽了0.0.0.0:9392及0.0.0.0:80端口,需要修復配置文件及啟動腳本。
配置文件位於/etc/sysconfig/目錄下
有三個配置文件:openvas-manager、openvas-scanner及gsad
vi /etc/sysconfig/openvas-manager
改為:
OPTIONS=””
MANAGER_ADDRESS=0.0.0.0
MANAGER_PORT=9390
vi /etc/sysconfig/openvas-scanner
改為:
# Options to pass to the openvassd daemon
OPTIONS=””
# Set to yes if plugins should be automatically updated via a cron job
auto_plugin_update=yes
# Notify OpenVAS scanner after update by seding it SIGHUP?
notify_openvas_scanner=yes
# Method to use to get updates. The default is via rsync
# Note that only wget and curl support retrieval via proxy
# update_method=rsync|wget|curl
# Additionaly, you can specify the following variables
#NVT_DIR where to extract plugins (absolute path)
#OV_RSYNC_FEED URL of rsync feed
#OV_HTTP_FEED URL of http feed
# First time install token
FIRSTBOOT=no
SCANNER_ADDRESS=0.0.0.0
SCANNER_PORT=9391
vi /etc/sysconfig/gsad
改為:
OPTIONS=””
#
# The address the Greenbone Security Assistant will listen on.
#
GSA_ADDRESS=0.0.0.0
#
# The port the Greenbone Security Assistant will listen on.
#
GSA_PORT=9392
GSA_REDIRECT=1
GSA_REDIRECT_PORT=8092
#
# The address the OpenVAS Manager is listening on.
#
MANAGER_ADDRESS=0.0.0.0
#
# The port the OpenVAS Manager is listening on.
#
MANAGER_PORT=9390
啟動文件位於/etc/init.d/目錄下
有三個啟動文件:openvas-manager、openvas-scanner及gsad
其中openvas-manager需要修復,修改為如下:
#!/bin/bash
# This is an implementation of a start-script for OpenVAS Manager
# chkconfig: – 92 10
# Description: OpenVAS Manager is a vulnerability Scanner management daemon
#
### BEGIN INIT INFO
# Provides: openvas-manager
# Required-Start: $local_fs $network $syslog
# Required-Stop: $local_fs $network $syslog
# Default-Start:
# Default-Stop: 0 1 2 3 4 5 6
# Short-Description: start|stop|status|restart|condrestart OpenVAS Manager
# Description: control OpenVAS Manager
### END INIT INFO
# Source function library.
. /etc/rc.d/init.d/functions
exec=”/usr/sbin/openvasmd”
prog=”openvasmd”
progname=”openvas-manager”
lockfile=/var/lock/subsys/openvasmd
[ -e /etc/sysconfig/$progname ] && . /etc/sysconfig/$progname
# Build parameters
[ “$MANAGER_ADDRESS” ] && PARAMS=”$PARAMS –listen=$MANAGER_ADDRESS”
[ “$MANAGER_PORT” ] && PARAMS=”$PARAMS –port=$MANAGER_PORT”
rh_status() {
# run checks to determine if the service is running or use generic status
status -p /var/run/$prog.pid -l $lockfile $progname
}
rh_status_q() {
rh_status >/dev/null 2>&1
}
start() {
echo “Starting $progname:”
#daemon –pidfile=/var/run/$prog.pid $prog $OPTIONS
daemon –pidfile=/var/run/$prog.pid $exec $PARAMS
#$prog
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && touch $lockfile
return $RETVAL
}
stop() {
echo -n “Stopping $progname: ”
killproc $prog
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && rm -f $lockfile
return $RETVAL
}
restart() {
stop
start
}
case “$1” in
start)
rh_status_q && exit 0
$1
;;
stop)
rh_status_q || exit 0
$1
;;
restart)
$1
;;
condrestart|try-restart)
rh_status_q || exit 0
$1
;;
status)
status -p /var/run/$prog.pid -l $lockfile $progname
;;
*)
echo “Usage: $0 {start|stop|status|restart|condrestart}”
exit 1
esac
exit 0
-
使用OpenVAS
安裝好OpenVAS后,我們來看下openvas三個組成部分:
-
OpenVAS Manager的進程名稱為openvasmd,偵聽9390端口,啟動方式為/etc/init.d/openvas-manager start
-
OpenVAS Scanner的進程名稱為openvassd,偵聽9391端口,啟動方式為/etc/init.d/openvas-scanner start
-
Greenbone Security Assistant的進程名稱為gsad,偵聽9391端口,啟動方式為/etc/init.d/gsad start
-
掃描Linux系統
-
1、登錄系統
首先在瀏覽器中打開https://192.168.1.31:9392,進入登錄頁面,如下圖所示:
登錄后的主界面如下:
2、創建登錄憑證
點擊菜單Configuration->Credentials,如下所示:
進入憑證列表后,點擊”創建”菜單創建一個登錄憑證,如下:
請參與下面參數創建一個Credential,如下:
創建成功后如下圖所示:
3、創建掃描目標
點擊菜單Configuration->Targets,如下所示:
進入掃描目標列表后,點擊”創建”菜單創建一個掃描目標,如下:
請參與下面參數創建一個Target,如下:
創建成功后如下圖所示:
4、創建掃描任務
點擊菜單Scan Management->Tasks,如下所示:
進入掃描任務列表后,點擊”創建”菜單創建一個掃描任務,如下:
請參與下面參數創建一個Target,如下:
創建成功后如下圖所示:
至止所有創建工作已經完成,如下開展正式掃描工作,如下:
點擊菜單Scan Management->Tasks,如下所示:
點擊啟動按鈕,如下:
啟動掃描后,可以刷新頁面查看掃描掃描進度,如下:
掃描完成后,可以查看報表,如下:
以上報表可以看出,被掃描的系統很多高危漏洞,需要逐個修復。
-
掃描Windows系統
1、登錄系統
首先在瀏覽器中打開https://192.168.1.31:9392,進入登錄頁面,如下圖所示:
登錄后的主界面如下:
2、創建登錄憑證
點擊菜單Configuration->Credentials,如下所示:
進入憑證列表后,點擊”創建”菜單創建一個登錄憑證,如下:
請參與下面參數創建一個Credential,如下:
創建成功后如下圖所示:
3、創建掃描目標
點擊菜單Configuration->Targets,如下所示:
進入掃描目標列表后,點擊”創建”菜單創建一個掃描目標,如下:
請參與下面參數創建一個Target,如下:
創建成功后如下圖所示:
4、創建掃描任務
點擊菜單Scan Management->Tasks,如下所示:
進入掃描任務列表后,點擊”創建”菜單創建一個掃描任務,如下:
請參與下面參數創建一個Target,如下:
創建成功后如下圖所示:
至止所有創建工作已經完成,如下開展正式掃描工作,如下:
點擊菜單Scan Management->Tasks,如下所示:
點擊啟動按鈕,如下:
啟動掃描后,可以刷新頁面查看掃描掃描進度,如下:
掃描完成后,可以查看報表,如下:
以上報表可以看出,因為沒有給windows 2003打補丁,被掃描的系統很多高危漏洞,需要給系統打補丁來修復漏洞。