Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
SecretsStalker — Avaliação somente leitura de credenciais de aplicativo do Entra ID: enumera permissões do Graph, RBAC do Azure e dados de nuvem acessíveis e, em seguida, mapeia as descobertas para caminhos de elevação de privilégios e movimento lateral. | Kitploit
Ferramentas/GitHubGitHub/rootsecdev/secretsstalker
Autenticação e AutorizaçãoSegurança de Infraestrutura em NuvemEscalada de PrivilégiosReconhecimentoMovimento LateralPós-ExploraçãoTestes de PenetraçãoSegurança na NuvemGerenciamento de Identidade e Acesso (IAM)Red Teaming
34124há 1 mêsRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
GitHub
rootsecdev/secretsstalker

SecretsStalker

Avaliação somente leitura de credenciais de aplicativo do Entra ID: enumera permissões do Graph, RBAC do Azure e dados de nuvem acessíveis e, em seguida, mapeia as descobertas para caminhos de elevação de privilégios e movimento lateral.

Ver Repositório
Compartilhar

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

**O que este ID do cliente + segredo do Entra ID realmente pode fazer?**

Você encontrou uma credencial de aplicativo do Entra ID (Azure AD) — um ID do cliente e um segredo —
em um engajamento autorizado, e o locatário ao qual ela pertence está no escopo.
O `secret_stalker` pega esses dois valores e diz a você, partindo do zero:

1. **A credencial é válida e quando o segredo expira?** — e, se não for válida, *por quê*
   (segredo incorreto, segredo expirado, aplicativo fora do locatário…). Para um segredo válido, ele
   lê os `passwordCredentials` do registro do aplicativo e informa a data de expiração
   + dias restantes (exige leitura do diretório; veja a nota abaixo).
2. **Quais direitos do Microsoft Graph ela possui?** — permissões de aplicativo lidas
   diretamente do token emitido, além das **funções de diretório do Entra** que ela detém (mesmo
   detectadas passivamente a partir da declaração `wids` do token) e **objetos que ela possui**
   (aplicativos/SPs aos quais você pode adicionar credenciais).
3. **Que controle ela tem sobre o Azure?** — atribuições de função RBAC no escopo do
   grupo de gerenciamento e da assinatura.
4. **Ela consegue alcançar dados reais?** — verificações opcionais de Key Vault (segredos / chaves / certificados),
   Storage (blob / arquivo / fila / tabela) e Cosmos DB para verificação de alcance no plano de dados.
5. **Qual é o impacto?** — permissões perigosas, funções, propriedade e dados
   alcançáveis mapeados a primitivas conhecidas de privesc / movimento lateral, classificados por
   gravidade, com narrativas concretas de **caminho de ataque**.

Ele se autentica com um **segredo do cliente** ou um **certificado** (`--cert`),
e funciona em **nuvens comerciais e soberanas** (`--cloud`).

Ele é **passivo por padrão** e **nunca modifica nada** — apenas
enumeração somente leitura.

> ⚠️ **Somente testes autorizados.** Execute-o apenas contra locatários que estejam
> explicitamente no escopo de um engajamento que você está 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

A única dependência de runtime é requests. Os tokens são decodificados localmente (base64 + JSON) — sem verificação de assinatura, sem biblioteca de criptografia, sem SDK da Microsoft. A exceção é a autenticação por certificado (--cert), que precisa do pacote opcional cryptography para assinar a asserção do cliente JWT. Requer Python 3.7+.

Após pip install ., você pode invocá-lo como secret_stalker … em vez de python -m secret_stalker ….


Início rápido

A maneira mais rápida de descobrir o que uma credencial pode fazer:```bash python -m secret_stalker
--tenant contoso.onmicrosoft.com
--client-id 11111111-2222-3333-4444-555555555555
--secret ''

`--tenant` aceita um GUID de tenant ou um domínio — um domínio é resolvido para o seu
ID de tenant automaticamente por meio do endpoint público de configuração OpenID.

### Mantenha o segredo fora do seu histórico de shell

Passe as credenciais por meio de variáveis de ambiente em vez 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

Qualquer um de --tenant / --client-id / --secret pode vir de SS_TENANT / SS_CLIENT_ID / SS_SECRET. As flags têm precedência sobre o ambiente.

Isto não se limita ao histórico da shell: um valor de argv é legível por qualquer utilizador local durante a vida do processo (ps, /proc/<pid>/cmdline). Se --secret ou --cert-password for passado como uma flag, a ferramenta imprime um lembrete de uma linha para stderr — nunca aparece na saída de --json ou --export.

Autenticar com um certificado em vez de um segredo

Os registos de aplicações costumam usar um certificado em vez de um segredo. Passe --cert (um PEM contendo a chave privada e o certificado, ou um .pfx/.p12) e a ferramenta autentica-se com uma asserção de cliente JWT assinada:```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 ''

Autenticação por certificado requer o pacote opcional `cryptography` (`pip install '.[cert]'`).
A ferramenta relata a expiração do próprio certificado (correspondente à sua impressão digital no `keyCredentials` do aplicativo), assim como faz para um segredo. `--cert`/`--cert-password` também são lidos de `SS_CERT` / `SS_CERT_PASSWORD`.

### Nuvens soberanas e governamentais

Por padrão, o secret_stalker tem como alvo a nuvem **comercial**. Para locatários soberanos, passe `--cloud` (ou `SS_CLOUD`) para que a autoridade do Entra e os endpoints do Graph / ARM / Key Vault correspondam — caso contrário, credenciais válidas parecem não ter acesso:```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 ...
--cloudAutoridade EntraMicrosoft GraphARMKey Vault
public (padrão)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

Aliases como gov, dod, commercial, gcc-high e 21vianet são aceitos. (O público-alvo do plano de dados do Storage, storage.azure.com, é o mesmo em todas as nuvens.)


Fluxo de trabalho recomendado em um engajamento

  1. Atualize o mapa de permissões deste locatário (uma vez). Resolve os GUIDs de permissão do Graph para nomes autoritativos do locatário de destino: ```bash python -m secret_stalker --update-manifest

Isso autentica, armazena em cache o mapa de appRole do Graph do locatário em ~/.secret_stalker/app_roles_cache.json, e sai. Ignore-o se a credencial não puder ler os service principals — o mapa incluído ainda cobre as permissões bem conhecidas.

Baixar ferramenta