Testing for Account Enumeration and Guessable User Account (OTG-IDENT-004)
Most systems are provisioning with default and test accounts to aid the installation, configuration and testing of applications. These accounts are often overlooked when the system enters production. User account names are often highly structured (e.g. Joe Bloggs account name is jbloggs and Fred Nurks account name is fnurks) and valid account names can easily be guessed. Other times, valid account names can be searched for using internet search engines.
Determine whether consistent account name structure renders the application vulnerable to account enumeration
Determine whether application's error messages permit account enumeration
Determine whether default system accounts or test accounts are present on production system
How to test
Determine the structure of account names
Evaluate the application's response to valid and invalid account names
Use different responses to valid and invalid account names to enumerate valid account names
Use account name dictionaries to enumerate valid account names
Research application infrastructure to build list of default system account names
<insert some images of account enumeration>
Ensure the application returns consistent generic error messages in response to invalid account name, password or other user credentials entered during the login process.
Ensure default system accounts and test accounts are deleted prior to releasing the system into production (or exposing it to an untrusted network).