
Investigar logons maliciosos do Windows visualizando e analisando o log de eventos do Windows
LogonTracer v2 é uma ferramenta para investigar logons maliciosos, visualizando e analisando logs de eventos do Active Directory do Windows. Esta ferramenta associa um nome de host (ou endereço IP) e um nome de conta encontrados em eventos relacionados a logon e os exibe como um grafo. Dessa forma, é possível ver em qual conta uma tentativa de logon ocorre e qual host está sendo usado.
Esta ferramenta pode visualizar os seguintes IDs de evento relacionados a logon do Windows.
| ID do Evento | Descrição |
|---|---|
| 4624 | Logon bem‑sucedido |
| 4625 | Falha de logon |
| 4662 | Uma operação foi executada em um objeto |
| 4672 | Atribuição de privilégios especiais |
| 4719 | A política de auditoria do sistema foi alterada |
| 4720 | Uma conta de usuário foi criada |
| 4726 | Uma conta de usuário foi excluída |
| 4728 / 4732 / 4756 | Um membro foi adicionado a um grupo habilitado para segurança |
| 4729 / 4733 / 4757 | Um membro foi removido de um grupo habilitado para segurança |
| 4768 | Autenticação Kerberos (Solicitação de TGT) |
| 4769 | Ticket de Serviço Kerberos (Solicitação de ST) |
| 4776 | Autenticação NTLM |
| 5137 | Um objeto de serviço de diretório foi criado |
| 5141 | Um objeto de serviço de diretório foi excluído |
Mais detalhes estão descritos nos seguintes documentos:

O LogonTracer v2.0 integra um mecanismo de análise de IA utilizando modelos GPT da OpenAI para fornecer detecção inteligente de ameaças, indo além das abordagens tradicionais baseadas em regras.
O LogonTracer utiliza PageRank, Modelo Oculto de Markov e ChangeFinder para detectar hosts e contas maliciosos a partir de logs de eventos.

Com o LogonTracer, também é possível exibir os logs de eventos em ordem cronológica.

Python 3.9 ou superior (3.12 recomendado)
Neo4j 5.x (Community ou Enterprise)
Chave da API OpenAI (opcional — necessária apenas para os recursos de análise com IA)
Módulos Python
numpy
evtx
lxml
scipy
changefinder
flask
hmmlearn>=0.2.8
scikit-learn
elasticsearch-dsl>=7.0.0,<8.0.0
pyyaml
flask-sqlalchemy
flask-login
flask_wtf
flask-limiter
wtforms
GitPython
pysigma>=0.11.0
pysigma-backend-sqlite
openai>=1.0.0
aiohttp
neo4j
git clone https://github.com/JPCERTCC/LogonTracer.git
cd LogonTracer
pip3 install -r requirements.txt
Baixe e inicie o Neo4j. Defina a senha inicial e anote a porta Bolt (padrão: 7687).
vi config/config.yml
Configurações principais:
settings:
logontracer:
WEB_PORT: "8080"
default_user: "neo4j" # Nome de usuário Neo4j para a conta padrão do LogonTracer
default_password: "password" # Altere isso antes da primeira execução
neo4j:
NEO4J_USER: "neo4j"
NEO4J_PASSWORD: "password" # Sua senha Neo4j
NEO4J_SERVER: "localhost"
WS_PORT: "7687"
python3 logontracer.py --run
Abra seu navegador em http://localhost:8080.
python3 logontracer.py -e <caminho/para/Security.evtx> -z <offset UTC> -s <servidor Neo4j> -u <usuário> -p <senha>
python3 logontracer.py -x <caminho/para/event.xml> -z <offset UTC> -s <servidor Neo4j> -u <usuário> -p <senha>
python3 logontracer.py --es -s <servidor Neo4j> -u <usuário> -p <senha> --es-server <host:porta Elasticsearch>
Adicione a flag --sigma para executar a detecção de regras Sigma durante a importação:
python3 logontracer.py -e <caminho/para/Security.evtx> -z 9 -s localhost -u neo4j -p password --sigma
python3 logontracer.py -e <caminho/para/Security.evtx> -z 9 -s localhost -u neo4j -p password --add
Após iniciar a aplicação web, clique em Upload Event Log na barra lateral esquerda. Você pode:

Após fazer o upload com o escaneamento Sigma ativado, ou após acionar um reescaneamento via API, clique em Sigma Scan Results na barra lateral para visualizar os achados.