Microsoft Active Directory Federated Services (ADFS) User Enumeration

Microsoft Active Directory Federated Services (ADFS) suffers from a time-based user enumeration vulnerability.


MD5 | 3c4bec5bac1f0d1cdaef48fbaafa3459

[+] Credits: Joshua Platz aka Binary1985
[+] CVE ID: Requested
[+] Website: https://github.com/binary1985

[+] Source:
https://raw.githubusercontent.com/binary1985/VulnerabilityDisclosure/master/ADFS-Timing-Attack

Vendor:
==========================
http://www.microsoft.com


Product:
===========
Active Directory Federated Services (ADFS)

Active Directory Federation Services, a software component developed by Microsoft, can run on Windows Server operating
systems to provide users with single sign-on access to systems and applications located across organizational boundaries.


Vulnerability Type:
==========================
Time Based User Enumeration


Vulnerability Details:
=====================

ADFS has an excessively long timeout on authentication requests using the correct domain, but invalid user. This is likely
due to the time it takes to search the entire AD directory and return a response. Response times vary with use cases seeing
valid accounts taking only .2 seconds, up to 3 seconds to return an invalid login. However invalid accounts have been seen
to take 15 seconds to respond.


1) Observe the ADFS URL https://adfs.exampledomain.com/adfs/ls/IdpInitiatedSignOn.aspx?

2) Observe the length of time for an invalid account to return on login attempt (ex 15 seconds) *you must use the valid
domain*

3) Observe the length of time for a valid account to return on login attempt (ex 2 seconds) *try domain\administrator or
domain\guest*

4) Intercept a request using anything as a valid username and password. Extract the cookie.

5) Add the cookie value to this PoC https://gist.github.com/binary1985/d778ef59c01fe82026ee2c9660904e3a on line 15.

6) Update the timings within the script to match your tests in step 2 and 3, the goal is to set the command timeout on
line 15 to something slightly greater then the timeout observed in step 3, and then update the logic on line 17
to something reasonable. Remember invalid accounts take a long time, valid accounts are quick

7) Execute the script, providing the ADFS URL as well as the domain and a user list.
Example: https://drive.google.com/open?id=0B5Pt6tipK7-9cnVkYi1qOFhxbEVFUVJCWjBHcHJZX0QxX3d3


Remediation Details:
=====================
Unknown

Timeline:
=====================
2018-09-03 - Issue Identified
2018-09-07 - Vendor Notified
2018-09-10 - Vendor Acknowledged Reciept
2018-09-12 - Vendor Indicates Vulnerability does not meet bar for security servicing
2018-10-22 - Public Disclsoure and CVE request through MITRE

[+] Disclaimer
The information contained within this advisory is supplied "as-is" with no
warranties or guarantees of fitness of use or otherwise.
Permission is hereby granted for the redistribution of this advisory,
provided that it is not altered except by reformatting it, and
that due credit is given. Permission is explicitly given for insertion in
vulnerability databases and similar, provided that due credit
is given to the author. The author is not responsible for any misuse of the
information contained herein and accepts no responsibility
for any damage caused by the use or misuse of this information. The author
prohibits any malicious use of security related information
or exploits by the author or elsewhere.

Binary1985

Related Posts