class Sourcefire::ReportOps

Public Instance Methods

ad_hoc_report_request(query, site_ids, save_file, report_config = Nexpose::AdhocReportConfig.new(nil, 'sql')) click to toggle source
# File lib/sourcefire/nexpose_helper.rb, line 39
def ad_hoc_report_request(query, site_ids, save_file, report_config = Nexpose::AdhocReportConfig.new(nil, 'sql'))
  @log.log_message("Setting up Ad-Hoc query request. Sites to query are <#{site_ids}> and report results file is <#{save_file.path}>.")
  report_config.add_filter('version', '1.1.0')
  report_config.add_filter('query', query)
  site_ids.each { |site_id| report_config.add_filter('site', site_id) }
  @log.log_message('Sending query request to Nexpose...')
  report_output = report_config.generate(@nsc, @timeout)
  @log.log_message("Parsing report response and saving to file <#{save_file.path}>")
  csv_output = CSV.parse(report_output.chomp,  headers: :first_row)
  save_file.puts(csv_output)
end
generate_sourcefire_nexpose_report(report_file, sites_to_query=nil) click to toggle source
# File lib/sourcefire/nexpose_helper.rb, line 51
def generate_sourcefire_nexpose_report(report_file, sites_to_query=nil)
  sites_to_query = site_id_listing if sites_to_query.nil? || sites_to_query.empty?
  @log.log_message("Generating report on the following sites #{sites_to_query}")
  self.ad_hoc_report_request(Queries.sf_host_vuln_info, sites_to_query, report_file)
end
login(url=nil, username=nil, password=nil, timeout=nil, port=nil) click to toggle source

Logs in to Nexpose using the url, username and password.

# File lib/sourcefire/nexpose_helper.rb, line 10
def login(url=nil, username=nil, password=nil, timeout=nil, port=nil)
  raise 'Nexpose connection must be set in environment variables.' if url.nil? || username.nil? || password.nil?
  @log = Sourcefire::NxLogger.instance
  @log.log_message('Setting up Nexpose connection...')
  @timeout = timeout
  @nsc = if port != nil 
           Nexpose::Connection.new(url, username, password, port)
         else
           Nexpose::Connection.new(url, username, password) 
         end
  @nsc.login
  @log.log_message('Nexpose connection established.')
  @log.on_connect(url, port || 3780, @nsc.session_id, "{}")
  @nsc
end
site_id_listing() click to toggle source
# File lib/sourcefire/nexpose_helper.rb, line 26
def site_id_listing
  @log.log_message('Generating site ID list...')
  site_ids = Array.new
  @nsc.list_sites.each { |site| site_ids << site.id }
  @log.log_message("Site ID list generation complete. Resulting list is <#{site_ids}>")
  site_ids
end
vulnerability_listing() click to toggle source
# File lib/sourcefire/nexpose_helper.rb, line 34
def vulnerability_listing
  @log.log_message('Generating vulnerability list...')
  @nsc.list_vulns
end