Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
SecretsStalker — Evaluación de solo lectura de credenciales de aplicaciones de Entra ID: enumera los permisos de Graph, el RBAC de Azure y los datos de nube accesibles, y mapea los hallazgos con rutas de escalada de privilegios y movimiento lateral. | Kitploit
Herramientas/GitHubGitHub/rootsecdev/secretsstalker
Autenticación y AutorizaciónSeguridad de Infraestructura en la NubeEscalada de PrivilegiosReconocimientoMovimiento LateralPost-ExplotaciónPruebas de PenetraciónSeguridad en la NubeGestión de Identidad y Acceso (IAM)Red Teaming
34124hace 1 mesRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
GitHub
rootsecdev/secretsstalker

SecretsStalker

Evaluación de solo lectura de credenciales de aplicaciones de Entra ID: enumera los permisos de Graph, el RBAC de Azure y los datos de nube accesibles, y mapea los hallazgos con rutas de escalada de privilegios y movimiento lateral.

Ver Repositorio
Compartir

secret_stalker```


/ / ______ ___ ___ / /_ / / / /__ _ / / /_____ ____ \ / -) / -) -)/ / \ \ / __/ _ `// / '/ -) / //_/_/_/_/ _/ // _/_,////_\__/_/

     ╔╦╦╬╬╬╬╬╬╦╦╗
 ╔╬╬╬╝╝┘      ╚╝╝╬╬╬┐
╬╬╝╚╩╬╗╔          ╚╬╬╬

╬╝ ╚╬╬╗╗ ╔ ╚╬╗ ╬╬ ╔╗ ╚╬╬╬╬╬╬╦ ╬╬ we found your secret... ╔╬┤ ╬╬╬ ╬╬╬╬╬╬╬╬╝╝╝╬╬╗ ...now let's see what it ╬╬┤ ╚╩┘ ╚╬╬╬╬╬╩ ╠╬╬ can REALLY do. ( o_o)>=|= ╬╬┤ ╠╬╬ ╬╬ ╦╗ ╗╗ ╬╬ [ client_id + secret -> total recall ] └╬┐ ╚╬╗╗ ╔╬╬╝ ╔╬┘ └╬╗ ╚╩╩╬╬╬╩╩╝╝ ╔╬╬ ╚╬╬╬╗ ┌╗╬╬╝┘ ╚╩╬╬╬╦╦╦╦╦╦╬╬╬╝╝ ╚╚╝╝╝╝ // pst... that app registration talks too much. \

**¿Qué puede hacer realmente este ID de cliente + secreto de Entra ID?**

Has encontrado una credencial de aplicación de Entra ID (Azure AD) — un ID de cliente y un secreto —
en un compromiso autorizado, y el tenant al que pertenece está dentro del alcance.
`secret_stalker` toma esos dos valores y te dice, desde cero:

1. **¿Es válido y cuándo expira el secreto?** — y si no es válido, *por qué*
   (secreto incorrecto, secreto caducado, aplicación no presente en el tenant…). Para un secreto válido,
   lee los `passwordCredentials` del registro de la aplicación e informa de la
   fecha de expiración + días restantes (necesita lectura de directorio; ver nota más abajo).
2. **¿Qué derechos de Microsoft Graph tiene?** — permisos de aplicación leídos
   directamente del token emitido, más los **roles de directorio de Entra** que posee (incluso
   detectados pasivamente desde el claim `wids` del token) y **objetos que son de su propiedad**
   (apps/SPs a los que puedes añadir credenciales).
3. **¿Qué control tiene sobre Azure?** — asignaciones de roles RBAC a nivel de
   grupo de administración y ámbito de suscripción.
4. **¿Puede acceder a datos reales?** — comprobaciones opcionales de Key Vault (secretos / claves / certificados),
   Storage (blob / file / queue / table) y comprobaciones de alcance en el plano de datos de Cosmos DB.
5. **¿Cuál es el impacto?** — permisos peligrosos, roles, propiedad y datos
   accesibles asociados a primitivas conocidas de privesc / movimiento lateral, clasificados por severidad,
   con narrativas concretas de **rutas de ataque**.

Se autentica con un **secreto de cliente** o un **certificado** (`--cert`),
y funciona con **nubes comerciales y soberanas** (`--cloud`).

Es **pasivo por defecto** y **nunca modifica nada** — únicamente
enumeración de solo lectura.

> ⚠️ **Solo pruebas autorizadas.** Ejecútalo únicamente contra tenants que estén
> explícitamente dentro del alcance de un compromiso que estés autorizado a realizar.

---

## Install```bash
pip install -r requirements.txt        # just runs it from source
#   — or —
pip install .                          # installs the `secret_stalker` command
pip install '.[cert]'                  # + certificate (--cert) auth support
pip install '.[dev]'                   # + pytest for the test suite

