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
Internal-Monologue — Internal Monologue Attack: Recuperando Hashes NTLM sem Tocar no LSASS | Kitploit
Ferramentas/GitHubGitHub/eladshamir/internal-monologue
Ataques de SenhaMovimento LateralPós-ExploraçãoTestes de PenetraçãoRed Teaming
GitHubeladshamir/internal-monologue

Internal-Monologue

Internal Monologue Attack: Recuperando Hashes NTLM sem Tocar no LSASS

Ver Repositório
1.7k23815há 7 anosRevisado 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 →
Compartilhar

Ataque Monólogo Interno: Recuperando Hashes NTLM sem Tocar no LSASS

Introdução

Mimikatz, desenvolvido por Benjamin Delpy (@gentilkiwi), é uma ferramenta de pós-exploração bem conceituada, que permite que adversários extraiam senhas em texto claro, hashes NTLM e tickets Kerberos da memória, bem como realizem ataques como pass-the-hash, pass-the-ticket ou construir um golden ticket. Sem dúvida, o uso principal do Mimikatz é recuperar credenciais de usuário da memória do processo LSASS para uso em movimentação lateral pós-exploração.

Recentemente, a Microsoft introduziu o Credential Guard no Windows 10 Enterprise e no Windows Server 2016, que usa segurança baseada em virtualização para isolar segredos, e é muito eficaz em impedir que o Mimikatz recupere hashes diretamente da memória. Além disso, o Mimikatz tornou-se um alvo principal da maioria das soluções de proteção de endpoint, e elas são muito agressivas em seus esforços para detectá-lo e impedi-lo. Embora esses esforços estejam fadados ao fracasso, eles estão se tornando cada vez mais um incômodo.

NetNTLM

NetNTLM é o protocolo de desafio-resposta do Windows, usado principalmente onde o Kerberos não é suportado. No NetNTLM, o servidor envia ao cliente um nonce aleatório de 8 bytes como desafio, e o cliente calcula uma resposta que processa o desafio com o hash NTLM como chave, que é o hash MD4 da senha do usuário. Existem duas versões do protocolo de autenticação NetNTLM, e ambas são vulneráveis a certos ataques. Naturalmente, a versão 1 é significativamente mais fraca que a versão 2 e, portanto, a partir do Windows Vista/2008, o NetNTLM versão 1 é desabilitado por padrão.

Pass the Hash

