Chinaunix首页 | 论坛 | 博客
  • 博客访问: 30710
  • 博文数量: 9
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 82
  • 用 户 组: 普通用户
  • 注册时间: 2012-02-02 00:25
文章分类
文章存档

2015年(1)

2013年(7)

2012年(1)

我的朋友

分类:

2012-12-11 09:13:44


构建OpenVAS 4漏洞评估系统

2011.05.17 TsengYia#126.com http://tsengyia.blog.chinaunix.net/

—— 附注:OpenVAS(Open Vulnerability Assessment System)是一套开源的漏洞/弱点扫描系统,可以强力替代著名的Nessus漏洞检测系统(已经非开源)。OpenVAS集成了多个服务、组件,既提供大量的免费扫描插件(NVT,Network Vulnerability Tests),也提供商业化的增强扫描插件(GSF,Greenbone Security Feed)。
#################################################################

系统环境:
    服务器 —— RHEL 5.5 [2.6.18-194.el5]
    客户机 —— Microsoft Windows 7

OpenVAS的工作结构:
    图1,OpenVAS4-Structure.png 各程序组件的协作关系


    图2,OpenVAS4-Feed.png 扫描插件来源(NVT、GSF)


软件环境:
    客户机端(用户接口)
    (1) 专用软件:
    (2) 网页浏览器器:Internet Explorer 8.0

    服务器端(扫描程序及插件)
    (1) 基本依赖包(来自RHEL 5.5 系统安装盘)
gnupg2-2.0.10-3.el5.i386.rpm            openldap-clients-2.3.43-12.el5.i386.rpm
libksab-1.0.5-2.el5.i386.rpm            pinentry-0.7.3-3.el5.i386.rpm
libtool-ltdl-1.5.22-7.el5.i386.rpm      pth-2.0.7-6.el5.i386.rpm
lm_sensors-2.10.7-9.el5.i386.rpm        tetex-3.0-33.8.el5.i386.rpm
net-snmp-5.3.2.2-9.el5.i386.rpm         tetex-dvips-3.0-33.8.el5.i386.rpm
net-snmp-utils-5.3.2.2-9.el5.i386.rpm   tetex-fonts-3.0-33.8.el5.i386.rpm
nmap-4.11-1.1.i386.rpm                  tetex-latex-3.0-33.8.el5.i386.rpm

    (2) 其他依赖包(可从、下载)
compat-gnutls2-2.8.5-2.1.el5.art.i386.rpm  python-fpconst-0.7.3-3.el5.art.noarch.rpm
gpgme-1.1.7-1.el5.art.i386.rpm             python-SocksiPy-1.00-4.el5.art.noarch.rpm
graphviz-2.16.1-1.el5.art.i386.rpm         python-sqlite2-2.3.3-4.el5.art.i386.rpm
graphviz-python-2.16.1-1.el5.art.i386.rpm  SOAPpy-0.11.6-5.el5.art.noarch.rpm
libmicrohttpd-0.4.2-2.el5.art.i386.rpm     sqlite-3.7.0.1-1.el5.art.i386.rpm
libtasnl-2.4-1.el5.art.i386.rpm            sqlite-devel-3.7.0.1-1.el5.art.i386.rpm
mingw32-nsis-2.45-3.el5.art.i386.rpm       w3af-1.0-4.el5.art.i386.rpm
nikto-2.1.4-1.el5.art.noarch.rpm           wmi-1.3.14-2.el5.art.i386.rpm
ovaldi-5.6.4-1.el5.art.i386.rpm            wordnet-3.0-13.el5.art.i386.rpm
pnscan-1.11-1.el5.art.i386.rpm             xalan-c-1.10.0-6.el5.art.i386.rpm
pyPdf-1.10-4.el5.art.noarch.rpm            xerces-c-2.8.0-4.el5.art.i386.rpm
python-BeautifulSoup-3.07a-3.el5.art.noarch.rpm

    (3) OpenVAS主要组件(可从、下载)
