Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the ajax-search-pro domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /www/cyberone_694/public/wp-includes/functions.php on line 6170

Deprecated: Creation of dynamic property AEFE\Main::$asset_loader is deprecated in /www/cyberone_694/public/wp-content/plugins/advanced-email-filter-for-elementor-forms/includes/class-main.php on line 73

Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the rank-math-api-manager domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /www/cyberone_694/public/wp-includes/functions.php on line 6170

Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the shoptimizer domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /www/cyberone_694/public/wp-includes/functions.php on line 6170

Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the kirki domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /www/cyberone_694/public/wp-includes/functions.php on line 6170
ManageEngine User Enumeration - CyberOne

ManageEngine User Enumeration

Background:
While conducting a penetration test of a client’s external network, I discovered a way to enumerate users’ in ManageEngine’s ADSelfService Plus application. This allows an attacker to determine the system Admin username.

Product: ManageEngine ADSelfService Plus

Software Version: 5.7, build 5704

Issue:
The login page is vulnerable to account enumeration.

The admin login page is accessed through the web UI at the following URI:

  • https://<HOST>/adminLogin.cc
  • https://<HOST>/authorization.do
  • https://<HOST>/j_security_check
Figure 1 – Screenshot of adminLogin.cc


Proof of Concept:
Attempt to login with an account that doesn’t exist, and you receive a unique error message.

Figure 2 – Screenshot of an attempted login with an incorrect username

If you then attempt to login to an account that does exist, then you will not receive the “No such user account configured”.

Figure 3 – Screenshot of an attempted login of an existing account

Vendor Response:
After reaching out to the vendor they decided that this was not an issue and responded with the following statement:

“We’ve investigated this report. The mentioned ‘adminLogin.cc’ request is protected with the Threshold. So, user enumeration is not easy to perform. Additionally, these messages could be customized in the customer environment. Hence, closing this report as N/A.”

The ”Threshold” that they are alluding to is that by default, the application will show a CAPTCHA after 3 invalid login attempts in order to slow brute forcing down, but this does not remedy the concern with disclosing which accounts exist.

Figure 4 – CAPTCHA settings

Disclosure Timeline:
2019-02-18 – Vulnerability Disclosed to Vendor
2019-02-18 – Vendor Replied and Started Investigating
2019-03-20 – Vendor Closed as Non-Issue

by Chase Dardaman | Offensive Security