Zurück zu den Updates
New releaseJul 28, 2026

CredSpy v1.1.0

Entra ID-Benutzerenumeration und Authentifizierungsmethoden-Entdeckung über die öffentliche GetCredentialType-API

Teilen

PyPi Version Python Version GitHub Sponsors Twitter LinkedIn

CredSpy

Ermittelt Authentifizierungsmethoden von Microsoft Entra ID für E-Mail-Adressen mithilfe der öffentlichen GetCredentialType-API. Dies ist derselbe Endpunkt, den die Microsoft-Anmeldeseite verwendet, wenn du einen Benutzernamen eingibst. Im Gegensatz zu den meisten Tools, die die GetCredentialType-Methode verwenden, zeigt CredSpy auch die Authentifizierungsmethoden an, die für vorhandene Konten unterstützt werden.

Nützlich für Sicherheitsbewertungen: Benutzer-Enumeration, Ermittlung bevorzugter Authentifizierungsmethoden und Identifizierung von Konten mit Passwort, Remote-NGC (z. B. passwortlose Push-Benachrichtigung), FIDO2/Passkeys oder Zertifikatsauthentifizierung.

Inhaltsverzeichnis

Installation

Erfordert Python 3.10+.

pipx (empfohlen):

# Install pipx (skip this if you already have it)
apt install pipx
pipx ensurepath
# 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:

pip install .
# or run without installing
pip install -r requirements.txt
python credspy.py ...

Nach der Installation kannst du credspy von überall aus ausführen:

credspy -h

Verwendung

# 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

Optionen

FlagBeschreibung
targetE-Mail-Adresse oder Pfad zu einer Textdatei
--proxy URLLeitet den gesamten Datenverkehr über einen Proxy; deaktiviert die SSL-Verifizierung (Format: http://127.0.0.1:8080)
--no-colorDeaktiviert die farbige Terminalausgabe
--csv FILESchreibt Ergebnisse in eine CSV-Datei
--save-existing FILESpeichert E-Mails, die existieren
--save-ngc FILESpeichert E-Mails, bei denen RemoteNGC (z. B. passwortlose Push-Benachrichtigung) unterstützt wird
--save-password-preferred FILESpeichert vorhandene E-Mails mit Passwort als bevorzugter Methode
--skip-ngcDeaktiviert RemoteNGC-Prüfungen (vermeidet Push-Benachrichtigungen, wenn RemoteNGC die bevorzugte Methode ist; deaktiviert außerdem die NGC-Erkennung)

[!IMPORTANT] In dem seltenen Fall, dass der Benutzer RemoteNGC als primäre Methode festgelegt hat, löst Microsoft während der Enumeration sofort die RemoteNGC-Push-Benachrichtigung an die Authenticator-App aus. Die einzige Möglichkeit, dies zu vermeiden, besteht darin, isRemoteNGCSupported in der GetCredentialType-Anfrage auf false zu setzen. Dies hat zur Folge, dass die Antwort nicht mehr zurückgibt, ob RemoteNGC unterstützt wird. Wenn du das Versenden automatischer Benachrichtigungen vermeiden möchtest und die RemoteNGC-Erkennung nicht benötigst, verwende das Flag --skip-ngc.

Wenn eine Ausgabedatei bereits existiert, wirst du zur Bestätigung des Überschreibens aufgefordert (Y/n).

Ausgabe

Die Ergebnisse werden während der Prüfung jeder E-Mail im Terminal ausgegeben:

[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

Wenn das E-Mail-Konto existiert, zeigt die erste Spalte nach der E-Mail-Adresse die bevorzugte Authentifizierungsmethode des Benutzers an. Die letzte Spalte listet die anderen unterstützten Authentifizierungsmethoden wie Passwort, RemoteNGC, Fido (=Passkeys) und Zertifikatsauthentifizierung auf.

All diese Informationen sind sehr nützlich, wenn man Phishing-Angriffe vorbereitet.

Bei der Fido-Authentifizierung wird die Anzahl der Einträge in der AllowList der von Microsoft zurückgegebenen FidoParams angezeigt. Dies kann als Indikator verwendet werden, um zu erfahren, wie viele Fido-Authentifizierungsmethoden der Benutzer registriert hat. Es scheint jedoch auch gelöschte Fido-Schlüssel zu enthalten, die nicht mehr mit dem Konto verknüpft sind.

Am Ende wird eine Zusammenfassung ausgegeben:

--- 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-Spalten

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

  • Exists — Enum-Name (Exists, NotExist, …)
  • RemoteNGCPushNotification / ListSessions, falls bekannt, andernfalls True/False

So funktioniert es

  1. Abrufen eines Sitzungskontexts (sCtx) von der Microsoft-OAuth-Autorisierungsseite
  2. Senden jedes Benutzernamens per POST an login.microsoftonline.com/common/GetCredentialType
  3. Parsen der Anmeldeinformationen-Flags und Ausgeben/Exportieren der Ergebnisse

Keine Authentifizierung erforderlich. Dies verwendet denselben nicht authentifizierten Ablauf wie die Anmeldeoberfläche.

Haftungsausschluss

Dieses Tool ist ausschließlich für autorisierte Sicherheitstests und Forschung gedacht. Verwende es nur gegen Mandanten und Konten, die dir gehören oder für die du eine ausdrückliche schriftliche Erlaubnis zum Testen hast. Die Autoren sind nicht für Missbrauch verantwortlich.

Kategorien