La única dependencia de ejecución es requests. Los tokens se decodifican localmente (base64 + JSON): no hay verificación de firmas, ni biblioteca criptográfica, ni SDK de Microsoft. La única excepción es la autenticación por certificado (--cert), que necesita el paquete opcional cryptography para firmar la aserción de cliente JWT. Requiere Python 3.7+.

Después de pip install . puedes invocarlo como secret_stalker … en lugar de python -m secret_stalker ….


Inicio rápido

La forma más rápida de descubrir qué puede hacer una credencial:```bash python -m secret_stalker
--tenant contoso.onmicrosoft.com
--client-id 11111111-2222-3333-4444-555555555555
--secret ''

`--tenant` acepta un GUID de inquilino o un dominio — un dominio se resuelve a su
ID de inquilino automáticamente mediante el endpoint público de configuración de OpenID.

### Mantén el secreto fuera del historial de tu shell

Pasa las credenciales mediante variables de entorno en lugar de flags:```bash
export SS_TENANT=contoso.onmicrosoft.com
export SS_CLIENT_ID=11111111-2222-3333-4444-555555555555
export SS_SECRET='<client-secret>'

python -m secret_stalker

Cualquiera de --tenant / --client-id / --secret puede provenir de SS_TENANT / SS_CLIENT_ID / SS_SECRET. Las opciones tienen prioridad sobre el entorno.

Esto no solo se trata del historial del shell: un valor de argv es legible por cualquier usuario local durante toda la vida del proceso (ps, /proc/<pid>/cmdline). Si --secret o --cert-password se pasa como una opción, la herramienta imprime un recordatorio de una línea en stderr — nunca aparece en la salida de --json o --export.

Autenticar con un certificado en lugar de un secreto

Los registros de aplicaciones suelen usar un certificado en lugar de un secreto. Pasa --cert (un PEM que contiene la clave privada y el certificado, o un .pfx/.p12) y la herramienta autentica con una aserción de cliente JWT firmada:```bash python -m secret_stalker --tenant contoso.onmicrosoft.com
--client-id --cert ./app.pem # or app.pfx

encrypted key / PFX:

python -m secret_stalker ... --cert app.pfx --cert-password ''

La autenticación con certificado requiere el paquete opcional `cryptography` (`pip install '.[cert]'`).
La herramienta informa la caducidad del propio certificado (coincidiendo con su huella digital en
`keyCredentials` de la aplicación), igual que hace con un secreto. `--cert`/`--cert-password`
también se leen de `SS_CERT` / `SS_CERT_PASSWORD`.

### Nubes soberanas y gubernamentales

Por defecto, secret_stalker se dirige a la nube **comercial**. Para inquilinos soberanos,
pasa `--cloud` (o `SS_CLOUD`) para que la autoridad de Entra y los endpoints de Graph / ARM / Key
Vault coincidan; de lo contrario, las credenciales válidas parecen no tener acceso:```bash
# US Government (GCC High)
python -m secret_stalker --cloud usgov  --tenant contoso.onmicrosoft.us ...

# US DoD (L5)
python -m secret_stalker --cloud usdod  ...

# Azure operated by 21Vianet (China)
python -m secret_stalker --cloud china  --tenant contoso.partner.onmschina.cn ...
--cloudAutoridad de EntraMicrosoft GraphARMKey Vault
public (predeterminado)login.microsoftonline.comgraph.microsoft.commanagement.azure.comvault.azure.net
usgov (GCC High)login.microsoftonline.usgraph.microsoft.usmanagement.usgovcloudapi.netvault.usgovcloudapi.net
usdod (DoD)login.microsoftonline.usdod-graph.microsoft.usmanagement.usgovcloudapi.netvault.usgovcloudapi.net
china (21Vianet)login.chinacloudapi.cnmicrosoftgraph.chinacloudapi.cnmanagement.chinacloudapi.cnvault.azure.cn

Se aceptan alias como gov, dod, commercial, gcc-high y 21vianet. (La audiencia del plano de datos de Storage, storage.azure.com, es la misma en todas las nubes.)


Flujo de trabajo recomendado durante un compromiso

  1. Actualiza el mapa de permisos de este tenant (una vez). Resuelve los GUIDs de permisos de Graph a nombres autoritativos para el tenant objetivo: ```bash python -m secret_stalker --update-manifest

Esto autentica, guarda en caché el mapa de appRoles de Graph del inquilino en ~/.secret_stalker/app_roles_cache.json y sale. Omítelo si la credencial no puede leer los service principals; el mapa incluido sigue cubriendo los permisos conocidos.

Descargar herramienta