Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
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
Certighost_CVE-2026-54121 — Exploit de um clique para CVE-2026-54121 (Certighost) visando a falsificação de identidade de certificados AD CS. Automatiza a criação de contas de máquina, redirecionamento de tráfego, CA rogue, PKINIT e extração de hash NT para comprometimento do domínio. | Kitploit
Ferramentas/GitHubGitHub/trya9ain/certighost_cve-2026-54121
Análise de VulnerabilidadesExploraçãoPós-ExploraçãoTestes de PenetraçãoRed Teaming
GitHubtrya9ain/certighost_cve-2026-54121

Certighost_CVE-2026-54121

Exploit de um clique para CVE-2026-54121 (Certighost) visando a falsificação de identidade de certificados AD CS. Automatiza a criação de contas de máquina, redirecionamento de tráfego, CA rogue, PKINIT e extração de hash NT para comprometimento do domínio.

Ver Repositório
há 11h 32mAinda não revisado

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 →
Compartilhar

certighost-oneclick

Ferramenta de exploração one-click para CVE-2026-54121 (Certighost) — apenas para laboratórios locais/testes autorizados.

Versão nativa para Windows adaptada do PoC upstream (análise @h0j3n / implementação @aniqfakhrul): Redirecionador WinDivert próprio integrado (pydivert), um único comando executa "criar conta → redirecionar → listener rogue → CA chase → certificado de identidade do DC → PKINIT → hash NT da conta de máquina do DC", sem interromper o serviço Server, sem alterar nenhuma configuração do host, restauração imediata ao sair.

Diferenças em relação ao upstream (lista de patches)

PatchDescrição
--redirectRedirecionador WinDivert integrado (445 → --lsa-port, filtro de escopo estreito: apenas tráfego do IP do listener), inicia/para com o processo, restaura 445 automaticamente ao sair. Substitui o PortBender oficial (cujo artefato oficial é um DLL refletivo 32 bits específico para CS, incapaz de execução independente)
--lsa-portPorta de escuta do rogue LSA/SMB parametrizada (padrão 445; com --redirect o padrão é 8445)
Guarda os.geteuidA verificação de root do upstream falha no Windows → guarda hasattr + aviso de porta no Windows
Verificação de prontidão parametrizadaport_ok(127.0.0.1, 445) codificado no upstream → args.lsa_port
Cabeçalho PEP 723uv run certighost.py ... executa diretamente, dependências resolvidas automaticamente (incluindo impacket git-master), zero poluição do ambiente
--new-computer-nameNome personalizado para criação de conta (evita assinatura de detecção GHOST*)
--new-computer-passSenha personalizada para criação de conta (deve atender à política de senhas do domínio)
Polyfill random.randbytesimpacket git-master usa API 3.9+ na importação do smbserver; necessário para Python 3.8, implementado com os.urandom
Saída imediataApós GGWP, flush + os._exit() (elimina o travamento de minutos causado por threads não-daemon do impacket)
Códigos de saída semânticos0 sucesso / 1 falha
Gravação de <dc>.hash.txtHash NT da conta de máquina do DC gravado em arquivo (apenas uma linha name:lm:nt)

Uso

① Pré-verificação (somente leitura, confirma CA e pré-requisitos de exploração):

root@kitploit:~
uv run check_ca.py -d bingo.com -dc-ip 192.168.16.144 -u zhaolei -p 'pass'

Exibe lista de Enterprise CA, emissão do template Machine e permissões de registro (requer Domain Computers com Enroll). Verifique também o flag chase na máquina CA: certutil -getreg policy\EditFlags (deve ter EDITF_ENABLECHASECLIENTDC; confirmado ativo na instalação padrão do Server 2016).

② Exploração one-click (Windows, administrador):

root@kitploit:~
uv run certighost.py -d bingo.com -u zhaolei -p '[email protected]' \
  --dc-ip 192.168.16.144 --listener <IP acessível localmente> --redirect \
  --new-computer-name MACH$ --new-computer-pass 'Your@Pw123!'

