This plugin displays, for each tested host, information about the scan itself :
#TRUSTED 419e163d7cc92082de604cb1142b4fe4276301f0e996c0064a022a05339e532ea7b88884bb18dfc307af44eb1f4ab5fdb48c3ab32d0d36deb078333f06f0e46427b017a0e51b6c7f2976f81432e11357252b194a7c6730ff2a7cb8e10931984bf3cec17d5ab946e9d2adbe91cd00f27093b6af78e3491bfda21f595e117b2ff0b7534e76360250f98bcc90810700f547e54831c73e07940310cba026a3a64c2587906f9b0b9f038d72c36590492893c452cf6d5cea5a611365ed74b0dcd2a42348e937b4ac40ea00355a453334515b54b1c1d1f2a1f8d4f961d2de2f0a8f8f638b30dec142a5c41b44dbf97688e92800808af67e6703c9abd9edd7670e511df14de7a0e93bd74293cec08556e5e9d88db30270a4fc19752d44c4974a82d3b4eb43a8616c73f6d7b4fac0c334aa3fc2f0aa04a099fd6a89658b6b66fd7fb78547c3dad0d7ff2e87b5ec36bfc9caa63c613e856aac99067027ca38634e18cfeb4dc72287cbcf9f71760f0c5428345e1c893d863e39dd170319054b074977c19be2e4fba3913b8114b93bdad80aad2a836fb701d4ad92b3351cb45c50fe776989fc8cfd9e813aa1722bd893ac0959646eb81a16d02c0d88afda1e5086bda0284ce829bcc913a10608c4d71b190aa04597d6745aad23c8c99e9da1e68a84dd8f923469a72d64339d6e1fe380692bc6477a25b3a127f3d36eaf15d1f1cf151292ce26
#TRUST-RSA-SHA256 6e14ca02180c6f3e28c8472b6e9f9668b0f02589d86d6fe9750de70b697f698acc00d6c8ad050182f40804bde0021597ef4d220e1641d4cb7ef0ecbc55145edfd05bbde6adef33500e4894ed19173f7f323eea1161e2b064e6d41e84a198fb38c0238d61fe85994d227c00c5944e4e816f7bd5063cb17078f7d03ace3f988c1845d446c26fd40986056e467a7527f2701fb5f180b906b75d4fa2d4972df1fd6ebc6192a8afa1dc3d232cbb74bb2223d33fed4cda662afd4d3f30c1d8d18e75e1d8ca1aa4068c4cb22ad82490ae2e30f9df0af02c0db9357ae21f82adf391cf29c42a526bfe04d5d97282ecf4cf2c413a30c10910530948f8e93374d0056a2013ef1a437346e561d124a23f4d67a90c1ff13c1c9baecf687902bd18029e28086f24c85583e72e4de1b412979fe8738e9f319be2d1c9851e89be8b5381fd887739aa0071b7e0ce2e48a2b1066301f5b1b6999ebbc3436d55207c41bfeb9def94f23974f6cc687c2a5283d2586c960847cbcb02633d6213717950930e62dba2a99fd14f80768c42756b12c823cddfe5d83a0f668595f1048cfdf416143dadfb443c400be764f8647b55aeb49cec02c0fdb6e4564cfbbc4fa66e7cf240336f9bad02bb45ab30b4c2b185e2cbc04276a6931fde432f184ffd915fa6927445f7023abf68de876563ab5aaadf4bbec21892138dbbcb86b3db9b131d97dfd29f3fdf30b6
#%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.126");
script_set_attribute(attribute:"plugin_modification_date", value:"2024/08/05");
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"))
{
var aws_metadata_ip = get_aws_metadata_public_ipv4();
if (empty_or_null(aws_metadata_ip))
{
# unable to obtain ip from aws
aws_metadata_ip = "empty or null"; # set value for kb to be 'empty or null' for troubleshooting
report += 'Scanner IP : tenable Vulnerability Management Scanner\n'; # and do not report to the UI
}
else
{
report += 'Scanner IP : tenable Vulnerability Management Scanner ('+aws_metadata_ip+')\n';
}
set_kb_item(name:"aws/metadata/public/ip", value:aws_metadata_ip);
}
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);
}