class OpenvasCli::VasNVT

Describes a NSIS/OpenVAS scan rule.

Attributes

bugtraq_id[RW]
category[RW]
cve_id[RW]
cvss_base[RW]
description[RW]
family[RW]
name[RW]

Human readable name of the rule.

preferences[RW]
risk_factor[RW]
summary[RW]
tags[RW]
version[RW]
xrefs[RW]

Public Class Methods

get_all(options = {}) click to toggle source

Pulls VasNVT rules that match the provided options.

Options:

:id => [VasNVT.oid]

will pull only the NVT rule that matches the given OID

:family => [VasFamily.name]

will pull all NVT rules for the specified family

# File lib/openvas-cli/vas_nvt.rb, line 35
def self.get_all(options = {})
  params = {:details => '1'}
  params[:nvt_oid] = options[:id] if options[:id]
  params[:family]  = options[:family] if options[:family]
  params[:config_id] = options[:config_id] if options[:config_id]

  req = Nokogiri::XML::Builder.new { |xml|
    xml.get_nvts(params)
  }
  
  rules = connection.send_receive(req.doc)
  
  ret = []
  rules.xpath("/get_nvts_response/nvt").each { |nvt|
    rule             = VasNVT.new
    rule.id          = extract_value_from("@oid", nvt)
    rule.name        = extract_value_from("name", nvt)
    rule.category    = extract_value_from("category", nvt)
    rule.copyright   = extract_value_from("copyright", nvt)
    rule.description = extract_value_from("description", nvt).strip
    rule.summary     = extract_value_from("summary", nvt)
    rule.family      = extract_value_from("family", nvt)
    rule.version     = extract_value_from("version", nvt)
    rule.cvss_base   = extract_value_from("cvss_base", nvt)
    rule.risk_factor = extract_value_from("risk_factor", nvt)
    rule.cve_id      = extract_value_from("cve_id", nvt)
    rule.bugtraq_id  = extract_value_from("bugtraq_id", nvt)
    rule.xrefs       = extract_value_from("xrefs", nvt).split(/, ?/)
    rule.tags        = extract_value_from("tags", nvt).split(/, ?/)
    ret << rule
  }
  
  ret
end