Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
SecretsStalker — Valutazione in sola lettura delle credenziali delle app di Entra ID: enumera le autorizzazioni di Graph, l'RBAC di Azure e i dati cloud raggiungibili, quindi mappa i risultati sui percorsi di privilege escalation e lateral movement. | Kitploit
Strumenti/GitHubGitHub/rootsecdev/secretsstalker
Autenticazione e AutorizzazioneSicurezza dell'Infrastruttura CloudEscalation di PrivilegiRicognizioneMovimento LateralePost-ExploitPenetration TestingSicurezza CloudGestione Identità e Accessi (IAM)Red Teaming
341241 mese faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
GitHub
rootsecdev/secretsstalker

SecretsStalker

Valutazione in sola lettura delle credenziali delle app di Entra ID: enumera le autorizzazioni di Graph, l'RBAC di Azure e i dati cloud raggiungibili, quindi mappa i risultati sui percorsi di privilege escalation e lateral movement.

Vedi Repository

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

**Cosa può realmente fare questo client ID + secret di Entra ID?**

Hai trovato una credenziale applicativa di Entra ID (Azure AD) — un client ID e un secret —
durante un impegno autorizzato, e il tenant a cui appartiene è in scope.
`secret_stalker` prende questi due valori e ti dice, a partire da zero:

1. **È valido e quando scade il secret?** — e se non è valido, *perché*
   (secret errato, secret scaduto, app non presente nel tenant…). Per un secret valido
   legge le `passwordCredentials` della registrazione dell'app e riporta la data
   di scadenza + i giorni rimanenti (richiede la lettura della directory; vedi nota sotto).
2. **Quali diritti Microsoft Graph porta con sé?** — autorizzazioni applicative lette
   direttamente dal token emesso, più **ruoli di directory Entra** che detiene (anche
   rilevati passivamente dalla dichiarazione `wids` del token) e **oggetti che possiede**
   (app/SP a cui puoi aggiungere credenziali).
3. **Che controllo ha su Azure?** — assegnazioni di ruolo RBAC a livello di
   gruppo di gestione e sottoscrizione.
4. **Può raggiungere dati reali?** — controlli opzionali di raggiungibilità del data-plane
   per Key Vault (segreti / chiavi / certificati), Storage (blob / file / coda / tabella)
   e Cosmos DB.
5. **Qual è l'impatto?** — permessi pericolosi, ruoli, proprietà e dati raggiungibili
   mappati su primitive note di privesc / movimento laterale, valutati per gravità,
   con narrazioni concrete di **attack-path**.

Si autentica con un **client secret** o un **certificato** (`--cert`),
e funziona con **cloud commerciali e sovrani** (`--cloud`).

È **passivo per impostazione predefinita** e **non modifica mai nulla** — solo
enumerazione in sola lettura.

> ⚠️ **Solo test autorizzati.** Eseguilo esclusivamente contro tenant che sono
> esplicitamente in scope per un impegno che sei autorizzato a svolgere.

---

## Installazione```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

L'unica dipendenza runtime è requests. I token vengono decodificati localmente (base64 + JSON) — nessuna verifica della firma, nessuna libreria crittografica, nessun SDK Microsoft. L'unica eccezione è l'autenticazione tramite certificato (--cert), che richiede il pacchetto opzionale cryptography per firmare l'asserzione client JWT. Richiede Python 3.7+.

Dopo pip install . puoi invocarlo come secret_stalker … invece di python -m secret_stalker ….


Avvio rapido

Il modo più veloce per scoprire cosa può fare una credenziale:```bash python -m secret_stalker
--tenant contoso.onmicrosoft.com
--client-id 11111111-2222-3333-4444-555555555555
--secret ''

`--tenant` accetta un GUID tenant o un dominio — un dominio viene risolto automaticamente nel relativo ID tenant tramite l'endpoint pubblico di configurazione OpenID.

### Tieni il segreto fuori dalla cronologia della shell

Passa le credenziali tramite variabili d'ambiente invece che tramite flag:```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

Ognuno di --tenant / --client-id / --secret può provenire da SS_TENANT / SS_CLIENT_ID / SS_SECRET. I flag hanno precedenza sull'ambiente.

Non si tratta solo della cronologia della shell: un valore argv è leggibile da qualsiasi utente locale per l'intera durata del processo (ps, /proc/<pid>/cmdline). Se --secret o --cert-password viene passato come flag, lo strumento stampa un promemoria di una riga su stderr — non compare mai nell'output di --json o --export.

Autenticarsi con un certificato invece che con un segreto

Le registrazioni delle app spesso usano un certificato anziché un segreto. Passa --cert (un PEM contenente la chiave privata e il certificato, o un .pfx/.p12) e lo strumento si autentica con un'asserzione client JWT firmata:```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 ''

L'autenticazione tramite certificato richiede il pacchetto opzionale `cryptography` (`pip install '.[cert]'`).
Lo strumento riporta la scadenza del certificato stesso (identificata in base al relativo thumbprint presente in
`keyCredentials` dell'app), esattamente come fa per un segreto. `--cert`/`--cert-password`
vengono letti anche da `SS_CERT` / `SS_CERT_PASSWORD`.

### Cloud sovrani e governativi

Per impostazione predefinita secret_stalker si rivolge al cloud **commerciale**. Per i tenant sovrani,
passa `--cloud` (o `SS_CLOUD`) affinché l'autorità Entra e gli endpoint Graph / ARM / Key
Vault corrispondano — altrimenti credenziali valide sembrano non avere accesso:```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 ...
--cloudEntra authorityMicrosoft GraphARMKey Vault
public (predefinito)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

Sono accettati alias come gov, dod, commercial, gcc-high e 21vianet. (L'audience del data-plane di Storage, storage.azure.com, è la stessa in ogni cloud.)


Flusso di lavoro consigliato in un engagement

  1. Aggiorna la mappa delle autorizzazioni per questo tenant (una volta). Risolve i GUID delle autorizzazioni Graph in nomi autoritativi per il tenant di destinazione: ```bash python -m secret_stalker --update-manifest

Questo autentica, memorizza nella cache la mappa delle appRole Graph del tenant in ~/.secret_stalker/app_roles_cache.json, e esce. Salta questo passaggio se le credenziali non possono leggere i service principal — la mappa inclusa copre comunque le autorizzazioni note.

Scarica lo strumento