Skip to content
KitploitKITPLOIT
ToolsBlog
Submit
ToolsBlog
Submit

Hacking, PenTest, and Cybersecurity Tools for Your Security Arsenal!

Kitploit is a directory of hacking, cybersecurity, and pentesting tools. Discover the latest project updates to find vulnerabilities, analyze systems, automate testing, and strengthen your security.

··Feeds·Contact·Privacy·© 2026 Kitploit

Tool Directory

Categories

View all categories
Loading categories
CredSpy — Entra ID user enumeration and auth method discovery via the public GetCredentialType API | Kitploit
Tools/GitHubGitHub/redbyte1337/credspy
OSINT (Open Source Intelligence)ReconnaissanceInformation GatheringPhishingPenetration TestingCloud SecurityIdentity & Access Management (IAM)Authentication
GitHubredbyte1337/credspy

CredSpy

Entra ID user enumeration and auth method discovery via the public GetCredentialType API

View Repository
1651528 days agoReviewed by Kitploit

Most Popular

View all →

Discover the most used tools by our community.

Explore all tools

Browse our collection of tools

View all tools →
Share

PyPi Version Python Version GitHub Sponsors Twitter LinkedIn

CredSpy

Enumerate Microsoft Entra ID authentication methods for email addresses using the public GetCredentialType API. This is the same endpoint the Microsoft login page uses when you enter a username. In contrast to most tools using the GetCredentialType method, CredSpy also shows the authentication methods supported for existing accounts.

Useful for security assessments: user enumeration, preferred auth method discovery, and identifying accounts with password, Remote NGC (e.g. Passwordless Push Notification), FIDO2/passkeys, or certificate auth.

Table of contents

  • Installation
  • Usage
    • Options
  • Output
    • CSV columns
  • How it works
  • Disclaimer

Installation

Requires Python 3.10+.

pipx (recommended):

root@kitploit:~
# Install pipx (skip this if you already have it)
apt install pipx
pipx ensurepath
root@kitploit:~
# From PyPI (recommended)
pipx install credspy

# Or from GitHub
pipx install git+https://github.com/RedByte1337/CredSpy.git

# From a local clone
git clone https://github.com/RedByte1337/CredSpy.git
cd CredSpy
pipx install .

pip:

root@kitploit:~
pip install .
# or run without installing
pip install -r requirements.txt
python credspy.py ...

After installation, run credspy from anywhere:

root@kitploit:~
credspy -h

Usage

root@kitploit:~
# Single email
credspy [email protected]

# File of emails (one per line, # for comments)
credspy emails.txt

# Through a proxy (SSL verification disabled for MITM tools)
credspy emails.txt --proxy http://127.0.0.1:8080

# Export results to CSV
credspy emails.txt --csv results.csv

# Save filtered email lists (combinable)
credspy emails.txt \
  --save-existing existing.txt \
  --save-ngc ngc.txt \
  --save-password-preferred password-preferred.txt

Options

[!IMPORTANT] In the rare case that the user has RemoteNGC set as their primary method, then Microsoft will instantly trigger the RemoteNGC push notification to the Authenticator app during enumeration. The only way to avoid this is to set isRemoteNGCSupported to false in the GetCredentialType request. This has the consequence that the response will no longer return whether RemoteNGC is supported. If you want to avoid sending out any automatic notifications and you do not need the RemoteNGC discovery, use the --skip-ngc flag.

If any output file already exists, you are prompted to confirm overwrite (Y/n).

Output

Results stream to the terminal as each email is checked:

root@kitploit:~
[email protected]       | Preferred: Fido (7)       | Supported: Password, RemoteNGC (PushNotification), Fido (Count: 3)
[email protected]   | IfExistsResult: NotExist (1)
[email protected]         | Preferred: Password (1)   | Supported: Password, RemoteNGC (PushNotification)
[email protected]         | Preferred: RemoteNGC (2)  | Supported: Password, RemoteNGC (PushNotification)
[email protected]           | Preferred: Fido (7)       | Supported: Password, Fido (Count: 5), Certificate

If the email account exists, the first column after the email address will show the preferred authentication method for the user. The last column will list the other supported authentication methods such as Password, RemoteNGC, Fido (=PassKeys), and Certificate authentication.

All of this information is very useful to take into consideration when preparing for phishing attacks.

For Fido authentication, the number of entries in the AllowList of the FidoParams returned by Microsoft is shown. This can be used as an indicator to know how many Fido auth methods the user has enrolled. However, it seems like this also includes deleted Fido keys which are not linked to the account anymore.

A summary is printed at the end:

root@kitploit:~
--- Summary ---
Exists: 6/7
Throttled: 0/7
Preferred: Fido 3/6, Password 2/6, ...
Supported: Password 6/6, RemoteNGC 1/6, Fido 3/6, Certificate 2/6
DomainType: Managed 6/6

--- Output files ---
CSV (results.csv): 7 entries

CSV columns

Email, Exists, PreferredType, HasPassword, RemoteNGC, HasFido, HasCertAuth, DomainType

  • Exists — enum name (Exists, NotExist, …)
  • RemoteNGC — PushNotification / ListSessions when known, otherwise True/False

How it works

  1. Fetch a session context (sCtx) from the Microsoft OAuth authorize page
  2. POST each username to login.microsoftonline.com/common/GetCredentialType
  3. Parse credential flags and print / export results

No authentication required. This uses the same unauthenticated flow as the login UI.

Disclaimer

This tool is intended for authorized security testing and research only. Only use it against tenants and accounts you own or have explicit written permission to test. The authors are not responsible for misuse.

Download Tool
FlagDescription
targetEmail address or path to a text file
--proxy URLRoute all traffic through a proxy; disables SSL verification (Format: http://127.0.0.1:8080)
--no-colorDisable colored terminal output
--csv FILEWrite results to CSV
--save-existing FILESave emails that exist
--save-ngc FILESave emails with RemoteNGC (e.g. passwordless push-notification) supported
--save-password-preferred FILESave existing emails with password as preferred method
--skip-ngcDisable RemoteNGC checks (avoids push notifications when RemoteNGC is the preferred method; this also disables NGC discovery)