greenbone-security-assistant-2.0.1-3.el5.art.i386.rpm
openvas-1.0-0.5.el5.art.noarch.rpm
openvas-administrator-1.1.1-2.el5.art.i386.rpm
openvas-cli-1.1.2-2.el5.art.i386.rpm
openvas-glib2-2.22.5-1.el5.art.i386.rpm
openvas-glib2-devel-2.22.5-1.el5.art.i386.rpm
openvas-libraries-4.0.4-1.el5.art.i386.rpm
openvas-libraries-devel-4.0.4-1.el5.art.i386.rpm
openvas-manager-2.0.3-3.el5.art.i386.rpm
openvas-scanner-3.2.3-1.el5.art.i386.rpm

#################################################################

一、服务器安装与配置

1. 软件包安装
    依次安装基本依赖包、其他依赖包、OpenVAS主要组件(具体过程略)。
    确认安装后的相关文件、脚本——
[root@localhost ~]# ls /usr/sbin/{gsad,openvas*}        #//主要执行程序
/usr/sbin/gsad                /usr/sbin/openvas-mkcert-client
/usr/sbin/openvasad           /usr/sbin/openvas-nvt-sync
/usr/sbin/openvas-adduser     /usr/sbin/openvas-nvt-sync-cron
/usr/sbin/openvasmd           /usr/sbin/openvas-rmuser
/usr/sbin/openvas-mkcert      /usr/sbin/openvassd

[root@localhost ~]# ls /etc/init.d/{gsad,openvas*}      #//主要系统服务脚本
/etc/init.d/gsad              /etc/init.d/openvas-manager
/etc/init.d/openvas-scanner   /etc/init.d/openvas-administrator

[root@localhost ~]# ls /etc/openvas/                    #//主要配置文件
gsad_log.conf         openvasmd_log.conf      openvassd.rules
openvasad_log.conf    openvassd.conf

[root@localhost ~]# ls /etc/sysconfig/{gsad,openvas*}   #//默认配置文件
/etc/sysconfig/gsad             /etc/sysconfig/openvas-manager
/etc/sysconfig/openvas-scanner  /etc/sysconfig/openvas-administrator

[root@localhost ~]# ls /var/log/openvas/                #//主要日志文件
greenbone-nvt-sync.log    openvasmd.log
openvassd.log             openvasad.log     openvassd.dump


2. 启动OpenVAS各组件的服务器程序
    安装后包括四个系统服务,各自承担不同的用途。
openvas-manager           #//负责与客户端Greebone程序通信,完成扫描任务、检测报告的提交等工作,默认端口为9390
openvas-scanner           #//实际执行扫描的主服务,默认端口为9391
gsad                      #//负责提供Web访问界面,默认监听地址为127.0.0.1,端口为9392
openvas-administrator     #//负责与openvas-manager、gsad通信,完成用户和配置管理等操作,默认监听地址为127.0.0.1,端口为9393

    其中openvas-manager、openvas-scanner会在安装后自动启用,其余两个服务根据需要手动启动。
    gsad服务默认只监听127.0.0.1,若要从客户机的浏览器中访问,建议将其改为0.0.0.0后再启动服务。
[root@localhost ~]# vi /etc/sysconfig/gsad
……
GSA_ADDRESS=0.0.0.0
GSA_PORT=9392
[root@localhost ~]# /etc/init.d/gsad start
Starting greebone-security-assistant:                     [确定]

    确认四个服务都启动后的监听状态。
[root@localhost ~]# netstat -anpt | grep ":939"
tcp    0   0 0.0.0.0:9390      0.0.0.0:*      LISTEN      6981/openvasmd
tcp    0   0 0.0.0.0:9391      0.0.0.0:*      LISTEN      6971/openvassd:wai
tcp    0   0 0.0.0.0:9392      0.0.0.0:*      LISTEN      7319/gsad
tcp    0   0 127.0.0.1:9393    0.0.0.0:*      LISTEN      7436/openvasad

