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.

FeedsContatoPrivacidade© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
Kestrel — Ferramenta de enumeração de segurança do Active Directory de baixa observabilidade que utiliza interfaces nativas ADSI/COM. Enumera ACLs, delegação, trusts, ADCS, alvos de Kerberoast e caminhos de ataque sem .NET ou PowerShell, produzindo saída compatível com BloodHound. | Kitploit
Ferramentas/GitHubGitHub/ssteelfactor-oss/kestrel
Ferramentas DefensivasEscalada de PrivilégiosReconhecimentoAnálise de VulnerabilidadesColeta de InformaçõesPós-ExploraçãoTestes de PenetraçãoRed Teaming
GitHubssteelfactor-oss/kestrel

Kestrel

Ferramenta de enumeração de segurança do Active Directory de baixa observabilidade que utiliza interfaces nativas ADSI/COM. Enumera ACLs, delegação, trusts, ADCS, alvos de Kerberoast e caminhos de ataque sem .NET ou PowerShell, produzindo saída compatível com BloodHound.

95952há 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 →
Ver Repositório
Compartilhar
# Kestrel

[![build](https://github.com/ssteelfactor-oss/Kestrel/actions/workflows/build.yml/badge.svg)](https://github.com/ssteelfactor-oss/Kestrel/actions/workflows/build.yml)
[![license](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](LICENSE)
[![language](https://img.shields.io/badge/language-C-informational.svg)](#)
[![dependencies](https://img.shields.io/badge/dependencies-none-brightgreen.svg)](#)

> ### O BloodHound mostra o caminho. O Kestrel mostra o que já está lá dentro.

Todo mundo mapeia a mesma coisa: o caminho de ataque - *quem consegue chegar ao Domain Admin.* É a pergunta certa, e as ferramentas que a respondem são excelentes. Mas um grafo de "quem consegue chegar a quem" é cego para uma classe inteira de problemas, porque algumas das piores coisas em um Active Directory não são um caminho de forma alguma.

São uma backdoor soldada em um atributo. Um certificado que continua autenticando muito depois de a senha ser redefinida. Uma permissão gravada no próprio schema, de modo que todo objeto criado a partir de agora a herda silenciosamente. Uma conta excluída cujo direito de ressuscitar alguém manteve discretamente. Um objeto oculto da enumeração por uma única ACE de deny-read.

**Nada disso é uma aresta em um grafo. Tudo isso está no seu diretório agora mesmo.** O Kestrel lê isso - com chamadas nativas do Windows, direitos comuns de usuário de domínio, sem servidor, sem Python, sem agente, e com uma pegada no controlador de domínio tão contida que está [documentada evento por evento](https://github.com/ssteelfactor-oss/kestrel/blob/main/FOOTPRINT.md).

Um `.exe`. Um comando. Tudo o que segue abaixo.

---

## Você esteve olhando para o lado errado

O ecossistema ofensivo de AD - SharpHound, impacket, Certipy e o grafo por trás deles - é soberbo, e todos olham para a mesma superfície: alcançabilidade. O Kestrel olha para as três dimensões que essa superfície não consegue expressar.

- **Tempo.** Um grafo é um instantâneo. O Kestrel lê os metadados de replicação - *quando* um atributo Tier-0 mudou e *qual DC* o originou. Um direito de DCSync concedido ontem à noite não é o mesmo achado que um que está lá há anos, e apenas um deles significa que você está sendo atacado agora mesmo.
- **Persistência em um atributo, não em uma aresta.** Shadow credentials, histórico de SID, reanimate-tombstones, backdoors de `defaultSecurityDescriptor` no schema, objetos ocultos, ACEs de deny com `OWNER RIGHTS`, chaves DKM do AD FS. As ferramentas de grafo não coletam isso porque não há aresta para desenhar.
- **Postura defensiva, invertida.** Não "quem pode atacar", mas "o que não está protegido" - a conta Tier-0 fora do seu silo, a conta de sincronização com um RID aleatório que ninguém marcou, a política de bloqueio que nunca limita um spray.

Não é que o Kestrel seja mais rápido que um grafo. Ele responde perguntas que o grafo não consegue fazer.

---

## Todo pecado de AD, em um único exe nativo

| Sin | O que o Kestrel encontra | Flag(s) |
|-----|-------------------|---------|
| **Replicação e delegação** | Direitos DCSync (quem *pode* replicar - sem nunca replicar), delegação irrestrita / restrita / RBCD / S4U | `--acl` · `--delegation` |
| **Abuso de certificados** | AD CS ESC1–5/9, CA rogue no armazenamento NTAuth, persistência de certificados de longa duração, **ACL da chave DKM do AD FS - a pré-condição do Golden SAML** | `--adcs` · `--adfs` |
| **Persistência em atributos** | Credenciais shadow, injeção de histórico de SID, **direitos de reanimação de tombstone**, **objetos ocultos**, **backdoors no `defaultSecurityDescriptor` do schema**, `adminCount` órfão | `--shadowcreds` · `--sidhistory` · `--acl` · `--schema` · `--adminsdholder` |
| **Credenciais em texto claro e quebráveis** | `cpassword` de GPP, segredos de `unattend`/`sysprep` e senhas de scripts no SYSVOL, contas Kerberoastable e AS-REP-roastable, lacunas de cobertura do LAPS | `--gpp` · `--roast` · `--laps` |
| **Entre domínios e híbrido** | Principais externos em grupos privilegiados, **contas de sincronização do Entra Connect marcadas como Tier-0**, postura de confiança, **contas de máquina criadas via MachineAccountQuota** (`mS-DS-CreatorSID`) | `--groups` · `--trust` · `--machines` |
| **Postura e reconhecimento** | Política de senhas / PSO, idade do `krbtgt`, configurações de GPO de LLMNR / NBT-NS / WDigest / NTLMv1, leitores de gMSA, computadores obsoletos, topologia de delegação | `--pwdpolicy` · `--policy` · `--gmsa` · `--stale` |
| **Arqueologia** | **ACEs perigosas órfãs** (um direito detido por um principal excluído - o SID não resolve para ninguém), **contas privilegiadas obsoletas** (esquecidas, com privilégios excessivos, senha antiga) | `--archaeology` |
| **Endurecimento do domínio** | Flags de `dSHeuristics` de LDAP anônimo / exclusão do AdminSDHolder, associação ampla ao Pre-Windows 2000 Compatible Access | `--hardening` |
| **Postura de serviços** *(lida do AD, sem pacote para o serviço)* | **Escalação Exchange-para-DA e EOL**, **tomada de controle do contêiner SCCM e mapa do site**, **envenenamento de zona ADIDNS** (Authenticated Users podem criar registros) | `--exchange` · `--sccm` · `--dns` |

Mais de duas dúzias de verificações que normalmente estão espalhadas por uma dúzia de scripts e duas linguagens. Aqui elas são um único binário - e terminam em um único veredito, ordenado por severidade.

---

## Uma linha

```
Kestrel.exe --all --report audit.html
```

Execute tudo. Obtenha o relatório HTML completo. E, bem no final do console, a parte que importa:

```
═══ Kestrel - Prioritized Findings ═══

  CRITICAL  DCSync         CORP\svc_sql - non-default principal can replicate directory changes (DCSync)
                          → fix: remove GetChanges/GetChangesAll from the principal on the domain head (dsacls) unless it is a DC
  CRITICAL  AD FS          CN=... - read access to the DKM key (Golden SAML precondition)
                          → fix: remove non-default read ACEs on the DKM object (dsacls) and rotate the token-signing certificate
  HIGH      Persistence    CN=... - object hidden from enumeration via a broad deny-read ACE
                          → fix: inspect the hidden object and remove the broad deny-read ACE (dsacls)

  [=] 2 critical · 1 high · 0 medium · 0 low
```

Não é uma parede de saída. Os achados que importam, classificados, cada um com o comando para fechá-lo.

---

## Um exe. Vermelho, azul, roxo.

- **Vermelho / cinza** - enumere persistência e delegação que o grafo não captura, exporte diretamente para o BloodHound CE OpenGraph (`--opengraph`) para fundir com sua coleta existente, ou faça pivô a partir de qualquer principal (`--from`).
- **Azul** - uma lista de achados priorizada e remediada; um `--diff` contra o snapshot da semana passada para capturar o que *mudou*; e uma ferramenta cuja pegada de detecção exata é publicada para que você possa colocá-la na lista de permissões e ajustar seus próprios alertas em torno dela.
- **Roxo** - um artefato que ambos os lados leem da mesma forma. O vermelho o encontra, o azul o corrige, todos apontam para o mesmo número de linha.

## Detectável por design

O Kestrel é somente leitura. Ele nunca escreve no diretório, nunca replica, nunca precisa de `SeSecurityPrivilege`, nunca toca a nuvem. Ler *quem pode* fazer DCSync não se parece, na rede, em nada com *fazer* DCSync - sem DRSUAPI, sem assinatura de replicação `4662`. Toda consulta que ele executa e todo evento que ele pode (e não pode) gerar está catalogado em **[FOOTPRINT.md](https://github.com/ssteelfactor-oss/kestrel/blob/main/FOOTPRINT.md)**. Um auditor que diz ao defensor exatamente como capturá-lo não é uma contradição - é exatamente o ponto.

---

## Início rápido

**Pegue um build.** Toda execução verde da CI publica um artefato `Kestrel.exe` - baixe-o na [aba Actions](https://github.com/ssteelfactor-oss/Kestrel/actions), sem necessidade de toolchain.

**Ou compile você mesmo.** Visual Studio (v143+) ou MSBuild:

```
git clone https://github.com/ssteelfactor-oss/Kestrel.git
cd Kestrel
msbuild Kestrel.vcxproj /p:Configuration=Release /p:Platform=x64
```

C puro, zero dependências de terceiros. Compile `/MT` e obtém um único executável autocontido - basta colocá-lo num host associado ao domínio e executá-lo como qualquer utilizador comum.

**Execute-o.**

```
Kestrel.exe --all --report audit.html      # everything, HTML report + ranked findings
Kestrel.exe --acl --adcs --adfs            # pick specific checks
Kestrel.exe --paths --from CORP\jdoe       # attack paths from one principal
Kestrel.exe --all --diff last-week.json    # what changed since the last snapshot
Kestrel.exe --all --opengraph graph.json   # export to BloodHound CE OpenGraph
```

## Módulos

Execute `--all`, ou selecione qualquer subconjunto. Ajuda completa: `Kestrel.exe --help`.

| Flag | Verificação |
|------|------|
| `--acl` | Arestas de ACL, direitos DCSync, higiene de owner/inheritance/canonical, objetos ocultos, reanimate-tombstones |
| `--groups` | Associação privilegiada transitiva + entidades de segurança externas |
| `--delegation` | Unconstrained / constrained / RBCD / S4U2Self |
| `--paths` / `--from` | Análise de caminhos de ataque até Tier-0 (opcionalmente a partir de uma entidade de segurança especificada) |
| `--adcs` | Auditoria de modelos de certificado / CA do AD CS (ESC1–5/9) + armazenamento NTAuth + validade |
| `--adfs` | ACL da chave DKM do AD FS (pré-condição para Golden SAML) |
| `--schema` | Auditoria de backdoor no `defaultSecurityDescriptor` do esquema |
| `--trust` | Postura de confiança de domínio / floresta |
| `--machines` | Contas de máquina criadas via MachineAccountQuota (`mS-DS-CreatorSID`) |
| `--roast` | Contas sujeitas a Kerberoasting + AS-REP-roasting |
| `--shadowcreds` | Credenciais shadow (`msDS-KeyCredentialLink`) |
| `--sidhistory` | Injeção de `sIDHistory` (privilegiada / externa) |
| `--adminsdholder` | Objetos órfãos com `adminCount=1` |
| `--gpp` | Varredura de segredos no SYSVOL - `cpassword` de GPP, `unattend`, credenciais em scripts |
| `--gpolateral` | GPO grupo local → arestas laterais (AdminTo / CanRDP / CanPSRemote / ExecuteDCOM) |
| `--policy` | Política de segurança de GPO (LLMNR / NBT-NS / WDigest / NTLMv1) |
| `--pwdpolicy` | Política de senha / PSO · idade do `krbtgt` · MachineAccountQuota |
| `--hygiene` | Higiene de credenciais (`PASSWD_NOTREQD` / `DONT_EXPIRE` / reversível / vazamentos em descrições) |
| `--gmsa` | Enumeração de leitores de senha de gMSA |
| `--laps` | Cobertura do LAPS (legado + Windows LAPS 2023+) |
| `--stale` | Computadores obsoletos via `lastLogonTimestamp` |
| `--topology` | Topologia de computadores via decodificação de SPN |
| `--adws` | Detecção de endpoint ADWS (9389/TCP por DC) |
| `--archaeology` | ACEs perigosas órfãs (owner morto, direito ativo) + contas privilegiadas obsoletas |
| `--hardening` | Flags de hardening do domínio: acesso anônimo via `dSHeuristics` / exclusão do SDProp + Pre-Windows 2000 Compatible Access |
| `--exchange` | Postura do Exchange: versão/EOL + escalada Exchange-to-DA (WriteDACL no domínio) *(serviço; opt-in)* |
| `--sccm` | Postura do SCCM/MECM: ACL do contêiner `System Management` + management-point / site map *(serviço; opt-in)* |
| `--dns` | DNS integrado ao AD (ADIDNS): DACL CreateChild da zona + wpad/isatap/wildcard + DnsAdmins *(serviço; opt-in)* |

**Postura de serviços** (`--exchange` · `--sccm` · `--dns`) é opt-in e **não** faz parte de `--all`; execute `--services` para toda a camada. Os achados agora carregam tags de técnica **MITRE ATT&CK**.

**Saída e interoperabilidade:** `--report <file>` (`.html` / `.json` / `.yaml`) · `--opengraph <file>` (BloodHound CE) · `--diff <snapshot.json>` · `--verbose`.

---

## Invariantes de design

Estas são promessas, não preferências - as razões pelas quais é seguro executá-lo em produção. Violar qualquer uma delas é um bug de segurança (veja [SECURITY.md](https://github.com/ssteelfactor-oss/kestrel/blob/main/SECURITY.md)).

- **Somente leitura** - nunca cria, modifica ou exclui um objeto de diretório. Apenas eventos de leitura/acesso, nunca eventos de modificação.
- **Usuário de domínio comum** - sem escalada de privilégios, sem `SeSecurityPrivilege`, máscaras de segurança somente DACL.
- **Sem replicação** - detecta quem *pode* fazer DCSync; nunca chama DRSUAPI por conta própria.
- **Somente diretório e SYSVOL** - sem RPC/SMB contra hosts membros.
- **Sem evasão** - sem fragmentação de consultas, sem jogos de timing, sem adulteração de logs. Veja [FOOTPRINT.md](https://github.com/ssteelfactor-oss/kestrel/blob/main/FOOTPRINT.md).
- **Somente on-prem** - sem chamadas a Entra / Graph / nuvem; ele audita a pegada que o híbrido deixa *no AD*.
- **Nativo e autocontido** - C puro, zero dependências de terceiros, um único `.exe`.

---

## Roadmap

| Versão | Status | Marco |
|---------|:------:|-----------|
| v0.13   | ✅ | Postura de condição de entrada |
| v0.14   | ✅ | Profundidade de ACL + arestas laterais |
| v0.15   | ✅ | Auditoria da estrutura de ACL (classe ADeleg) |
| v0.16   | ✅ | Persistência furtiva + profundidade SYSVOL / ADCS |
| v0.17   | ✅ | Pegada entre domínios + híbrida |
| v0.18   | ✅ | Higiene de consultas + pegada honesta |
| **v1.0** | ✅ | **Funcionalidades completas: achados priorizados + remediação, CI, Apache 2.0** |
| **v1.1** | ✅ | **Camada passiva de postura de serviços: Exchange · SCCM · ADIDNS · endurecimento de domínio · tags MITRE ATT&CK** |
| **v1.2** | ✅ | **Arqueologia de AD: ACEs perigosas órfãs + contas privilegiadas obsoletas** |
| v1.3    | 🔲 | Costura híbrida (Entra Connect / Seamless SSO) · pré-condição nTDSConnection / DCShadow |

---

## Documentação

- **[FOOTPRINT.md](https://github.com/ssteelfactor-oss/kestrel/blob/main/FOOTPRINT.md)** - o rastro exato de LDAP / SYSVOL que cada varredura deixa, e os eventos de DC que ela gera (e não consegue gerar).
- **[SECURITY.md](https://github.com/ssteelfactor-oss/kestrel/blob/main/SECURITY.md)** - relato, escopo e as invariantes de design como garantias verificáveis.
- **[LICENSE](https://github.com/ssteelfactor-oss/kestrel/blob/main/LICENSE)** - Apache 2.0.

## Relacionado

Projeto pai: [NetEnum](https://github.com/ssteelfactor-oss/NetEnum) - enumeração de AD via ADSI / COM / LDAP.

## Autor

[@ssteelfactor-oss](https://github.com/ssteelfactor-oss) - pesquisa de segurança e internals de COM / Windows.

## Licença

Licenciado sob a **Apache License 2.0** - consulte [LICENSE](https://github.com/ssteelfactor-oss/kestrel/blob/main/LICENSE). Fornecido "como está", sem garantia; execute-o apenas contra diretórios que você está autorizado a auditar.
Baixar ferramenta