Guia: NTLMv1 vs NTLMv2 — Política, Verificação e Como Habilitar/RestringIR/Permitir
NTLMv1 é um protocolo de autenticação antigo com vulnerabilidades conhecidas (captura de hash, pass-the-hash, relays). Ambientes modernos devem desabilitar NTLMv1 e forçar NTLMv2 sempre que possível. Este documento descreve: por que isso é importante, como auditar/consultar o estado atual em hosts/domínios e como aplicar mudanças (abrir compatibilidade ou reforçar para NTLMv2) via GPO e registro/PowerShell.
Atenção: use com cautela; reinício remoto em produção pode interromper serviços.
1. Por que desabilitar NTLMv1 (pontos-chave)
Segurança: NTLMv1 usa algoritmos fracos e é suscetível a captura de credenciais e ataques de replay/relay.
Conformidade: muitas políticas de segurança e regras de auditoria exigem protocolos de autenticação robustos (NTLMv2 ou Kerberos).
Redução de risco: desabilitar NTLMv1 reduz superfície de ataque, especialmente em redes com dispositivos legados e scanners/impressoras que expõem serviços.
Recomendação: manter NTLMv1 desabilitado em produção; se necessário por compatibilidade, aplicar apenas em OUs ou hosts específicos e documentar o motivo.
2. Como consultar o status atual (host local)
2.1 Verificar LmCompatibilityLevel (registro)
LmCompatibilityLevel (registro)No host, abrir PowerShell como Administrador e rodar:
# Ler valor atual
Get-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Lsa' -Name LmCompatibilityLevelInterpretação: LmCompatibilityLevel controla o comportamento LM/NTLM.
0— envia LM & NTLM responses (muito permissivo)1— permite NTLMv1 (com NTLMv2 session security se negociado)2— envia apenas NTLM (permite NTLMv1; não LM)3— envia NTLMv2 response only; negociates NTLMv2 if supported (valor padrão em muitos sistemas)4— envia NTLMv2 response only. Refuse LM.5— Send NTLMv2 response only. Refuse LM & NTLM (refuse NTLMv1) — recomendado para forçar NTLMv2
Observação: além do
LmCompatibilityLevel, políticas “Restrict NTLM” podem negar tráfego mesmo quandoLmCompatibilityLevelpermite.
2.2 Verificar políticas “Restrict NTLM” (local ou GPO)
Abra
gpedit.msc(máquina local) ou use o Group Policy Management para ver GPOs aplicados. Caminho:Computer Configuration → Windows Settings → Security Settings → Local Policies → Security OptionsItens relevantes:
Network security: LAN Manager authentication level (LmCompatibilityLevel equivalente)
Network security: Restrict NTLM: Audit Incoming NTLM traffic
Network security: Restrict NTLM: Incoming NTLM traffic
Network security: Restrict NTLM: Outgoing NTLM traffic to remote servers
Network security: Restrict NTLM: NTLM authentication in this domain
2.3 Auditar tentativas NTLM (Event Viewer)
Event Viewer →
Applications and Services Logs → Microsoft → Windows → NTLM → Operational.Habilite logs de auditoria via GPO se necessário para ver detalhes de uso, versão e origem de autenticações NTLM.
3. Como habilitar/permissive (permitir NTLMv1)
Use apenas se necessário e em hosts/OU de teste. Documente e minimize o escopo.
3.1 Via Registro / PowerShell (local)
Executar PowerShell como Administrador:
# Definir para 0 (mais permissivo: envia LM & NTLM)
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Lsa' -Name LmCompatibilityLevel -Value 0 -Type DWord
# Ou definir para 1 (permite NTLMv1; tenta NTLMv2 session security quando negociado)
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Lsa' -Name LmCompatibilityLevel -Value 1 -Type DWord
# Ou definir para 2 (permite NTLMv1 sem LM)
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Lsa' -Name LmCompatibilityLevel -Value 2 -Type DWord
# Reinicie a máquina
Restart-Computer3.2 Via GPO (domínio)
Abra o Group Policy Management Editor no GPO alvo.
Navegue até:
Computer Configuration → Policies → Windows Settings → Security Settings → Local Policies → Security Options.Edite Network security: LAN Manager authentication level e escolha uma das opções permissivas:
Send LM & NTLM responses(LmCompatibilityLevel = 0)Send LM & NTLM - use NTLMv2 session security if negotiated(LmCompatibilityLevel = 1)Send NTLM response only(LmCompatibilityLevel = 2)
Verifique também políticas
Network security: Restrict NTLMpara garantir que não hajam negações.
4. Como restringir / forçar apenas NTLMv2 (recomendado)
4.1 Via Registro / PowerShell (local)
# Definir para 5 — Send NTLMv2 response only. Refuse LM & NTLM (recusa NTLMv1)
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Lsa' -Name LmCompatibilityLevel -Value 5 -Type DWord
Restart-ComputerValor
5força NTLMv2 e recusa NTLMv1; é a configuração desejada para endurecer.
4.2 Via GPO (domínio)
No GPO alvo:
Computer Configuration → Policies → Windows Settings → Security Settings → Local Policies → Security Options.Configure Network security: LAN Manager authentication level → Send NTLMv2 response only. Refuse LM & NTLM.
4.3 Políticas “Restrict NTLM” (controle granular)
Para controle adicional, use as políticas em
Computer Configuration → Policies → Windows Settings → Security Settings → Local Policies → Security Options:Network security: Restrict NTLM: Audit Incoming NTLM traffic — primeiro habilite auditoria para identificar dependências.
Após validar, altere Incoming NTLM traffic para
Deny all domain accounts(ouDeny all accounts) conforme o rollout.Ajuste Outgoing NTLM traffic to remote servers e NTLM authentication in this domain conforme necessidade.
Processo recomendado: habilitar auditoria → coletar e corrigir dependências → aplicar deny/forçar NTLMv2.
5. Como verificar depois da mudança
Conferir
LmCompatibilityLevelno host (PowerShell) — ver seção 3.1.Conferir Event Viewer →
Microsoft → Windows → NTLM → Operationalpara tentativas/rejeições.Testar autenticação em aplicações críticas (impressoras, scanners, aplicações legadas, serviços web) em ambiente controlado.
Rodar scans de vulnerabilidade (ex.: Nessus) em hosts para confirmar ausência de suporte a NTLMv1.
6. Checklist de rollout seguro
7. Riscos ao habilitar NTLMv1 (resumo)
Aumento substancial da superfície de ataque para captura de credenciais.
Não atende a controles modernos de segurança e pode quebrar conformidade.
Pode facilitar ataques de relay ou pass-the-hash.
8. Exemplo de comunicação interna (texto curto para anexar ao change request)
Change request: Ajustar política de autenticação para
LmCompatibilityLevel = 5(forçar NTLMv2). Justificativa: mitigar riscos de captura de credenciais e cumprir política de segurança. Testes serão realizados na OUTEST-NTLMpor 14 dias antes do rollout em produção. Caso haja necessidade, exceções serão documentadas e aprovadas pelo time de segurança.
9. Scripts rápidos (para referência)
9.1 Ler valor atual (PowerShell)
Get-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Lsa' -Name LmCompatibilityLevel9.2 Aplicar NTLMv2 apenas (local)
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Lsa' -Name LmCompatibilityLevel -Value 5 -Type DWord
Restart-Computer9.3 Aplicar permissivo (habilitar NTLMv1) — local
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Lsa' -Name LmCompatibilityLevel -Value 1 -Type DWord
Restart-Computer9.4 Script para aplicar em múltiplos hosts via Invoke-Command (exemplo)
$hosts = @('host1','host2')
Invoke-Command -ComputerName $hosts -ScriptBlock {
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Lsa' -Name LmCompatibilityLevel -Value 5 -Type DWord
Restart-Computer -Force
}Atualizado
Isto foi útil?