3. 获取扫描插件(在线或离线方式均可)
  (1) 在线同步最新插件,可及时获得最新版插件
[root@localhost ~]# openvas-nvt-sync

  (2) 下载离线插件包进行安装
[root@localhost ~]# wget openvas-nvt-feed-current.tar.bz2
[root@localhost ~]# tar jxf openvas-nvt-feed-current.tar.bz2 -C /var/lib/openvas/plugins/nvt/
  —— 更新插件内容后需重启openvas-scanner服务,由于插件数量众多(4万多个),再次启动此服务需耗费较长时间,请耐心等待。
[root@localhost ~]# /etc/init.d/openvas-scanner restart
Stopping openvas-scanner:                                 [确定]
Starting openvas-scanner:                                 [确定]

4. 创建扫描用户、管理员用户
  (1) 创建普通扫描用户scanner,允许检测192.168.4.0/24、10.0.0.0/24网段
[root@localhost ~]# openvas-adduser
Using /var/tmp as a temporary file holder.
Add a new openvassd user
-------------------------
Login: tsengyia                            #//输入要添加的扫描用户名称
Authentication (pass/cert)[pass]:          #//直接回车使用默认的密码认证方式
Login password:                            #//设置密码
Login password(again):                     #//设置密码(确认)

User rules
------------
openvassd has a rules system which allows you to restrict the hosts that tsengyia has the right to test.
For instance, you may want him to be able to scan his own host only.
Please see the openvas-adduser(8) man page for the rules syntax.
Enter the rules for this user, and hit ctrl-D once you are done.
(the user can have an empty rules set)
accept 192.168.4.0/24                      #//设置授权规则(允许扫描哪些网段或主机)
accept 10.0.0.0/24
default deny                               #//设置默认授权规则(若不指定任何规则,默认允许扫描任意主机、网络)

Login              tsengyia
Password           ************

Rules
accept 192.168.4.0/24
accept 10.0.0.0/24
default deny

Is that ok? (y/n)[y]                       #//直接回车接受前述设置,完成用户添加
user added.

  (2) 创建管理员用户admin
    先使用openvas-adduser工具添加普通的扫描用户admin,然后其配置目录中建立isadmin文件,即可将角色设置为管理员。
[root@localhost ~]# openvas-adduser
Using /var/tmp as a temporary file holder.
Add a new openvassd user
-------------------------
Login: admin
…… //省略其他过程

[root@localhost ~]# touch /var/lib/openvas/users/admin/isadmin



二、客户端的使用

1. 访问方式
  (1) 安装专用软件Greenbone-Desktop-Suite,以指定的扫描用户连接到服务器(openvas-manager)。
  (2) 通过网页浏览器访问

2. 基本使用过程
  (1) 以普通扫描用户登录到服务器(若以管理员用户登录,除了扫描权限以外,还可以进行用户设置、系统配置调整等管理任务)。
  (2) 定义扫描目标(Targets),可以是IP地址、网段地址等。
  (3) 创建新任务(New Task),选择扫描目标、扫描方式等。
  (4) 运行新创建的扫描任务。
  (5) 等待扫描结束,然后查看扫描报告。
  —— 注意1:查看扫描报告时可能会遇到“Internal error: get_report_omp:5370”的错误,貌似是openvas-manager的一个小bug(因奖券给nobody用户,但RHEL5系统中nobody用户的登录Shell默认为/sbin/nologin,从而导致此问题),在服务器中暂时的解决办法如下(新版本中应该会彻底解决)。
  —— 注意2:确保客户机与服务器的系统时间不要相差太远,否则在登录gsad服务的Web界面时可能会遇到“Session has expired. Please login again.”的错误而无法进入的情况。

#################################################################
阅读(1659) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~