Artefatos do Windows · Aula 7 de 9
Logs de eventos: logons, RDP, serviços e PowerShell
11 min de leitura
Os logs de eventos do Windows registram quem fez logon, de onde e como, quais serviços e tarefas foram instalados, quando o sistema foi iniciado e encerrado e, às vezes, o código PowerShell executado, cada registro com um horário UTC preciso. Esta aula aborda o formato EVTX, os eventos mais usados pelos peritos no Windows 10 e 11 e como correlacionar vários logs em um único relato de uma sessão.
Onde ficam os logs e como o EVTX é estruturado
Os logs ficam em C:\Windows\System32\winevt\Logs, com um arquivo por canal. Os logs clássicos são Security.evtx, System.evtx e Application.evtx. Outros canais usam o nome do canal com a barra representada por %4: o canal Microsoft-Windows-TerminalServices-LocalSessionManager/Operational é armazenado como Microsoft-Windows-TerminalServices-LocalSessionManager%4Operational.evtx. Uma coleta de triagem copia esses arquivos com seus caminhos originais; verifique se os canais necessários foram coletados antes de concluir que um evento nunca ocorreu.
O formato EVTX é simples em sua estrutura geral:
| Parte | Tamanho | Assinatura | Conteúdo |
|---|---|---|---|
| Cabeçalho do arquivo | 4.096 bytes | ElfFile | Números do primeiro e do último bloco, ID do próximo registro, sinalizadores (por exemplo, dirty) |
| Bloco | 65.536 bytes (64 KB) | ElfChnk | Cabeçalho de bloco de 512 bytes, tabelas de strings e modelos, registros |
| Registro de evento | variável | bytes 2A 2A 00 00 | Tamanho do registro, ID do registro, horário de gravação (FILETIME), XML binário |
Os registros são armazenados como XML binário, uma codificação compacta que faz referência a modelos mantidos no bloco; os analisadores reconstroem o XML exibido no Visualizador de Eventos. Blocos autossuficientes também podem ser recuperados por carving do espaço não alocado.
Campos dos registros
Cada registro tem uma seção System e uma seção de dados:
- Provider (o componente que o gravou, por exemplo,
Microsoft-Windows-Security-Auditing) e EventID. O mesmo número pode ter significados diferentes para provedores diferentes, portanto, sempre os interprete em conjunto. - TimeCreated SystemTime, sempre em UTC, por exemplo,
2026-03-14T22:47:33.2014417Z. - EventRecordID, um número sequencial por log; lacunas ou um reinício em 1 merecem uma análise mais detalhada.
- Channel e Computer (o nome do host quando o evento foi gravado).
- EventData (ou UserData): campos nomeados, como
TargetUserNameouIpAddress.
Tamanho e sobrescrita
Cada log tem um tamanho máximo e, por padrão, sobrescreve seus eventos mais antigos quando fica cheio. O tamanho padrão do log Security costuma ser de 20 MB, portanto, em um sistema movimentado, ele pode abranger apenas alguns dias anteriores. Os canais operacionais têm seus próprios limites, frequentemente menores, mas recebem menos eventos, de modo que podem abranger períodos anteriores aos do Security. Para os logs clássicos, o tamanho configurado é o valor MaxSize em ControlSet00x\Services\EventLog\<log> na hive SYSTEM; compare o registro mais antigo com o período sob investigação.
Logons no log Security
Os eventos de Security dependem da política de auditoria. O Windows 10 e 11 auditam êxitos e falhas de logon por padrão, mas muitas categorias, incluindo a criação de processos, ficam desativadas, a menos que sejam habilitadas. A ausência de um evento não prova que a ação não ocorreu.
4624 (logon bem-sucedido) é o evento central. Seus campos principais são TargetUserName, TargetUserSid, TargetLogonId, LogonType, IpAddress, WorkstationName (o nome do cliente), LogonProcessName (por exemplo, User32, NtLmSsp, Kerberos) e AuthenticationPackageName (por exemplo, Negotiate, NTLM, Kerberos).
| LogonType | Nome | Causa típica |
|---|---|---|
| 2 | Interativo | Logon pelo teclado no console |
| 3 | Rede | Acesso a um compartilhamento ou NLA antes do RDP |
| 4 | Lote | Tarefa agendada |
| 5 | Serviço | Serviço iniciado sob uma conta |
| 7 | Desbloqueio | Estação de trabalho desbloqueada ou sessão reconectada |
| 8 | Rede com texto claro | Credenciais enviadas em texto claro (por exemplo, autenticação básica do IIS) |
| 9 | Novas credenciais | runas /netonly: novas credenciais para conexões de saída |
| 10 | Interativo remoto | Área de Trabalho Remota |
| 11 | Interativo com credenciais em cache | Logon de domínio com credenciais em cache, sem controlador de domínio |
4625 (falha de logon) tem a mesma estrutura, mais Status e SubStatus. O SubStatus 0xC000006A indica uma senha incorreta para uma conta existente; 0xC0000064 indica que o nome de usuário não existe. Muitas falhas 0xC0000064 a partir de um mesmo IP sugerem tentativas de adivinhar nomes de usuário; uma sequência intensa de 0xC000006A seguida de um 4624 para essa conta sugere que a senha foi adivinhada com sucesso.
Outros eventos da mesma família:
- 4634 logoff (a sessão terminou) e 4647 logoff iniciado pelo usuário (o usuário escolheu Sair).
- 4648 logon com credenciais explícitas, por exemplo,
runasou mapeamento de uma unidade com outra conta. - 4672 privilégios especiais atribuídos a um novo logon: a conta possui privilégios sensíveis, normalmente de administrador (ou SYSTEM).
- 4720 conta de usuário criada, 4722 habilitada, 4724 tentativa de redefinição de senha, 4732 membro adicionado a um grupo local habilitado para segurança (por exemplo, Administradores).
- 4688 criação de processo, somente quando "Auditar Criação de Processo" está habilitada; o campo
CommandLineé preenchido somente quando a política adicional "Incluir linha de comando em eventos de criação de processo" também está configurada.
O ID de logon (TargetLogonId no 4624, um valor de 64 bits exibido em hexadecimal) identifica uma sessão de logon até seu término. Eventos posteriores o apresentam como SubjectLogonId (4672, 4688, 4648) ou TargetLogonId (4634, 4647), portanto, filtrar por ele reúne tudo o que foi feito nessa sessão. Os IDs de logon são únicos somente até a próxima reinicialização, por isso associe o ID à janela de tempo.
Área de Trabalho Remota em três logs
Uma sessão RDP deixa eventos no destino em três canais:
- RemoteConnectionManager/Operational 1149, "Autenticação de usuário bem-sucedida", com o usuário, o domínio e o IP de origem. Ele mostra que uma conexão RDP desse IP foi aceita para esse nome de usuário; não mostra que uma sessão de área de trabalho foi iniciada.
- Security 4624 tipo 10 com o mesmo IP em
IpAddress. Com a Autenticação em Nível de Rede (NLA), um logon do tipo 3 a partir do mesmo IP costuma aparecer logo antes. Uma reconexão ou um desbloqueio pode apresentar o tipo 7 em vez disso. - LocalSessionManager/Operational (LSM) 21 (logon de sessão bem-sucedido), 22 (notificação de início do shell recebida), 24 (sessão desconectada) e 25 (reconexão de sessão bem-sucedida), cada um com o usuário, o ID de sessão e o endereço de origem. Logons no console apresentam
LOCALcomo endereço. - Security 4778 (sessão reconectada) e 4779 (sessão desconectada), com
LogonID,ClientNameeClientAddress, se "Outros Eventos de Logon/Logoff" estiver sendo auditado.
Fechar a janela RDP desconecta a sessão sem fazer logoff: aparecem 24 e 4779, mas 4634 somente quando o usuário sai ou a sessão é redefinida.
Serviços, tarefas, inicialização e desligamento
No log System, 7045 (provedor Service Control Manager) registra a instalação de um serviço com ServiceName, ImagePath, StartType e AccountName. Um nome aleatório com um ImagePath que executa cmd.exe ou powershell.exe é típico de ferramentas de execução remota. 7036 registra a entrada de um serviço no estado em execução ou parado. 6005 e 6006 (serviço de Log de Eventos iniciado/parado) marcam a inicialização e o desligamento normal, 6008 registra que o desligamento anterior foi inesperado e 1074 (provedor User32) identifica o processo e o usuário que iniciaram um desligamento ou uma reinicialização.
Em Microsoft-Windows-TaskScheduler/Operational, 106 registra o cadastramento de uma tarefa com seu nome e o usuário que a cadastrou, e 200/201 registram o início e a conclusão de uma ação de tarefa. Esse canal pode estar desabilitado, portanto, verifique se ele contém eventos. A aula 2.6 aborda eventos de dispositivos USB.
PowerShell
- Microsoft-Windows-PowerShell/Operational 4104 (registro de blocos de script) registra o código executado, após a decodificação, com um
ScriptBlockId; scripts longos se estendem por vários registros ("1 de 3"). Com a política ativada, todos os blocos são registrados. Sem ela, o Windows PowerShell 5.x pode registrar alguns blocos de script automaticamente, no nível Aviso, quando considera seu conteúdo suspeito. - 4103 (registro de módulos) registra detalhes da execução do pipeline, como comandos e parâmetros, quando o registro de módulos está habilitado.
- Windows PowerShell.evtx 400 e 403 marcam o início e a parada do mecanismo; o campo
HostApplicationmostra a linha de comando que iniciou o PowerShell, incluindo valores de-EncodedCommand. O 600 registra o início de provedores. - O PowerShell 7 usa seu próprio canal
PowerShellCore/Operational.
Fora dos logs, o PSReadLine salva os comandos digitados no console em %APPDATA%\Microsoft\Windows\PowerShell\PSReadLine\ConsoleHost_history.txt para cada usuário, mantendo, por padrão, as últimas 4.096 linhas. Ele não tem carimbos de data/hora, portanto, determine a data de suas entradas por correlação (4104, horários do sistema de arquivos).
Logs limpos
O 1102 do Security ("O log de auditoria foi limpo") e o 104 do System (outro log limpo) registram quem limpou um log. O módulo 7 aborda a limpeza de logs como técnica antiforense.
Ferramentas e método
O Visualizador de Eventos pode abrir um .evtx copiado para verificações pontuais, mas exibe o horário local da máquina de análise. Para a análise, processe todos os logs em uma única tabela: o EvtxECmd, por exemplo, usa mapas que normalizam os campos dos eventos em colunas comuns (usuário, host remoto, executável) e grava CSV em UTC. Ferramentas de busca de ameaças, como Hayabusa e Chainsaw, aplicam regras de detecção a muitos logs; verifique cada resultado no registro original.
Exemplo resolvido: uma sessão RDP
Uma coleta de triagem da estação de trabalho WS-FIN-07 mostra estes eventos (UTC):
| Horário (UTC) | Log | ID | Valores principais |
|---|---|---|---|
| 2026-03-14T22:47:31.512Z | RemoteConnectionManager | 1149 | Usuário mreyes, Origem 203.0.113.45 |
| 2026-03-14T22:47:33.201Z | Security | 4624 | Tipo 10, mreyes, TargetLogonId 0x3E1A2B, IpAddress 203.0.113.45, Estação de trabalho DESKTOP-K2M9QX |
| 2026-03-14T22:47:33.215Z | Security | 4672 | SubjectLogonId 0x3E1A2B |
| 2026-03-14T22:47:33.640Z | LocalSessionManager | 21 | WS-FIN-07\mreyes, ID de sessão 3, 203.0.113.45 |
| 2026-03-14T22:47:34.902Z | LocalSessionManager | 22 | ID de sessão 3 |
| 2026-03-14T23:31:05.117Z | LocalSessionManager | 24 | ID de sessão 3, 203.0.113.45 |
| 2026-03-14T23:31:05.140Z | Security | 4779 | LogonID 0x3E1A2B, ClientName DESKTOP-K2M9QX |
Vinculação. O usuário e o IP vinculam o 1149 ao 4624; o TargetLogonId do 4624 o vincula ao 4672 e ao 4779; o usuário, o IP e o ID de sessão vinculam os três eventos do LocalSessionManager. Algumas ferramentas mostram IDs de logon em decimal: 0x3E1A2B = 62 × 65.536 + 0x1A2B (6.699) = 4.069.931.
Interpretação. mreyes conectou-se a partir de 203.0.113.45 (computador cliente DESKTOP-K2M9QX), fez logon às 22:47:33Z com privilégios especiais (4672) e desconectou-se às 23:31:05Z. Duração: 23:31:05.117 − 22:47:33.201 = 43 min 31,916 s. Nenhum 4634 ou 4647 aparece em seguida, portanto, a sessão permaneceu com logon ativo, mas desconectada. Filtrar por 0x3E1A2B nessa janela mostraria o que foi executado na sessão, se o 4688 estivesse sendo auditado.
Referência de IDs de eventos
| Log | ID | Significado |
|---|---|---|
| Security | 4624 / 4625 | Êxito / falha de logon |
| Security | 4634 / 4647 | Logoff / logoff iniciado pelo usuário |
| Security | 4648 | Logon com credenciais explícitas |
| Security | 4672 | Privilégios especiais atribuídos a um novo logon |
| Security | 4720 / 4722 / 4724 / 4732 | Conta criada / habilitada / senha redefinida / adicionada a grupo local |
| Security | 4688 | Processo criado (se auditado) |
| Security | 4778 / 4779 | Sessão RDP reconectada / desconectada |
| Security | 1102 | Log Security limpo |
| RemoteConnectionManager/Operational | 1149 | Autenticação de usuário RDP bem-sucedida |
| LocalSessionManager/Operational | 21 / 22 / 24 / 25 | Logon de sessão / início do shell / desconexão / reconexão |
| System | 7045 / 7036 | Serviço instalado / alteração de estado do serviço |
| System | 6005 / 6006 / 6008 | Log de Eventos iniciado / parado / desligamento inesperado |
| System | 1074 | Desligamento ou reinicialização iniciado |
| System | 104 | Log limpo |
| TaskScheduler/Operational | 106 / 200 / 201 | Tarefa cadastrada / ação iniciada / concluída |
| PowerShell/Operational | 4104 / 4103 | Registro de blocos de script / de módulos |
| Windows PowerShell | 400 / 403 / 600 | Mecanismo iniciado / parado / provedor iniciado |
Foco no exame: Espere ter de informar um horário de logon em UTC, um IP de origem, um ID de logon, o nome de uma estação de trabalho cliente ou oImagePathde um serviço a partir de logs processados, e de escolher o evento correto para uma questão (1149 versus 4624 tipo 10 versus LSM 21). Conheça os tipos de logon e os dois códigos SubStatus comuns do 4625, e esteja preparado para explicar por que um evento ausente pode refletir a política de auditoria ou a sobrescrita, em vez de inatividade. Obtenha os horários deSystemTime, não de um visualizador que os converta para o horário local.
Pontos principais
- Os arquivos EVTX ficam em
C:\Windows\System32\winevt\Logs; um cabeçalhoElfFilede 4 KB é seguido por blocosElfChnkde 64 KB que contêm registros XML binários com horários UTC e um EventRecordID. - Os logs são sobrescritos: o log Security costuma ter apenas 20 MB, portanto, compare seu registro mais antigo com o período de interesse.
- O 4624 fornece usuário, SID, LogonType, ID de logon, IP e estação de trabalho; Status/SubStatus do 4625 explicam as falhas; o 4672 marca logons privilegiados.
- O RDP aparece como 1149, 4624 tipo 10, LSM 21/22/24/25 e 4778/4779; vincule-os por usuário, IP, ID de sessão e ID de logon.
- O 7045 registra novos serviços, 106/200/201 registram tarefas agendadas, 4104 registra código PowerShell; ConsoleHost_history.txt mantém os comandos digitados sem horários.
- Muitos eventos dependem da política de auditoria ou de registro, portanto, a ausência de registros não prova a ausência de atividade.