User Enumeration in Microsoft Products: An Incident Waiting to Happen?
Intruder’s latest research reveals that up to 13,000 organisations are affected by little-known user enumeration flaws in a range of popular Microsoft products. The flaws have been exposing internal corporate networks to attacks for years, yet are undetected by leading vulnerability scanners.
Over the last decade or so multiple user enumeration flaws have been discovered in a range of popular Microsoft products that are commonly exposed to the Internet, such as Outlook Web Access and Skype for Business.
Most organisations won’t be aware that these flaws exist; they are not detected by the leading vulnerability scanners, documented by Microsoft or even assigned a CVE reference. They are generally ignored by the industry and are under the radar of most security professionals; but is this an acceptable situation or should you be working to find and fix these issues in your infrastructure?
Let’s take a look at the attack scenarios these bugs create, and explore why they should be considered a security risk, particularly when it comes to Microsoft products. But first, a quick recap for readers that are less familiar with the terminology:
What is user enumeration?
User enumeration flaws provide attackers with a method to determine whether a specified username exists. An app signup error message saying “username already in use” would be one example. If the attack can be automated (by comparing the response to when a username is not in use), it allows an attacker to whittle down a large list of potential usernames to a smaller list of confirmed usernames.
Having a list of valid usernames for a system is extremely valuable to an attacker because it facilitates a range of other attacks which would otherwise take much more effort to pull off, including automated password guessing (brute-force) and denial of service attacks (more on this later).
Where do Microsoft come in?
A range of Microsoft products and services are affected by user enumeration flaws, and have been for years:
- Outlook Web Access (aka Outlook on the Web, OWA): This flaw affects versions of Outlook Web Access from OWA 2007, including OWA 2010, 2013 and 2016.
- Skype for Business (Formerly Lync): Reported to Microsoft in 2016.
- Office 365 ActiveSync: Reported as vulnerable in 2017.
- Active Directory Federated Services (ADFS) single sign-on: Reported in 2018.
Since these products are commonly accessible from the Internet, and often use the organisation’s internal Active Directory (AD) for authentication, this creates a situation where an attacker on the Internet can easily identify usernames from an internal Windows domain.
Why is this a problem?
Exploiting one of these user enumeration flaws is a fairly easy task. The first step is to identify the username format. This can be done by guessing common username formats (e.g. dan.andrew, d.andrew, etc) with employee names (for example obtained from LinkedIn or other public sources). If an organisation uses an uncommon format, other techniques can be used, such as extracting a username from PDF or Microsoft Word file metadata.
With this information in hand, a long list of potential usernames in the correct format is generated using common forenames and surnames or a public list of employee names. Finally, the enumeration flaw is exploited to test the presence of each username in the list.
Now armed with a list of usernames that exist within the organisation’s Active Directory (AD), the attacker can:
- Launch a password spraying attack where a small number of common passwords, such as Password1, are tried against a large number of valid users. This technique is surprisingly effective, even against household-name companies. Intruder uses this technique on penetration tests and trust us, it works!
- If the Windows domain is configured to lock out accounts after several failed logins, then a denial of service can be caused by submitting multiple bad logins against these known user accounts.
- If an account lockout policy is not configured, the attacker has free rein to keep guessing passwords, increasing their chances of compromising accounts.
- If credentials are successfully compromised, the attack can continue. The attacker can log into the affected product or another exposed remote access solution like remote desktop or a VPN, either of which could allow remote access to the internal network.
- Exposed email services like Outlook Web Access or Outlook Office 365 could also allow access to sensitive information in emails, or the ability to mount further attacks by emailing malware appearing to come from inside the organisation. The attacker is constrained only by what is exposed to the Internet.
Without a user enumeration flaw to first get a confirmed list of users, these attacks become an order of magnitude more difficult. What’s more, easy-to-use tools are publicly available to exploit three of the four examples above, so attacks against these commonly exposed technologies can be carried out even by unskilled attackers.
How many organisations are affected?
To understand the extent of the problem, Intruder investigated the enumeration flaw in Skype for Business. Our research uncovered that over 13,000 servers on the internet are vulnerable, potentially exposing their organisation’s internal Windows network to Denial of Service and credential guessing attacks.
Among the list of vulnerable servers are household names and large organisations whose high profile make them likely targets for remote attackers, including:
- Numerous blue-chip companies including almost 40% of FTSE 100 companies
- Many well-known and trusted organisations, including some of the ‘big four’ professional services firms
- UK government-owned domains
Despite the scale of the problem though, Microsoft have made it clear they do not intend to fix these issues. Below is their response to the researcher that reported the ActiveSync flaw:
“Thank you for contacting the Microsoft Security Response Center (MSRC). Upon investigation we have determined that these do not meet the bar for security servicing. In general, username enumeration does not meet the bar as there are many ways to do this and on its own it does not allow an attacker access or control in any way, as the attacker would still need to bypass login.”
It’s hard to tell exactly what they mean by “there are many ways to do this”, but perhaps they are referring to the fact that email addresses are inherently public and often match internal domain usernames. Or perhaps they are referring to other methods of username enumeration which could be performed by an attacker with a foothold within the internal network.
However, this glosses over the key point; it makes the attacker’s job easier. Security is never perfect, we’re always fighting a losing battle just trying to make the attacker’s job that little bit harder, and here Microsoft seem to be just giving up the game.
How to protect your business
So, what should savvy CIOs be doing to prevent this from happening, and what lessons can we learn from this?
Sadly, there’s not going to be an easy answer to this one. Since Microsoft isn’t currently planning to fix the bugs, we’re left without the usual patch/upgrade option that is often the best solution to fixing security issues.
That said, here’s some advice which should help:
- These issues really highlight how important it is to think carefully before exposing any system on the Internet. Your attack surface should be reduced wherever possible. The less you have exposed to the Internet, the harder you’ll be to breach. In general, attackers like to pick easy targets, and you never know when the next big vulnerability will be discovered.
- Where possible, don’t expose the products listed above to the Internet. Outlook Web Access is a good example of a product which doesn’t necessarily need to be exposed to the internet. You can restrict access to the web portal to your internal network and those connected via a secure VPN. Products like Skype for Business are a little more difficult, since you might use them to host web conferences with 3rd parties which need remote access. Consider using an alternative product to host web conferences with people outside of your organisation.
- As a more general rule, two-factor authentication should be enabled and enforced everywhere, especially for internet-facing services. This can eliminate the risk of both the Denial of Service and credential guessing attacks described above, and prevent unauthorised access to those services — even if an attacker has compromised the credentials to an account.
- If affected products must be exposed, ensure that effective logging and monitoring and active IDS is in place to ensure that attacks are noticed and reacted to appropriately.
A lesson to learn from this case study is that it’s important to always check for known issues in the software you are deploying and the most secure configuration for the product. Even huge vendors like Microsoft are not perfect, and it should never be assumed that software is secure out of the box in its default configuration. Most importantly, reduce your perimeter attack surface to a minimum and keep an eye on things with logging and monitoring, particularly where you know there are risks; you’ll be much less likely to suffer a breach and will be better prepared if the worst does happen.
Intruder is a vulnerability scanning platform which specialises in finding weaknesses in your perimeter infrastructure, and includes helpful advice on how to manage your attack surface and reduce the risk of a breach. Intruder is easy to use, and proactively keeps track of the latest vulnerabilities for you by scanning your systems for existing and emerging threats.
Thanks to Patrick Craston and Olya Osiagina