Volver a actualizaciones
Nuevo releaseJul 28, 2026

CredSpy v1.1.0

Enumeración de usuarios de Entra ID y descubrimiento de métodos de autenticación a través de la API pública GetCredentialType

Compartir

PyPi Version Python Version GitHub Sponsors Twitter LinkedIn

CredSpy

Enumera los métodos de autenticación de Microsoft Entra ID para direcciones de correo electrónico usando la API pública GetCredentialType. Este es el mismo endpoint que utiliza la página de inicio de sesión de Microsoft cuando se ingresa un nombre de usuario. A diferencia de la mayoría de herramientas que usan el método GetCredentialType, CredSpy también muestra los métodos de autenticación soportados para cuentas existentes.

Útil para evaluaciones de seguridad: enumeración de usuarios, descubrimiento del método de autenticación preferido e identificación de cuentas con contraseña, Remote NGC (por ejemplo, Notificación Push sin contraseña), FIDO2/passkeys o autenticación por certificado.

Tabla de contenidos

Instalación

Requiere Python 3.10+.

pipx (recomendado):

# Instalar pipx (omitir si ya lo tienes)
apt install pipx
pipx ensurepath
# Desde PyPI (recomendado)
pipx install credspy

# O desde GitHub
pipx install git+https://github.com/RedByte1337/CredSpy.git

# Desde un clon local
git clone https://github.com/RedByte1337/CredSpy.git
cd CredSpy
pipx install .

pip:

pip install .
# o ejecutar sin instalar
pip install -r requirements.txt
python credspy.py ...

Después de la instalación, ejecuta credspy desde cualquier lugar:

credspy -h

Uso

# Correo único
credspy [email protected]

# Archivo con correos (uno por línea, # para comentarios)
credspy correos.txt

# A través de un proxy (verificación SSL desactivada para herramientas MITM)
credspy correos.txt --proxy http://127.0.0.1:8080

# Exportar resultados a CSV
credspy correos.txt --csv resultados.csv

# Guardar listas de correos filtradas (combinables)
credspy correos.txt \
  --save-existing existentes.txt \
  --save-ngc ngc.txt \
  --save-password-preferred password-preferido.txt

Opciones

IndicadorDescripción
targetDirección de correo o ruta a un archivo de texto
--proxy URLEnrutar todo el tráfico a través de un proxy; desactiva la verificación SSL (Formato: http://127.0.0.1:8080)
--no-colorDeshabilitar salida de terminal coloreada
--csv FILEEscribir resultados en un archivo CSV
--save-existing FILEGuardar correos que existen
--save-ngc FILEGuardar correos con RemoteNGC (por ejemplo, notificación push sin contraseña) compatible
--save-password-preferred FILEGuardar correos existentes con contraseña como método preferido
--skip-ngcDeshabilitar comprobaciones RemoteNGC (evita notificaciones push cuando RemoteNGC es el método preferido; también desactiva el descubrimiento de NGC)

[!IMPORTANT] En el raro caso de que el usuario tenga RemoteNGC como método principal, Microsoft activará instantáneamente la notificación push RemoteNGC en la aplicación Authenticator durante la enumeración. La única forma de evitarlo es establecer isRemoteNGCSupported en falso en la solicitud GetCredentialType. Esto tiene la consecuencia de que la respuesta ya no devolverá si RemoteNGC es compatible. Si deseas evitar el envío de notificaciones automáticas y no necesitas el descubrimiento de RemoteNGC, usa la opción --skip-ngc.

Si algún archivo de salida ya existe, se te pedirá confirmación para sobrescribir (Y/n).

Salida

Los resultados se muestran en la terminal a medida que se verifica cada correo:

[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

Si la cuenta de correo existe, la primera columna después de la dirección mostrará el método de autenticación preferido del usuario. La última columna listará los otros métodos de autenticación compatibles, como Password, RemoteNGC, Fido (=PassKeys) y autenticación por Certificate.

Toda esta información es muy útil a tener en cuenta al preparar ataques de phishing.

Para autenticación Fido, se muestra el número de entradas en la AllowList de los FidoParams devueltos por Microsoft. Esto se puede usar como indicador para saber cuántos métodos de autenticación Fido tiene registrados el usuario. Sin embargo, parece que también incluye claves Fido eliminadas que ya no están vinculadas a la cuenta.

Al final se imprime un resumen:

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

Columnas del CSV

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

  • Exists — nombre del enum (Exists, NotExist, …)
  • RemoteNGCPushNotification / ListSessions cuando se conoce, en otro caso True/False

Cómo funciona

  1. Obtiene un contexto de sesión (sCtx) desde la página de autorización OAuth de Microsoft
  2. Envía una petición POST con cada nombre de usuario a login.microsoftonline.com/common/GetCredentialType
  3. Analiza las credenciales y muestra / exporta los resultados

No se requiere autenticación. Utiliza el mismo flujo no autenticado que la interfaz de inicio de sesión.

Descargo de responsabilidad

Esta herramienta está destinada únicamente para pruebas de seguridad autorizadas e investigación. Úsala solo contra inquilinos y cuentas que poseas o para las cuales tengas permiso explícito por escrito. Los autores no se responsabilizan por el mal uso.

Categorías