Lucene search

K
nessusThis script is Copyright (C) 2005-2024 and is owned by Tenable, Inc. or an Affiliate thereof.SCAN_INFO.NASL
HistoryAug 26, 2005 - 12:00 a.m.

Nessus Scan Information

2005-08-2600:00:00
This script is Copyright (C) 2005-2024 and is owned by Tenable, Inc. or an Affiliate thereof.
www.tenable.com
972

AI Score

7.1

Confidence

Low

This plugin displays, for each tested host, information about the scan itself :

  • The version of the plugin set.
  • The type of scanner (Nessus or Nessus Home).
  • The version of the Nessus Engine.
  • The port scanner(s) used.
  • The port range scanned.
  • The ping round trip time
  • Whether credentialed or third-party patch management checks are possible.
  • Whether the display of superseded patches is enabled
  • The date of the scan.
  • The duration of the scan.
  • The number of hosts scanned in parallel.
  • The number of checks done in parallel.
#TRUSTED 15daeb8b7cdf8ac320111e5c59c1c9d567450a583450fadbcd9aaa5628bba968dc3381c28d953f9dcc4ae2d81ef7c235b1ff7ab9f2ded4ef2b3606d6108cd271c9d3ded147598f3e6e8ae5c2d6ef12d1c94a54189fc3bc88a085536eb3181727edfbeacc161c8d51433c35599e0b6891384182d2e6de37eaa0722bff9170e1401b41b281e4aa1117588cefc308783c9360ed80a05a2d734ca6e7604692a9e4374e7e9eb6abae646fdab5cf0422d110fc1545721f1bcdf452f1b264295b4807419deab29138c8acbf7fbf05c7230184da550e28cd844796361b5d9db1ef242418d8ecd0eb616b79957236ca419341ff5ea7981d2572f848c70e6c8e5cf23d8153abe40e9050512fde6423bbb184abb34c6d66d868c5b757122b7b02fc11b147dc04c31cdf37465cc05124e4cb34366bf3134549ca9bf3160f518ca89e7ec2e1c642aeefeeaf977ee93a1642763e1958821f5a025d06116c0fd39aa39cce9afda8961e82b4fab661ce6493fbfd41ed0bd0d180bbc1cb6dc2f242fd8fbc5dd29f9403f5e4ed37cf7c57bbc4f9835bae7b9d706182da6a1783031a3aa233f31cf27812f0c244b165f9c5a833569df37b58cf055f4ab88e4f375e7fb975e8336343f99967553846749ff4418554b4e345af0b9ae56f166061d719b34db0ae36426ae2e07caeca781f667d21fb8b357c53530c02c899169c685d8a079896c5f48fd3a6
#TRUST-RSA-SHA256 75ffaed690c6248d5382a7205a968227e32c6a013012da4e1ead9f2f265e98b54d764f0a2d285be1ac7a73b78a944c15c640561dc1be7d438bda93004149366998139a72fb1bf2d493e613573609933cdcc64af0666d90770fb55cd4ff3123af508e59af8043fadba724df3b7e79bc7f5f14a77e79502cdbaa585da3d334291f42289ea420a7ed0fa2872720fc82e5825402bd22f318543abd6a9141d5d6a66598613750a401a21928d58519a8e3e338828693b43a718d287833806876540e782d4b1daab035023f4014e41c5c31c58d4e660f24b504f43f1230bd1a18d9cc925608fcaacf9a19c647a88266e0716b723919328e6a70697b253fced73970bfead91baf4423f7b639291a59870ac8fe2c1a979fe4424aafd5de4446ef4d864e7d504df58ab2a4c1592b279ec0655c72572caa4f1e68e257593e56cf53e5593f0cab35aff882c37556c21833a06ee134ccc017d9686417f96d52cdf7866b9dcc7894febf6875250b8bef183f35dc12578571e8026e76af2a9ac3162f3650ab989a93cc0632d419b2fa77fbfdf4f029363d0a99ac4251cc8323431190038a5f3a37e5bc08ab838fecc15bf10856f1a4ac128fa4274c6b6341bee27550bb686d2c2a257b162a4b25e4749f850594f1f40e27f7d5c27888aed1644f7a3c900ea46c6e03ef519f70c0586ccef9916749f60d6eaabfbd1ff3bf8b67424282c2faaf772c
#%NASL_MIN_LEVEL 70300