Três artefatos de saída (gravados automaticamente no diretório de execução):

ArquivoConteúdo
<dc>.pfxCertificado de identidade do DC (material PKINIT)
<dc>.ccacheCache de tickets Kerberos
<dc>.hash.txtHash NT da conta de máquina do DC (apenas linha name:lm:nt)

③ Limpeza (excluir conta criada):

root@kitploit:~
uv run cleanup_ghost.py -d bingo.com -dc-ip 192.168.16.144 -u administrator -p 'pass' --prefix MACH

Parâmetros (estilo impacket)

ParâmetroDescrição
-d / -u / -p / -HDomínio / usuário de baixo privilégio / senha / hash NTLM
--dc-ipEndereço do DC (obrigatório)
--listener IPIP do listener rogue (obrigatório especificar explicitamente com múltiplas NICs)
--redirectNúcleo Windows: redirecionamento WinDivert 445 integrado (requer administrador + pydivert)
--lsa-port NPorta do rogue LSA (padrão 8445 com --redirect)
--new-computer-nameNome personalizado para criação de conta (adiciona $ automaticamente)
--new-computer-passSenha personalizada para criação de conta (mutuamente exclusivo com caminho existing)
--computer-name/--computer-pass/--computer-hashSem MAQ: reutilizar conta de máquina já controlada
--target-san DC01$Especificar alvo de impersonação (padrão: descoberta automática do DC)
--templateTemplate de certificado (padrão Machine)
--ca / --ca-ipEspecificar CA manualmente
--debugRastreamento completo das fases do protocolo

Fluxo interno

root@kitploit:~
Phase1  Usuário de baixo privilégio cria conta de máquina (caminho MAQ automático / --new-computer-* personalizado / --computer-* reutiliza existente)
Phase2  [Windows] Redirecionador WinDivert integrado: listener_ip:445 -> :lsa_port
        Filtro de escopo estreito (apenas esse IP), pacotes reescritos saem do filtro = sem loop de reinjeção; handle fechado com o processo
Phase3  Servidor rogue: LDAP:389 + LSA/SMB:lsa_port (responde chase cdc/rmd, alimenta dados de identidade do DC)
Phase4  Submete solicitação de certificado como identidade de máquina (template Machine), CA faz callback ao rogue → emite certificado de identidade do DC
Phase5  PKINIT → KDC retorna hash NT da conta de máquina do DC no PAC → extrai e grava em .hash.txt
Phase6  (Posterior) secretsdump DCSync → krbtgt → domínio totalmente comprometido; cleanup_ghost remove conta criada

Uso no Linux inalterado (bind direto root em 445/389, sem --redirect).

Mecanismo de extração de hash (não é DCSync)

A extração de hash na cadeia de ataque usa PKINIT → PAC → hash NT, não DCSync:

  1. CA é enganada para emitir certificado com "identidade = conta de máquina do DC"
  2. Script usa o certificado para Kerberos PKINIT (pré-autenticação por chave pública)
  3. KDC retorna o hash NT dessa conta em PAC_CREDENTIAL_INFO do AS-REP (comportamento de design do protocolo Kerberos: ao autenticar por certificado, insere o hash NT no PAC para compatibilidade com aplicações NTLM antigas)
  4. Script descriptografa o PAC, extrai o hash → imprime + grava em disco

Usar secretsdump para DCSync após obter o hash é uma operação de segundo passo, não a fonte do hash.

Empacotamento (exe de arquivo único, formato de entrega Arquitetura A)

root@kitploit:~
# PowerShell 7
./build_exe.ps1              # Perfil padrão  (Win10 / Server 2016+)
./build_exe.ps1 3.10         # Perfil compatível  (Win8.1 / Server 2012 R2+)
./build_exe.ps1 legacy       # Perfil legado  (Win7 SP1 / Server 2008 R2 x64)

Artefato dist\certighost_x64.exe: 19-27MB (conforme perfil), auto-elevação --uac-admin, zero dependências, script gera automaticamente checksum SHA256.