Como o hash NTLM é a chave para calcular a resposta, um adversário não precisa necessariamente obter a senha em texto claro da vítima para autenticar; portanto, recuperar o hash da memória do LSASS usando o Mimikatz é quase equivalente a roubar uma senha em texto claro. Chris Hummel publicou um artigo descrevendo essa técnica em 2009 e a chamou de "Pass the Hash" [https://www.sans.org/reading-room/whitepapers/testing/crack-pass-hash-33219].

Dividir e Conquistar

Na Defcon 2012, Moxie Marlinspike e David Hulton apresentaram um ataque "Dividir e Conquistar" contra o NetNTLMv1 [https://www.youtube.com/watch?v=sIidzPntdCM]. No NetNTLMv1, o cliente recebe o desafio de 8 bytes e calcula a resposta criptografando-o três vezes usando DES com diferentes partes do hash NTLM como chave. O comprimento da chave para DES é efetivamente de 56 bits, ou seja, 7 bytes, enquanto o hash NTLM tem 16 bytes. O NetNTLMv1 primeiro criptografa o desafio usando os primeiros 7 bytes do hash NTLM como chave, depois criptografa o desafio usando os próximos 7 bytes do hash NTLM como chave e, finalmente, criptografa o desafio usando os últimos 2 bytes do hash NTLM preenchidos com bytes nulos como chave. Efetivamente, isso significa que, para recuperar o hash NTLM dado um desafio e resposta NetNTLMv1, um adversário deve quebrar duas chaves DES de 56 bits, o que é exponencialmente mais fácil do que quebrar uma única chave de 128 bits. Moxie e Hulton desenvolveram hardware personalizado para essa tarefa e conseguiram forçar bruto todo o espaço de chaves DES em menos de 24 horas, o que garante a recuperação bem-sucedida do hash NTLM em um tempo razoável. Observe que, diferentemente de ataques de dicionário ou força bruta contra a senha, que podem não ser frutíferos, este ataque garante a recuperação bem-sucedida do hash NTLM.

Tabelas Arco-íris

Conforme demonstrado pelo ToorCon em https://crack.sh, é viável criar uma tabela arco-íris completa para todas as respostas possíveis do NetNTLMv1 para um desafio escolhido, como 0x1122334455667788, o que permite quebrar o hash NTLM para uma determinada resposta em minutos. A implicação é que capturar uma resposta NetNTLMv1 para o desafio escolhido pode ser traduzida para o hash NTLM correspondente quase instantaneamente, o que é quase equivalente a obter a senha devido ao Pass the Hash.

Ataque de Rebaixamento NetNTLM

O Mimikatz é comumente executado após o adversário obter acesso elevado ao host alvo. Neste ponto, o adversário também pode alterar chaves de registro, como o LMCompatibilityLevel, que especifica se o host deve negociar NetNTLMv1 ou NetNTLMv2. O adversário pode alterar o valor para 0, 1 ou 2, o que habilita o NetNTLMv1 como cliente, e então tentar autenticar em um servidor SMB malicioso que capturará a resposta do cliente, conforme descrito no post do blog da Optiv [https://www.optiv.com/blog/post-exploitation-using-netntlm-downgrade-attacks].

Ataque de Rebaixamento NetNTLM Estendido

Mais duas configurações podem impedir que a vítima negocie uma resposta NetNTLMv1:

  1. NTLMMinClientSec - se configurado para "Exigir segurança de sessão NTLMv2", a conexão falhará se o protocolo NTLMv2 não for negociado.
  2. RestrictSendingNTLMTraffic - se configurado para "Negar tudo", o computador cliente não pode autenticar em um servidor remoto com NetNTLM de qualquer versão. De forma semelhante ao ataque de rebaixamento NetNTLM, essas configurações podem ser alteradas se necessário. Observe que, diferentemente do LMCompatibilityLevel, essas configurações não são configuradas por padrão para bloquear a autenticação NetNTLMv1.

Ataque Monólogo Interno

Em ambientes seguros, onde o Mimikatz não deve ser executado, um adversário pode realizar um Ataque Monólogo Interno, no qual invoca uma chamada de procedimento local para o pacote de autenticação NTLM (MSV1_0) a partir de uma aplicação em modo de usuário através do SSPI para calcular uma resposta NetNTLM no contexto do usuário logado, após realizar um rebaixamento NetNTLM estendido.

O fluxo do Ataque Monólogo Interno é descrito abaixo:

  1. Desabilitar os controles preventivos do NetNTLMv1 alterando LMCompatibilityLevel, NTLMMinClientSec e RestrictSendingNTLMTraffic para valores apropriados, conforme descrito acima.
  2. Recuperar todos os tokens de logon não-rede dos processos em execução atualmente e personificar os usuários associados.
  3. Para cada usuário personificado, interagir com o NTLM SSP localmente para obter uma resposta NetNTLMv1 para o desafio escolhido no contexto de segurança do usuário personificado.
  4. Restaurar os valores originais de LMCompatibilityLevel, NTLMMinClientSec e RestrictSendingNTLMTraffic.
  5. Quebrar o hash NTLM das respostas capturadas usando tabelas arco-íris.
  6. Pass the Hash.

Atualização: Compatibilidade com Credential Guard

Testei recentemente o Monólogo Interno em ambientes com Credential Guard ativado e obtive resultados negativos. Não tenho certeza se o Credential Guard não estava funcionando corretamente no meu ambiente de teste durante os testes iniciais, ou se algo mudou desde então. Atualizei a implementação para adquirir um token de servidor do AcceptSecurityContext dinamicamente e adulterá-lo para evitar a armadilha de autenticação local, de modo que, se o NetNTLMv1 sem Segurança de Sessão Estendida falhar, pelo menos um desafio-resposta NetNTLMv2 possa ser capturado.

Trilha de Auditoria

O Ataque Monólogo Interno é indiscutivelmente mais furtivo do que executar o Mimikatz, pois não há necessidade de injetar código ou despejar memória de/para um processo protegido. Como a resposta NetNTLMv1 é obtida interagindo com o NTLM SSP localmente, nenhum tráfego de rede é gerado, e o desafio escolhido não é facilmente visível. Nenhum evento de autenticação NTLM bem-sucedido é registrado nos logs. As alterações no registro para o rebaixamento NetNTLM e roubo de tokens/personificação de outros usuários podem acionar indicadores.

Prova de Conceito

Esta ferramenta é uma prova de conceito que implementa o Ataque Monólogo Interno em C#. Portar o código para o PowerShell pode substituir certos logs de eventos na trilha de auditoria por outros. O código PoC está longe de ser perfeito. Contribuições e melhorias positivas são bem-vindas.

Autor

Elad Shamir da The Missing Link Security

Agradecimentos

  • Matthew Bush (3xocyte) da The Missing Link Security e Shaun Williamson (AusJock) da Beyond Binary por ajudar a debater ideias e montar isso
  • Moxie Marlinspike e David Hulton por sua palestra "Defeating PPTP VPNs and WPA2 Enterprise with MS-CHAPv2" na Defcon 20
  • Optiv pelo Ataque de Rebaixamento NetNTLM
  • Bialek Joseph (clymb3r) pelo Invoke-TokenManipulation
  • MWR Labs pelo Incognito
  • Anton Sapozhnikov (snowytoxa) pelo Selfhash
  • Tim Malcom Vetter (malcomvetter) por múltiplas melhorias
  • Marcello Salvati (byt3bl33d3r) pela adição da biblioteca DLL
Baixar ferramenta