Luiz Henrique Lima Campos – Microsoft MVP

Monitorando Autenticações NTLMv1 no Windows Server e Registrando em Arquivo de Log com PowerShell

| 0 comentários

O NTLMv1 é um protocolo de autenticação antigo e menos seguro, sendo recomendado desativá-lo em ambientes modernos. Antes de desativá-lo, é essencial identificar quais sistemas ou aplicações ainda o utilizam. Este artigo orienta como monitorar autenticações NTLMv1 em um Windows Server, registrando os eventos em um arquivo de log utilizando PowerShell.

NTLMv1 überwachen und deaktivieren | WindowsPro

1. Habilitando a Auditoria de Logon

Para capturar eventos de autenticação NTLMv1, é necessário ativar a auditoria de logon nos controladores de domínio:

  1. Abra o Editor de Políticas de Grupo:
    • Execute gpedit.msc.
  2. Navegue até:
    • Configuração do Computador > Configurações do Windows > Configurações de Segurança > Políticas Locais > Política de Auditoria.
  3. Ative a Auditoria de Logon:
    • Clique duas vezes em Logon/Logoff > Auditar Logon e marque Êxito e Falha.

2. Identificando Autenticações NTLMv1 via Eventos

Após habilitar a auditoria, o Windows registrará eventos de logon no Visualizador de Eventos. Autenticações NTLMv1 são indicadas pelo Evento ID 4624 com detalhes específicos:

  • Caminho: Logs do Windows > Segurança
  • Evento ID: 4624 (Logon bem-sucedido)
  • Detalhes Relevantes:
    • Processo de Logon: NtLmSsp
    • Pacote de Autenticação: NTLM
    • Nome do Pacote (apenas NTLM): NTLM V1

Esses detalhes indicam que a autenticação utilizou NTLMv1.

3. Script PowerShell para Registrar Autenticações NTLMv1

Para automatizar a coleta desses eventos e registrá-los em um arquivo de log, utilize o seguinte script PowerShell:

powershellCopiarEditar# Defina o caminho para o arquivo de log
$logPath = "C:\Logs\NTLMv1_AuthLogs.txt"

# Verifique se o diretório existe; caso contrário, crie-o
if (-not (Test-Path -Path (Split-Path $logPath))) {
    New-Item -Path (Split-Path $logPath) -ItemType Directory
}

# Obtenha os eventos 4624 do log de segurança relacionados ao NTLMv1
$events = Get-WinEvent -LogName Security | Where-Object {
    $_.Id -eq 4624 -and
    $_.Properties[10].Value -eq "NTLM V1"
}

# Formate e registre os eventos no arquivo de log
foreach ($event in $events) {
    $logEntry = "Data/Hora: $($event.TimeCreated) | Usuário: $($event.Properties[5].Value) | Domínio: $($event.Properties[6].Value) | Estação de Trabalho: $($event.Properties[11].Value)"
    Add-Content -Path $logPath -Value $logEntry
}

Explicação do Script:

  • $logPath: Define o caminho onde o log será salvo.
  • Test-Path e New-Item: Verificam e criam o diretório para o log, se necessário.
  • Get-WinEvent: Obtém eventos do log de segurança.
  • Where-Object: Filtra eventos com ID 4624 e Properties[10].Value igual a “NTLM V1”.
  • Add-Content: Adiciona as entradas filtradas ao arquivo de log.

Observações:

  • Execute o script com privilégios administrativos.
  • Agende o script para execução periódica utilizando o Agendador de Tarefas do Windows, garantindo monitoramento contínuo.

4. Considerações Finais

Monitorar e identificar o uso de NTLMv1 é crucial para fortalecer a segurança do ambiente. Após identificar sistemas que ainda utilizam NTLMv1, planeje a migração para protocolos mais seguros, como o NTLMv2 ou o Kerberos. Além disso, considere desativar o NTLMv1 para evitar vulnerabilidades associadas a este protocolo legado.

Para mais informações sobre auditoria de NTLMv1, consulte a documentação oficial da Microsoft.

Deixe uma resposta

Campos requeridos estão marcados *.