Pré-requisitos de build do perfil legado

Requer CPython 3.8.10 oficial do python.org instalado no seguinte caminho (último build binário oficial que suporta kernel Win7, não depende de APIs UCRT novas):

root@kitploit:~
D:\网安相关\Tools\Python\cpython-3.8.10-x64\

Comando de instalação (silencioso, sem escrever no PATH, sem instalar launcher):

root@kitploit:~
python-3.8.10-amd64.exe /quiet InstallAllUsers=0 TargetDir=D:\网安相关\Tools\Python\cpython-3.8.10-x64 PrependPath=0 Include_launcher=0

Também fixa PyInstaller==5.13.2 (bootloader 6.x não suporta kernel Win7) e cryptography==38.0.4 (wheels Rust passam a exigir Win10+ após 38.x), ambos já consolidados no script.

Matriz de validação em hardware real

PerfilSistema realCadeia completaObservações
PadrãoWin11✅
Compatível 3.10Win11 / Win10 / Server 2012 R2✅ ×3Inclui WinDivert em hardware real
LegadoWin11 / Server 2008 R2 x64✅ ×23.8.10 oficial + PyInstaller 5.13.2

Atenção: PyInstaller+impacket é zona de alto risco para assinaturas de antivírus, avalie antes da implantação.

Arquitetura de implantação operacional (modelo de duas máquinas)

  • Arquitetura A (formato padrão desta ferramenta): exe completo entregue no foothold com saída de rede (requer administrador), execução direta;
  • Arquitetura B (foothold valioso): ferramenta permanece local, foothold apenas com encaminhamento remoto via túnel (389 bind direto + 445 requer redirecionamento do mesmo tipo desta ferramenta).

Pontos de detecção (Blue Team)

  • Banco de dados da CA com certificados suspeitos emitidos para identidade de DC (resíduo permanente) — primeiro âncora forense
  • Eventos 4886/4887 da CA (emissão de certificado) com discrepância solicitante-identidade-alvo (Elastic/Nextron têm regras prontas)
  • Contas de máquina GHOST*/personalizadas recém-criadas (4741) + solicitações de registro de usuário de baixo privilégio à CA
  • Evento de carregamento do driver WinDivert no foothold (comum às Arquiteturas A/B)

Limitações conhecidas

  • Requer Enterprise CA + usuário de baixo privilégio com permissão de registro + DC sem patch de 2026-07 + flag chase ativo
  • Alvo deve ser conta de computador (limitado pelas permissões de registro do template Machine e pelo mecanismo de identidade dNSHostName) mas conta de máquina do DC = DCSync = domínio inteiro, efeito equivalente a obter todos os administradores de domínio
  • Server 2016 validado em cadeia completa; 2012R2~2025 inferido como viável (mesmo mecanismo chase)
  • Caminho de criação de conta é escada de downgrade: falha de LDAPS faz fallback automático para SAMR
  • Fase PKINIT ocasionalmente apresenta ciphertext integrity failure: observado uma vez, reexecução resolve
  • Redirecionador é projetado para escopo estreito IPv4, cenário IPv6 não coberto

Lista de arquivos

root@kitploit:~
certighost.py            Exploit principal (upstream + patches de nativização Windows + PEP 723)
certighost_redirect.py   Redirecionador WinDivert 445 próprio (pydivert; autoteste --selftest/--e2e)
check_ca.py              Pré-verificação: CA/template/permissões de registro/flag chase (somente leitura)
cleanup_ghost.py         Finalização: excluir conta criada
build_exe.ps1            Empacotamento PyInstaller de arquivo único (pwsh7, matriz de três perfis, SHA256 automático)

Upstream e agradecimentos

  • Pesquisa original e PoC: @h0j3n (análise gist), @aniqfakhrul/CVE-2026-54121 (implementação upstream)
  • Kudelski Security (descobridor da vulnerabilidade); PortBender (Praetorian, fonte da ideia de redirecionamento)
  • pydivert (bindings Python do WinDivert 2.2.2)
Baixar ferramenta