Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

FeedsKontaktDatenschutz© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
SecretsStalker — Schreibgeschützte Bewertung von Entra-ID-App-Anmeldeinformationen: ermittelt Graph-Berechtigungen, Azure RBAC und erreichbare Cloud-Daten und ordnet die Ergebnisse anschließend Pfaden zur Privilegieneskalation und Lateral Movement zu. | Kitploit
Tools/GitHubGitHub/rootsecdev/secretsstalker
Authentifizierung & AutorisierungCloud-Infrastruktur-SicherheitPrivilege EscalationAufklärungLaterale BewegungPost-ExploitationPenetrationstestsCloud-SicherheitIdentitäts- & Zugriffsmanagement (IAM)Red Teaming
34132vor 2 MonatenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
GitHub
rootsecdev/secretsstalker

SecretsStalker

Schreibgeschützte Bewertung von Entra-ID-App-Anmeldeinformationen: ermittelt Graph-Berechtigungen, Azure RBAC und erreichbare Cloud-Daten und ordnet die Ergebnisse anschließend Pfaden zur Privilegieneskalation und Lateral Movement zu.

Repository anzeigen

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

**Was kann diese Entra-ID-Client-ID + dieses Secret tatsächlich tun?**

Du hast eine Anwendungsanmeldeinformation von Entra ID (Azure AD) gefunden – eine Client-ID und ein Secret – bei einem autorisierten Engagement, und der Mandant, zu dem sie gehört, ist im Scope. `secret_stalker` nimmt diese beiden Werte und sagt dir, ganz ohne Vorwissen:

1. **Ist es gültig, und wann läuft das Secret ab?** – und falls nicht gültig, *warum* (falsches Secret, abgelaufenes Secret, App nicht im Mandant …). Bei einem gültigen Secret liest es die `passwordCredentials` der App-Registrierung und meldet das Ablaufdatum + verbleibende Tage (erfordert Verzeichnis-Leserechte; siehe Hinweis unten).
2. **Welche Microsoft-Graph-Rechte besitzt es?** – Anwendungsberechtigungen, die direkt aus dem ausgestellten Token gelesen werden, plus **Entra-Verzeichnisrollen**, die es innehat (auch passiv aus dem `wids`-Anspruch des Tokens erkannt) und **Objekte, die es besitzt** (Apps/SPs, zu denen du Anmeldeinformationen hinzufügen kannst).
3. **Welche Kontrolle hat es über Azure?** – RBAC-Rollenzuweisungen auf Verwaltungsgruppen- und Abonnement-Ebene.
4. **Kann es an echte Daten gelangen?** – optionale Erreichbarkeitsprüfungen für Key Vault (Geheimnisse / Schlüssel / Zertifikate), Storage (Blob / File / Queue / Table) und die Cosmos-DB-Datenebene.
5. **Wie groß ist die Auswirkung?** – gefährliche Berechtigungen, Rollen, Besitz und erreichbare Daten, abgebildet auf bekannte Privesc-/Lateral-Movement-Primitiven, nach Schweregrad bewertet, mit konkreten **Angriffspfad**-Darstellungen.

Es authentifiziert sich entweder mit einem **Clientgeheimnis** oder einem **Zertifikat** (`--cert`) und funktioniert mit **kommerziellen und souveränen Clouds** (`--cloud`).

Es ist **standardmäßig passiv** und **ändert niemals etwas** – ausschließlich lesende Enumeration.

> ⚠️ **Nur für autorisierte Tests.** Führe es ausschließlich gegen Mandanten aus, die explizit im Scope eines Engagements liegen, für das du autorisiert bist.

---

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

Die einzige Laufzeitabhängigkeit ist requests. Tokens werden lokal dekodiert (base64 + JSON) — keine Signaturprüfung, keine Kryptobibliothek, kein Microsoft SDK. Die eine Ausnahme ist die Zertifikatsauthentifizierung (--cert), die das optionale Paket cryptography benötigt, um die JWT-Client-Assertion zu signieren. Erfordert Python 3.7+.

Nach pip install . kannst du es als secret_stalker … aufrufen, anstatt python -m secret_stalker … zu verwenden.


Schnellstart

Der schnellste Weg, um herauszufinden, was ein Credential kann:```bash python -m secret_stalker
--tenant contoso.onmicrosoft.com
--client-id 11111111-2222-3333-4444-555555555555
--secret ''

`--tenant` akzeptiert entweder eine Tenant-GUID oder eine Domain — eine Domain wird automatisch über den öffentlichen OpenID-Konfigurationsendpunkt in ihre
Tenant-ID aufgelöst.

### Das Geheimnis aus der Shell-Historie heraushalten

Übergeben Sie Anmeldedaten über Umgebungsvariablen anstelle von 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

Jedes von --tenant / --client-id / --secret kann aus SS_TENANT / SS_CLIENT_ID / SS_SECRET stammen. Flags haben Vorrang vor der Umgebung.

Hierbei geht es nicht nur um die Shell-Historie: Ein argv-Wert ist für jeden lokalen Benutzer während der gesamten Lebensdauer des Prozesses lesbar (ps, /proc/<pid>/cmdline). Wenn --secret oder --cert-password als Flag übergeben wird, gibt das Tool eine einzeilige Erinnerung auf stderr aus — es erscheint nie in der --json- oder --export-Ausgabe.

Mit einem Zertifikat statt eines Geheimnisses authentifizieren

App-Registrierungen verwenden oft ein Zertifikat statt eines Geheimnisses. Übergeben Sie --cert (ein PEM, das den privaten Schlüssel und das Zertifikat enthält, oder eine .pfx/.p12) und das Tool authentifiziert sich mit einer signierten JWT-Client-Assertion:```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 ''

Die Zertifikatsauthentifizierung benötigt das optionale Paket `cryptography` (`pip install '.[cert]'`).
Das Tool meldet das eigene Ablaufdatum des Zertifikats (abgeglichen anhand seines Fingerabdrucks in den
`keyCredentials` der App), genau wie bei einem Geheimnis. `--cert`/`--cert-password`
werden ebenfalls aus `SS_CERT` / `SS_CERT_PASSWORD` gelesen.

### Souveräne und Regierungs-Clouds

Standardmäßig zielt secret_stalker auf die **kommerzielle** Cloud. Für souveräne Mandanten
übergeben Sie `--cloud` (oder `SS_CLOUD`), damit die Entra-Autorität und die Graph-/ARM-/Key-
Vault-Endpunkte übereinstimmen — andernfalls sehen gültige Anmeldeinformationen so aus, als hätten sie keinen Zugriff:```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 (default)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

Aliase wie gov, dod, commercial, gcc-high und 21vianet werden akzeptiert. (Die Storage-Datenebenen-Zielgruppe, storage.azure.com, ist in jeder Cloud dieselbe.)


Empfohlener Workflow bei einem Engagement

  1. Aktualisieren Sie die Berechtigungszuordnung für diesen Mandanten (einmalig). Löst Graph-Berechtigungs-GUIDs in autoritative Namen für den Zielmandanten auf: ```bash python -m secret_stalker --update-manifest

Dies authentifiziert sich, speichert das Graph-appRole-Mapping des Mandanten in ~/.secret_stalker/app_roles_cache.json zwischen und beendet sich. Überspringen Sie es, wenn die Anmeldeinformation keine Dienstprinzipale lesen kann — das mitgelieferte Mapping deckt weiterhin die bekannten Berechtigungen ab.

Tool herunterladen