#
# (C) Tenable Network Security, Inc.
#

include('deprecated_nasl_level.inc');
include("compat.inc");

if (description)
{
  script_id(19506);
  script_version("1.125");
  script_set_attribute(attribute:"plugin_modification_date", value:"2024/07/17");

  script_name(english:"Nessus Scan Information");

  script_set_attribute(attribute:"synopsis", value:
"This plugin displays information about the Nessus scan.");
  script_set_attribute(attribute:"description", value:
"This plugin displays, for each tested host, information about the
scan itself :

  - The version of the plugin set.
  - The type of scanner (Nessus or Nessus Home).
  - The version of the Nessus Engine.
  - The port scanner(s) used.
  - The port range scanned.
  - The ping round trip time 
  - Whether credentialed or third-party patch management
    checks are possible.
  - Whether the display of superseded patches is enabled
  - The date of the scan.
  - The duration of the scan.
  - The number of hosts scanned in parallel.
  - The number of checks done in parallel.");
  script_set_attribute(attribute:"solution", value:
"n/a");
  script_set_attribute(attribute:"agent", value:"all");
  script_set_attribute(attribute:"always_run", value:TRUE);
  script_set_attribute(attribute:"risk_factor", value:"None");

  script_set_attribute(attribute:"plugin_publication_date", value:"2005/08/26");

  script_set_attribute(attribute:"plugin_type", value:"summary");
  script_set_attribute(attribute:"thorough_tests", value:"true");
  script_end_attributes();

  script_category(ACT_END2);
  script_family(english:"Settings");

  script_copyright(english:"This script is Copyright (C) 2005-2024 and is owned by Tenable, Inc. or an Affiliate thereof.");

  script_dependencies("nessus_product_setup.nasl", "patches_summary.nbin");

  exit(0);
}

include('nessusd_product_info.inc');
include('smb_hotfixes.inc');
include('smb_func.inc');
include('agent.inc');
include('http.inc');
include('ssl_funcs.inc');

var rel, NESSUS6, nes_ver, nes_level, myVersion, plugin_feed_info, array, new_vers, list, version, unsupported_version,
acas_info, report, myPluginFeed, time, diff, old_feed, n_prod, scan_type, policy_name, policy_name2, range, ping_rtt,
modulus, local_checks, login_used, systemroot, proto_used, now, pmchecks, tool, report_superseded, opt, post_scan_editing,
start, zero, scan_duration, num_unsupported, i, cpe_base, old_feed_alert;

##
# Obtain the public ip address from the aws IMDSv2 service
##
function get_aws_metadata_public_ipv4()
{
  var AWS_IMDSv2_SERVICE_IP = "169.254.169.254";
  var AWS_IMDSv2_SERVICE_PORT = 80;

  # Get the IMDSv2 Token

  var AWS_TOKEN_URL = "/latest/api/token";
  var TOKEN_HEADERS = {
    "X-aws-ec2-metadata-token-ttl-seconds": "21600"
  };

  var latest_api_token_res =  http_send_recv3(
    target       : AWS_IMDSv2_SERVICE_IP,
    port         : AWS_IMDSv2_SERVICE_PORT,
    method       : "PUT",
    item         : AWS_TOKEN_URL,
    add_headers  : TOKEN_HEADERS,
    transport    : ssl_transport(ssl:FALSE, verify:FALSE),
    exit_on_fail : FALSE
  );
  var token = latest_api_token_res[2];

  # Validate Token exists before attempting to get address
  if (empty_or_null(token)) return NULL;



  # Get the IMDSv2 latest ipv4 address

  var AWS_IPV4_URL = "/latest/meta-data/public-ipv4";
  var IPV4_HEADERS = {
    "X-aws-ec2-metadata-token": token
  };

  var latest_public_ipv4_res =  http_send_recv3(
    target       : AWS_IMDSv2_SERVICE_IP,
    port         : AWS_IMDSv2_SERVICE_PORT,
    method       : "GET",
    item         : AWS_IPV4_URL,
    add_headers  : IPV4_HEADERS,
    transport    : ssl_transport(ssl:FALSE, verify:FALSE),
    exit_on_fail : FALSE
  );
  var ipv4_address = latest_public_ipv4_res[2];

  return ipv4_address;
}


old_feed_alert = 0;
NESSUS6 = make_list(6,10,5);
nes_ver = nessus_version();
nes_level = NASL_LEVEL;
myVersion = NULL;

plugin_feed_info = nessusd_plugin_feed_info();

if(isnull(plugin_feed_info))
  plugin_feed_info = {};

if(isnull(plugin_feed_info["PLUGIN_SET"]))
  plugin_feed_info["PLUGIN_SET"] = "<error>";

if(isnull(plugin_feed_info["PLUGIN_FEED"]))
  plugin_feed_info["PLUGIN_FEED"] = "<error>";

if (!isnull(nes_ver))
{
  array = split(nes_ver, sep:'.', keep:FALSE);
  myVersion = make_list(int(array[0]), int(array[1]), int(array[2]));

  if ( myVersion[0] < NESSUS6[0] || (myVersion[0] == NESSUS6[0] && (myVersion[1] < NESSUS6[1] || (myVersion[1] == NESSUS6[1] && myVersion[2] < NESSUS6[2])))
  ) new_vers = NESSUS6[0] + "." + NESSUS6[1] + "." + NESSUS6[2];
}

#
# If no plugin has shown anything, exit and note
#
list = get_kb_list("Success/*");
if ( isnull(list) ) exit(0,"No scans were completed. No scan information to report.");


if ( ! strlen(nes_ver) )
{
  if ( ! defined_func("pread") && nes_level >= 2202 )
    version = "NeWT";
  else
    version = "Unknown (NASL_LEVEL=" + nes_level + ")";
}
else
  version = nes_ver;

unsupported_version = NULL;
if (!isnull(myVersion) && myVersion[0] < NESSUS6[0])
{
  unsupported_version = 'Your Nessus version ' + version + ' is no longer supported.\n' +
   'Please consider upgrading to ensure that results are complete.\n';
}

if ( new_vers )
 version += " (Nessus " + new_vers + ' is available.)\n';

var nasl_env = nasl_environment(flags:ENV_APP | ENV_RUNTIME | ENV_OS | ENV_SCAN);

acas_info = '';
report = 'Information about this scan : \n\n';
report += 'Nessus version : ' + version + '\n';
if (!empty_or_null(nasl_env.build))
  report += strcat('Nessus build : ', nasl_env.build, '\n');

if (!isnull(unsupported_version))
  report += unsupported_version + '\n';


if ( plugin_feed_info["PLUGIN_SET"] )
{
 if (  "Home" >< plugin_feed_info["PLUGIN_FEED"] )
   myPluginFeed = "Nessus Home";
 else
   myPluginFeed = "Nessus";

 report += 'Plugin feed version : ' + plugin_feed_info["PLUGIN_SET"]     + '\n';
 report += 'Scanner edition used : ' + myPluginFeed + '\n';
 set_kb_item(name: "PluginFeed/Version", value: plugin_feed_info["PLUGIN_SET"]);
 set_kb_item(name: "PluginFeed/Type", value: plugin_feed_info["PLUGIN_FEED"]);
 if ( plugin_feed_info["PLUGIN_SET"] =~ "^[0-9]*$" )
 {
  rel["year"] = int(substr(plugin_feed_info["PLUGIN_SET"], 0, 3));
  rel["mon"] = int(substr(plugin_feed_info["PLUGIN_SET"], 4, 5));
  rel["mday"] = int(substr(plugin_feed_info["PLUGIN_SET"], 6, 7));
  time = ((rel["year"] - 1970)*(24*3600*365)) +
      (rel["year"] - 1970)/4*24*3600;
  time += (rel["mon"]-1)*(12*3600*30+12*3600*31);
  time += rel["mday"]*(24*3600);
  diff = (unixtime() - time)/3600/24;
  if ( diff >= 30 && diff < 10000 )
  {
   old_feed_alert ++;
   old_feed = '\nERROR: Your plugins have not been updated since ' +
     rel["year"] + "/" + rel["mon"] + "/" + rel["mday"] + '\n' +
'Performing a scan with an older plugin set will yield out-of-date results and
produce an incomplete audit. Please run nessus-update-plugins to get the
newest vulnerability checks from Nessus.org.\n\n';
   report += old_feed;
  }
 }
}

# Scanner OS
if (!empty_or_null(nasl_env.os))
  report += strcat('Scanner OS : ' + nasl_env.os, '\n');

if (!empty_or_null(nasl_env.distro))
  report += strcat('Scanner distribution : ', nasl_env.distro, '\n');

n_prod = get_kb_item("nessus/product");
if (!isnull(n_prod))
{
  if (n_prod == PRODUCT_WIN_AGENT  )      scan_type = "Windows Agent";
  else if (n_prod == PRODUCT_UNIX_AGENT ) scan_type = "Unix Agent";
  else if (n_prod == PRODUCT_MAC_AGENT )  scan_type = "Mac Agent";
  else if (n_prod == PRODUCT_NESSUSD    ) scan_type = "Normal";
  else if (n_prod == PRODUCT_NESSUSD_NSX) scan_type = "Nessus in NSX environment";
  else scan_type = "Nessus product undetermined";
  report += 'Scan type : ' + scan_type + '\n';
}

var scan_name;
if (!empty_or_null(get_preference('sc_scan_display_name')))
  scan_name = get_preference('sc_scan_display_name');
else if (!empty_or_null(nasl_env.scan_name))
  scan_name = nasl_env.scan_name;

if (!empty_or_null(scan_name))
  report += strcat('Scan name : ', scan_name, '\n');

policy_name = get_preference("@internal@policy_name");
if ( strlen(policy_name) > 0 )
{
  acas_info += 'ScanPolicy:' + policy_name;
  report += 'Scan policy used : ' + policy_name + '\n';
}

if (defined_func("report_xml_tag"))
{
  policy_name2 = get_preference("sc_policy_name");
  if (strlen(policy_name2) == 0) policy_name2 = policy_name;
  if (strlen(policy_name2) > 0) report_xml_tag(tag:"policy-used", value:policy_name2);
}

if (get_kb_item("Host/msp_scanner"))
{
  # The public ip requests are here to test in production before 
  # we add the content to the reporting output. 

  var aws_metadata_ip = get_aws_metadata_public_ipv4();
  if (empty_or_null(aws_metadata_ip)) aws_metadata_ip = "empty or null";
  set_kb_item(name:"aws/metadata/public/ip", value:aws_metadata_ip);

  report += 'Scanner IP : tenable.io Scanner\n';
}
else
  report += 'Scanner IP : ' + compat::this_host()    + '\n';

var scanners;
if (!get_kb_item("nessus/product/local"))
{
  list = get_kb_list("Host/scanners/*");
  if ( ! isnull(list) )
  {
   foreach var item ( keys(list) )
   {
    item -= "Host/scanners/";
    scanners += item + ' ';
   }

   report += 'Port scanner(s) : ' + scanners + '\n';
  }
  else
   report += '\nWARNING : No port scanner was enabled during the scan. This may\nlead to incomplete results.\n\n';

  if ( get_kb_item("global_settings/disable_service_discovery") )
  {
   report += '\nWARNING: Service discovery has been disabled. The audit is incomplete.\n';
  }

  range = get_preference("port_range");
  if ( ! range ) range = "(?)";
  report += 'Port range : ' + range + '\n';
}

report += 'Ping RTT : ';
ping_rtt = get_kb_item("ping_host/RTT");
if (ping_rtt && ping_rtt > 0)
{
  modulus = ping_rtt % 1000;
  if (modulus == 0) modulus = "0";
  else if (modulus < 10) modulus = "00" + modulus;
  else if (modulus < 100) modulus = "0" + modulus;
  ping_rtt = (ping_rtt / 1000) + '.' + modulus + ' ms';
}
else
{
  ping_rtt = 'Unavailable';
}
report += ping_rtt + '\n';

report += 'Thorough tests : ';
if ( thorough_tests ) report += 'yes\n';
else report += 'no\n';

report += 'Experimental tests : ';
if ( experimental_scripts ) report += 'yes\n';
else report += 'no\n';

var unpatched_vulns = get_kb_item('global_settings/vendor_unpatched');
if (empty_or_null(unpatched_vulns))
    report += 'Scan for Unpatched Vulnerabilities : no\n';
else
{
  if (unpatched_vulns)
    report += 'Scan for Unpatched Vulnerabilities : yes\n';
  else
    report += 'Scan for Unpatched Vulnerabilities : no\n';
}

report += 'Plugin debugging enabled : ';
if ( !get_kb_item('global_settings/enable_plugin_debugging') ) report += 'no\n';
else report += 'yes (at debugging level ' + debug_level + ')\n';

report += 'Paranoia level : ';
report += report_paranoia + '\n';

report += 'Report verbosity : ';
report += report_verbosity + '\n';

report += 'Safe checks : ';
if ( safe_checks() ) report += 'yes\n';
else report += 'no\n';

report += 'Optimize the test : ';
if ( get_preference("optimize_test") == "yes" ) report += 'yes\n';
else report += 'no\n';

local_checks = FALSE;
login_used = get_kb_item("HostLevelChecks/login");

report += 'Credentialed checks : ';
if ( get_kb_item("Host/local_checks_enabled") )
{
  # 20220330: There are edge cases where SMB/not_windows will not write on a non-windows device,
  # but Host/windows_local_checks will write because it relies on SMB/not_windows.
  # Add another precautionary layer for a Host/Auth/SSH/*/Success KB key.
  if ( !get_kb_item("SMB/not_windows") && get_kb_item("Host/windows_local_checks") && empty_or_null(get_kb_list("Host/Auth/SSH/*/Success")) )
  {
    login_used = get_kb_item("HostLevelChecks/smb_login");
    #
    # Windows local checks are complex because the SMB Login *might* work but
    # access to C$ or the registry could fail
    #
    if ( get_kb_item("SMB/MS_Bulletin_Checks/Possible") )
    {
      local_checks = TRUE;
      report += 'yes';
      if (!isnull(login_used)) report += ", as '" + login_used + "' via SMB";
    }
    else
    {
      systemroot = hotfix_get_systemdrive(as_share:TRUE);
      if (get_kb_item("SMB/Registry/Enumerated") && (!isnull(systemroot) && get_kb_item("SMB/AccessibleShare/"+systemroot)))
      {
        local_checks = TRUE;
        report += 'yes';
        if (!isnull(login_used)) report += ", as '" + login_used + "' via SMB";
      }
      else
      {
        local_checks = FALSE;
        report += 'no';
      }
    }
  }
  else
  {
    # Not windows
    local_checks = TRUE;
    report += 'yes';

    # nb : from ssh_get_info.nasl
    proto_used = get_kb_item("HostLevelChecks/proto");
    if (!isnull(proto_used))
    {
      if (proto_used == 'local')
      {
        report += " (on the localhost)";
      }
      else if (!isnull(login_used))
      {
        report += ", as '" + login_used + "' via " + proto_used;
      }
      if ( nes_level >= 61100 )
      {
        report += '\nAttempt Least Privilege : ';
        if (get_kb_item("SSH/attempt_least_privilege")) report += 'yes';
        else report += 'no';
      }
    }
    # nb: from cisco_ios_version.nasl w/ SNMP
    else if (get_kb_item("Host/Cisco/IOS/Version"))
    {
      report += ", via SNMP";
    }
    # nb: from palo_alto_version.nbin, via REST API.
    else if (get_kb_item("Host/Palo_Alto/Firewall/Source"))
    {
      report += ", via HTTPS";
    }
  }
}
else if ( get_kb_item("SMB/MS_Bulletin_Checks/Possible") && !get_kb_item("Host/patch_management_checks") )
{
  local_checks = TRUE;
  report += 'yes';

  if (!isnull(login_used)) report += " (as '" + login_used + "' via SMB";
}
else if ( get_one_kb_item('Host/Nutanix/DataCollection/ran') && get_one_kb_item('Host/Nutanix/Data/Version') )
{
  local_checks = TRUE;
  report += 'yes';
  nutanix_user = get_one_kb_item('Secret/Nutanix/config/username');
  if (!empty_or_null(nutanix_user))
    report += ', as \'' + nutanix_user + '\'';
  report += ', via HTTPS';
}
else report += 'no';
report += '\n';

if (defined_func("report_xml_tag"))
{
  now = unixtime();
  if (local_checks)
  {
    report_xml_tag(tag:"Credentialed_Scan", value:"true");
    report_xml_tag(tag:"LastAuthenticatedResults", value:now);
    acas_info += '\nCredentialed_Scan:true';
    acas_info += '\nLastAuthenticatedResults:' + now + '\n';
  }
  else
  {
    report_xml_tag(tag:"Credentialed_Scan", value:"false");
    report_xml_tag(tag:"LastUnauthenticatedResults", value:now);
    acas_info += '\nCredentialed_Scan:false';
    acas_info += '\nLastUnauthenticatedResults:' + now + '\n';
  }
}

pmchecks = "";
if (get_kb_item("patch_management/ran"))
{
  tool = "";
  foreach tool (keys(_pmtool_names))
  {
    if (get_kb_item("patch_management/"+tool))
    {
      pmchecks += ", " + _pmtool_names[tool];
      if (local_checks || !tool) pmchecks += " (unused)";
      else tool = _pmtool_names[tool];
    }
  }
}
if (get_kb_item("satellite/ran"))
{
  pmchecks += ", Red Hat Satellite Server";
  if (local_checks) pmchecks += " (unused)";
}
report += 'Patch management checks : ';
if (pmchecks)
{
  pmchecks = substr(pmchecks, 2);
  report += pmchecks + '\n';
}
else report += 'None\n';

#Display superseded patches: no (supersedence plugin ran)
if (get_kb_item("Settings/report_superseded_patches"))
{
  report_superseded = "yes";
}
else
{
  report_superseded = "no";
}
if (get_kb_item("PatchSummary/Superseded"))
{
  report_superseded += " (supersedence plugin launched)";
}
else
{
  report_superseded += " (supersedence plugin did not launch)";
}

report += 'Display superseded patches : ' + report_superseded + '\n';

report += 'CGI scanning : ';
if (get_kb_item("Settings/disable_cgi_scanning")) report += 'disabled\n';
else report += 'enabled\n';

report += 'Web application tests : ';
if (get_kb_item("Settings/enable_web_app_tests"))
{
  report += 'enabled\n';
  # Display web app tests options
  opt = get_kb_item("Settings/HTTP/test_arg_values");
  report += 'Web app tests -  Test mode : ' + opt + '\n';

  report += 'Web app tests -  Try all HTTP methods : ';
  if (get_kb_item("Settings/HTTP/try_all_http_methods"))
    report += 'yes\n';
  else
    report += 'no\n';

  opt = get_kb_item("Settings/HTTP/max_run_time");
  report += 'Web app tests -  Maximum run time : ' + (int(opt) / 60) + ' minutes.\n';
  opt = get_kb_item("Settings/HTTP/stop_at_first_flaw");
  report += 'Web app tests -  Stop at first flaw : ' + opt + '\n';
}
else
{
  report += 'disabled\n';
}

report += 'Max hosts : ' + get_preference("max_hosts") + '\n';
report += 'Max checks : ' + get_preference("max_checks") + '\n';
report += 'Recv timeout : ' + get_preference("checks_read_timeout") + '\n';

if ( get_kb_item("general/backported")  )
  report += 'Backports : Detected\n';
else
  report += 'Backports : None\n';


post_scan_editing = get_preference("allow_post_scan_editing");
if ( post_scan_editing == "no" )
  report += 'Allow post-scan editing : No\n';
else
  report += 'Allow post-scan editing : Yes\n';

var nasl_no_signature_check = get_preference("nasl_no_signature_check");
if ( nasl_no_signature_check == "yes" || nasl_no_signature_check == "true" )
  report += 'Nessus Plugin Signature Checking : Disabled\n';
else
  report += 'Nessus Plugin Signature Checking : Enabled\n';

var audit_signature_check = get_preference("audit_file_signature_check");
if ( audit_signature_check == "yes" || audit_signature_check == "true" )
  report += 'Audit File Signature Checking : Enabled\n';
else
  report += 'Audit File Signature Checking : Disabled\n';

start = get_kb_item("/tmp/start_time");

if ( start )
{
  time = localtime(start);
  if ( time["min"] < 10 ) zero = "0";
  else zero = NULL;

  report += 'Scan Start Date : ' + time["year"] + '/' + time["mon"] + '/' + time["mday"] + ' ' + time["hour"] + ':' +
            zero + time["min"] + ' ' + getlocaltimezone() + '\n';
}

if ( ! start ) scan_duration = 'unknown';
else           scan_duration = (unixtime() - start) + " sec";
report += 'Scan duration : ' + scan_duration + '\n';

if ( defined_func("report_error") && old_feed_alert )
{
  report_error(title:"Outdated plugins",
               message:old_feed,
               severity:1);
}

if(get_preference("sc_disa_output") == "true")
{
  num_unsupported = get_kb_item("NumUnsupportedProducts");
  if(isnull(num_unsupported)) num_unsupported = 0;

  if(num_unsupported > 0)
    report += 'Unsupported products :';

  for (i=0; i<num_unsupported; i++)
  {
    cpe_base = get_kb_item("UnsupportedProducts/"+i+"/cpe_base");
    version = get_kb_item("UnsupportedProducts/"+i+"/version");
    if(version == "unknown")
      report += '\n  UnsupportedProduct:' + cpe_base;
    else
      report += '\n  UnsupportedProduct:' + cpe_base + ':' + version;
  }

  if(num_unsupported > 0) report += '\n';

  report += acas_info;
}

if(get_kb_item("ComplianceChecks/ran"))
{
  if (get_kb_item("ComplianceChecks/scan_info"))
    report += "Compliance checks: " + get_kb_item("ComplianceChecks/scan_info") + '\n';
  else
    report += 'Compliance checks: Yes\n';
}

var malware_scanning_setting = get_preference("Malicious Process Detection[checkbox]:enable_malware_scanning");
if (malware_scanning_setting != "yes")
  report += 'Scan for malware : no\n';
else
  report += 'Scan for malware : yes\n';

if(nessusd_is_unix_agent() || nessusd_is_mac_agent())
{
  report += 'Use Tenable Utilities for "find" and "unzip" : ';
  var tenable_utils = get_preference("use_tenable_utils");
  if(!isnull(tenable_utils) && tenable_utils == "yes")
  {
    report += 'yes';
    var performance = "high";
    var perf_setting = get_preference("scan_performance_mode");
    if(!isnull(perf_setting) && (perf_setting == "medium" || perf_setting == "low"))
      performance = perf_setting;
    report += " (performance " + performance + ')\n';
  }
  else
  {
    report += 'no\n';
  }
}

if ( old_feed_alert && !defined_func("report_error") )
{
  if ( nes_level < 3000 ) security_hole(port:0, data:report);
  else security_hole(port:0, extra:report);
}
else
{
  if ( nes_level < 3000 ) security_note(port:0, data:report);
  else security_note(port:0, extra:report);
}

AI Score

7.1

Confidence

Low