
Analise forense de logs Windows é uma etapa essencial em qualquer investigação de segurança cibernética. Os logs armazenam informações cruciais sobre acessos, atividades suspeitas, falhas do sistema e tentativas de exploração. No entanto, encontrar os logs corretos e analisá-los de forma eficiente requer conhecimento técnico e ferramentas apropriadas.
Neste artigo, você aprenderá onde encontrar os logs no Windows, quais ferramentas utilizar para análise e as melhores práticas para organização e interpretação dos dados.
O Que São Logs e Por Que Eles São Essenciais na Forense Digital?
Logs são registros automáticos de eventos que ocorrem em sistemas operacionais, redes e aplicativos. Cada login, erro, tentativa de acesso ou comando executado gera uma entrada no log, servindo como trilha de auditoria para uma investigação.
Coleta e Preservação de Evidências
Para que os logs possam ser usados legalmente em uma investigação, sua coleta e preservação devem seguir boas práticas forenses.
Boas Práticas para Coleta de Logs
- Preserve a integridade dos logs utilizando hashes SHA-256.
- Evite alteração – Copie os logs para um repositório imutável.
- Use criptografia para armazenar logs sensíveis.
- Centralize a coleta de logs usando ferramentas como ELK Stack, Splunk e Wazuh.
Importância da Análise Forense de Logs
- Acessos de usuários (logins e falhas)
- Eventos de segurança (modificações em arquivos, políticas, permissões)
- Execução de comandos suspeitos
- Tentativas de exploração e ataques
- Tráfego de rede anômalo
- Erros do sistema e aplicativos
A análise forense de logs permite reconstruir incidentes, identificar invasores e determinar o impacto de um ataque.
Logs no Windows: Onde Encontrar e Como Analisar
O Windows armazena logs no Event Viewer (eventvwr.msc
), localizado em:
C:\Windows\System32\Winevt\Logs\
Categoria | Descrição | Comando para acessar |
Application | Eventos de aplicativos | Get-EventLog -LogName Application |
Security | Logins e eventos de segurança | Get-EventLog -LogName Security |
System | Eventos do sistema | Get-EventLog -LogName System |
Logs de Autenticação e Acessos
Eventos importantes:
- 4624 – Login bem-sucedido
- 4625 – Falha no login
- 4672 – Login de usuário com privilégios elevados
- 4720/4726 – Criação ou exclusão de conta de usuário
- 4732 – Adição de usuário a um grupo privilegiado
- 1102 – Log de segurança apagado
Exemplo do Filtro do Event Viewer
Filtros por Evento e Data:
Get-WinEvent -FilterHashtable @{LogName='Security'; ID=4624; StartTime=(Get-Date).AddHours(-1)} | Select-Object TimeCreated, Message | Format-List
Este comando traz falhas de login na última hora. Você pode alterar o ID para outros eventos como 4625 (Falha de logins).
Gerando log de brute force!
Para fins educacionais, vou simular um ataque de força bruta contra um sistema Windows. O objetivo é gerar entradas de log reais que possam ser analisadas posteriormente, como tentativas de login mal-sucedidas, alertas de segurança e rastros de atividade suspeita.
Neste cenário, utilizamos a ferramenta Hydra, amplamente conhecida no campo de pentest, para automatizar tentativas repetidas de login utilizando uma lista de senhas.
Essa prática permite:
- Observar como o sistema registra tentativas de intrusão.
- Identificar os Event IDs relacionados no log de segurança (como o 4625, para falha de login).
- Validar a efetividade dos mecanismos de defesa e detecção existentes.
Importante: este procedimento foi realizado em ambiente controlado, com fins de simulação, e nunca deve ser executado em sistemas sem autorização formal.
hydra -t 4 -V -f -l Administrator -P /usr/share/wordlists/rockyou.txt rdp://172.31.182.166
Parâmetros utilizados:
-t 4
→ Executa até 4 threads simultâneas por host.-V
→ Mostra todas as tentativas em tempo real.-f
→ Para assim que encontrar a primeira senha válida (não aconteceu neste caso).-l Administrator
→ Usuário alvo.-P rockyou.txt
→ Wordlist usada para tentar as senhas.rdp://
→ Protocolo de destino, neste caso Remote Desktop Protocol.
Filtro para usuário específico:
Get-WinEvent -FilterHashtable @{LogName='Security'; ID=4625} | Where-Object { $_.Message -like "*Administrator*" } | Select-Object TimeCreated, @{
Name = "SourceIP"
Expression = {
($_.Message -split "`n" | Where-Object { $_ -match "Source Network Address" }) -replace ".*:\s+", ""
}
} | Format-Table -Wrap -AutoSize
Este comando traz falhas de login do usuário Administrator. Você pode alterar o ID para outros eventos como 4624 (logins com sucesso), etc.
Detectar Ataque de Força Bruta:
$falhas = Get-WinEvent -FilterHashtable @{LogName='Security'; ID=4625; StartTime=(Get-Date).AddMinutes(-10)} |
Where-Object { $_.Message -like "*administrator*" }
if ($falhas.Count -gt 5) {
Write-Warning "Possível ataque de força bruta detectado no usuário Administrator"
}
Esse snippet detecta mais de 5 tentativas de login em 10 minutos. Você pode ajustar isso como desejar.
Detecção de Elevação de Privilégio
Eventos importantes para monitorar:
- 4672: Usuário recebeu um token com privilégios elevados
- 4732: Usuário foi adicionado a um grupo privilegiado
Gerando o evento 4672 (Token com privilégios elevados)
O evento 4672 é registrado no log de segurança sempre que uma conta efetua logon e recebe um token de segurança contendo privilégios especiais. Esse evento geralmente acompanha um logon bem-sucedido (evento 4624) e é gerado automaticamente pelo sistema para contas que possuem permissões elevadas, como Administradores, Serviços do sistema (SYSTEM) ou contas de serviço com permissões avançadas.
Start-Process -FilePath "powershell.exe" -Verb RunAs
Inicia uma nova instância do PowerShell elevada. Ao fazer isso, o evento 4672 será gerado para o usuário.
Script PowerShell com filtro para ignorar SYSTEM:
Get-WinEvent -FilterHashtable @{LogName='Security'; ID=4672; StartTime=(Get-Date).AddHours(-1)} |
ForEach-Object {
$msg = $_.Message
$usuario = if ($msg -match "Account Name:\s+(.+?)\r") { $matches[1].Trim() } else { "Não identificado" }
$privs = if ($msg -match "Privileges:\s+([\s\S]+)") {
($matches[1] -split "`r`n" | ForEach-Object { $_.Trim() }) -join ", "
} else {
"Não informado"
}
if ($usuario -ne "SYSTEM") {
[PSCustomObject]@{
DataHora = $_.TimeCreated
Usuario = $usuario
Privilegios = $privs
}
}
} | Format-Table -Wrap -AutoSize
Gerando o evento 4732 (Usuário adicionado a grupo privilegiado)
O evento 4732 é registrado no log de segurança do Windows sempre que um usuário é adicionado a um grupo de segurança habilitado localmente, como Administradores, Backup Operators ou Power Users. Este evento é crítico para auditoria e segurança, pois alterações em grupos privilegiados podem indicar movimentos laterais em ataques, escalonamento de privilégios ou mudanças administrativas legítimas que precisam ser monitoradas.
Add-LocalGroupMember -Group "Administradores" -Member "llucio"
Script Powershell para buscar elevação de privilégios
Get-WinEvent -FilterHashtable @{LogName='Security'; ID=4732; StartTime=(Get-Date).AddMinutes(-60)} |
ForEach-Object {
$msg = $_.Message
$sidRaw = if ($msg -match "Member:\s+Security ID:\s+(.+?)\r") { $matches[1].Trim() } else { "Não identificado" }
try {
$sidObj = New-Object System.Security.Principal.SecurityIdentifier($sidRaw)
$usuario = $sidObj.Translate([System.Security.Principal.NTAccount]).Value
} catch {
$usuario = $sidRaw
}
$grupo = if ($msg -match "Group Name:\s+(.+?)\r") { $matches[1].Trim() } else { "Não identificado" }
[PSCustomObject]@{
DataHora = $_.TimeCreated
Usuario = $usuario
Grupo = $grupo
}
}
Logs Customizados e Exportação
Exportar logs para análise posterior
Para facilitar a análise forense ou o armazenamento de evidências, é possível exportar eventos do log de segurança utilizando PowerShell. O comando abaixo salva todos os eventos de falha de login (ID 4625) em um arquivo .xml
no formato Clixml, que pode ser reimportado posteriormente com todos os detalhes preservados
Get-WinEvent -FilterHashtable @{LogName='Security'; ID=4625} |
Export-Clixml -Path "C:\Temp\logs_falhas_login.xml"
Validação com Hash — Garantindo a Integridade
Após exportar os logs, é recomendado gerar e armazenar o hash do arquivo, garantindo que o conteúdo não foi alterado. Isso é essencial para preservar a integridade da evidência em investigações forenses e auditorias.
Get-FileHash -Path "C:\Temp\logs_falhas_login.xml" -Algorithm SHA256 |
Out-File -FilePath "C:\Temp\logs_falhas_login_hash.txt"
Com esse procedimento, qualquer alteração posterior no arquivo poderá ser detectada, assegurando sua validade como prova digital.
type C:\Temp\logs_falhas_login_hash.txt
Segurança e Persistência de Logs
Configuração de Tamanho de Log
Aumentar o tamanho dos logs de segurança é uma prática essencial em ambientes corporativos. Por padrão, o Windows define um limite relativamente baixo, o que pode causar a sobrescrita automática de eventos importantes em curto prazo.
Por que aumentar o tamanho?
- Evita perda de eventos críticos (ex: falhas de login, escalonamento de privilégios)
- Garante histórico mais longo para análise forense
- Reforça a conformidade com políticas de auditoria e LGPD
Mesmo com os logs configurados corretamente no Windows, mantê-los apenas localmente é um risco. Em caso de ataque, os eventos podem ser apagados ou sobrescritos. Por isso, é de extrema importância integrar o ambiente a uma solução de SIEM (Security Information and Event Management).
Por que um SIEM é essencial?
- Centraliza logs de múltiplos servidores, dispositivos e serviços
- Correlaciona eventos em tempo real para detectar comportamentos suspeitos
- Armazena logs de forma imutável e com retenção prolongada
Exemplos de SIEM:
- Microsoft Sentinel (Azure)
- Splunk
- Graylog
- QRadar
- Wazuh (open source)
Habilitar Auditoria Avançada
A Auditoria Avançada (Advanced Audit Policy) permite configurar a auditoria de eventos de forma granular, melhorando a precisão dos logs sem sobrecarregar o sistema com informações desnecessárias. Com ela, é possível registrar especificamente ações como acesso a arquivos, alterações em grupos, comandos executados.
Como habilitar a Auditoria Avançada:
Execute o comando abaixo para confirmar se ela está ativa:
AuditPol /get /category:*
Para habilitar auditoria completa de logons (sucesso e falha):
AuditPol /set /subcategory:"Logon" /success:enable /failure:enable
Você também pode aplicar via GPO:
Computer Configuration > Policies > Windows Settings > Security Settings > Advanced Audit Policy Configuration
Advanced Audit Policy Configuration > Audit Policies > Logon/Logoff
Proteção Contra Limpeza de Logs — Evento 1102
O evento 1102 é disparado quando alguém limpa manualmente o log de segurança. Isso é um forte indicativo de tentativa de ocultação de rastros, comum em ações pós comprometimento.
Por que monitorar o evento 1102:
- Identifica sabotagem ou tentativa de apagar evidências
- Ajuda a iniciar resposta imediata a incidentes
- Deve ser monitorado constantemente em SIEMs
Habilite a auditoria da subcategoria “Log de auditoria limpo”:
AuditPol /set /subcategory:"Audit Policy Change" /success:enable /failure:enable
Gerando o Evento 1102 (Log de auditoria limpo)
Get-WinEvent -FilterHashtable @{LogName='Security'; ID=1102} |
Select-Object TimeCreated, Message |
Format-List
Dica de segurança:
Esse evento deve sempre ser monitorado por SIEMs e gerar alertas. Uma limpeza sem autorização pode indicar tentativa de apagar rastros.
Enriquecendo Logs com Sysmon + PowerShell
O Sysmon (System Monitor) é uma ferramenta gratuita da Microsoft (Sysinternals) que estende as capacidades de auditoria do Windows, gerando logs detalhados de atividades do sistema como:
- Criação de processos
- Conexões de rede
- Alterações em registros
- Acesso a arquivos
- Injeção de código
- Modificação de imagem (DLL injection)
Diferente da auditoria nativa, o Sysmon fornece informações mais ricas e estruturadas, ideais para correlação com ferramentas como PowerShell, SIEMs e scripts forenses.
Como instalar o Sysmon
.\Sysmon64.exe -i
Recomendado: usar um arquivo .xml
de regras
Baixe uma configuração mais completa, como:
https://github.com/SwiftOnSecurity/sysmon-config
.\Sysmon64.exe -i
.\Sysmon64.exe -accepteula -i "C:\Users\Administrator\Downloads\sysmon-config-master\sysmon-config-master\sysmonconfig-export.xml"
Quer confirmar se funcionou?
Get-WinEvent -LogName "Microsoft-Windows-Sysmon/Operational" -FilterXPath "*[System/EventID=1]" -MaxEvents 20 |
ForEach-Object {
$xml = [xml]$_.ToXml()
[PSCustomObject]@{
DataHora = $_.TimeCreated
Usuario = $xml.Event.EventData.Data | Where-Object { $_.Name -eq "User" } | Select-Object -ExpandProperty '#text'
Processo = $xml.Event.EventData.Data | Where-Object { $_.Name -eq "Image" } | Select-Object -ExpandProperty '#text'
LinhaComando = $xml.Event.EventData.Data | Where-Object { $_.Name -eq "CommandLine" } | Select-Object -ExpandProperty '#text'
PID = $xml.Event.EventData.Data | Where-Object { $_.Name -eq "ProcessId" } | Select-Object -ExpandProperty '#text'
}
} | Format-Table -Wrap -AutoSize
Combinado com PowerShell, é possível filtrar e analisar esses dados de forma avançada. Por exemplo, o comando abaixo retorna os últimos processos criados:
Links Externos
- https://learn.microsoft.com/pt-br/windows/security/threat-protection/auditing/basic-security-audit-events
- https://learn.microsoft.com/en-us/purview/audit-log-activities
- https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.diagnostics/get-winevent
- https://learn.microsoft.com/en-us/windows-server/identity/ad-ds/plan/appendix-l–events-to-monitor
- https://github.com/SwiftOnSecurity/sysmon-config
A análise forense de logs no Windows é uma das etapas mais importantes na detecção, resposta e prevenção de incidentes de segurança. Como vimos ao longo deste artigo, o uso combinado de ferramentas nativas como o Event Viewer, PowerShell, e soluções avançadas como o Sysmon, permite enriquecer a coleta de dados e alcançar uma visibilidade muito mais precisa sobre as atividades do sistema.
É fundamental que as organizações configurem corretamente a auditoria, aumentem o tamanho dos logs, monitorem eventos críticos como 4625, 4672 e 1102, e integrem essas informações com ferramentas de SIEM sempre que possível.
Mais do que registrar, é preciso analisar, correlacionar e reagir.
Leandro Lucio
Especialista em Cyber Security & Digital Forensics, com mais de 15 anos de experiência. Certificado CEH, Pentester, Forense Digital. Atuo em testes de intrusão, análise forense, investigação de ameaças, resposta a incidentes e gestão de vulnerabilidades, ajudando a fortalecer a segurança e mitigar riscos cibernéticos. Compartilho conhecimento no meu blog:
🔗 peritolucio.com.br 🔗 Leandro Lucio | LinkedIn