
Investigue inicios de sesión maliciosos en Windows mediante la visualización y el análisis del registro de eventos de Windows.
LogonTracer v2 es una herramienta para investigar inicios de sesión maliciosos mediante la visualización y el análisis de registros de eventos de Windows Active Directory. Esta herramienta asocia un nombre de host (o una dirección IP) y un nombre de cuenta encontrados en eventos relacionados con el inicio de sesión y lo muestra como un gráfico. De esta manera, es posible ver en qué cuenta se produce un intento de inicio de sesión y qué host se utiliza.
Esta herramienta puede visualizar los siguientes ID de evento relacionados con el inicio de sesión en Windows.
| ID de evento | Descripción |
|---|---|
| 4624 | Inicio de sesión correcto |
| 4625 | Error de inicio de sesión |
| 4662 | Se realizó una operación en un objeto |
| 4672 | Asignación de privilegios especiales |
| 4719 | Se cambió la política de auditoría del sistema |
| 4720 | Se creó una cuenta de usuario |
| 4726 | Se eliminó una cuenta de usuario |
| 4728 / 4732 / 4756 | Se agregó un miembro a un grupo habilitado para seguridad |
| 4729 / 4733 / 4757 | Se eliminó un miembro de un grupo habilitado para seguridad |
| 4768 | Autenticación Kerberos (Solicitud de TGT) |
| 4769 | Ticket de servicio Kerberos (Solicitud de ST) |
| 4776 | Autenticación NTLM |
| 5137 | Se creó un objeto de servicio de directorio |
| 5141 | Se eliminó un objeto de servicio de directorio |
Más detalles se describen en los siguientes documentos:

LogonTracer v2.0 integra un motor de análisis de IA que utiliza modelos GPT de OpenAI para proporcionar detección inteligente de amenazas más allá de los enfoques tradicionales basados en reglas.
LogonTracer utiliza PageRank, Modelo Oculto de Márkov y ChangeFinder para detectar hosts y cuentas maliciosos a partir de registros de eventos.

Con LogonTracer, también es posible mostrar los registros de eventos en orden cronológico.

Python 3.9 o posterior (se recomienda 3.12)
Neo4j 5.x (Community o Enterprise)
Clave API de OpenAI (opcional — solo necesaria para las funciones de análisis de IA)
Módulos de 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
Descargue e inicie Neo4j. Establezca la contraseña inicial y anote el puerto Bolt (por defecto: 7687).
vi config/config.yml
Configuraciones clave:
settings:
logontracer:
WEB_PORT: "8080"
default_user: "neo4j" # Nombre de usuario de Neo4j para la cuenta predeterminada de LogonTracer
default_password: "password" # Cámbielo antes de la primera ejecución
neo4j:
NEO4J_USER: "neo4j"
NEO4J_PASSWORD: "password" # Su contraseña de Neo4j
NEO4J_SERVER: "localhost"
WS_PORT: "7687"
python3 logontracer.py --run
Abra su navegador en http://localhost:8080.
python3 logontracer.py -e <ruta/al/Security.evtx> -z <desplazamiento UTC> -s <servidor Neo4j> -u <usuario> -p <contraseña>
python3 logontracer.py -x <ruta/al/event.xml> -z <desplazamiento UTC> -s <servidor Neo4j> -u <usuario> -p <contraseña>
python3 logontracer.py --es -s <servidor Neo4j> -u <usuario> -p <contraseña> --es-server <host:puerto de ES>
Agregue la bandera --sigma para ejecutar la detección de reglas Sigma durante la importación:
python3 logontracer.py -e <ruta/al/Security.evtx> -z 9 -s localhost -u neo4j -p password --sigma
python3 logontracer.py -e <ruta/al/Security.evtx> -z 9 -s localhost -u neo4j -p password --add
Después de iniciar la aplicación web, haga clic en Upload Event Log en la barra lateral izquierda. Puede:

Después de cargar con el escaneo Sigma habilitado, o después de activar un reescaneo a través de la API, haga clic en Sigma Scan Results en la barra lateral para ver los hallazgos.








Con la edición Enterprise de Neo4j, LogonTracer admite múltiples casos de investigación independientes, cada uno almacenado en una base de datos Neo4j separada.
docker run \
--detach \
--publish=7474:7474 --publish=7687:7687 --publish=8080:8080 \
-e LTHOSTNAME=<Dirección IP> \
jpcertcc/docker-logontracer
cd docker-compose
docker compose build
docker compose up -d
cd docker-compose-with-nginx
docker compose build
docker compose up -d
cd docker-compose-with-elasticstack
docker compose build
docker compose up -d
El siguiente video de YouTube muestra cómo usar LogonTracer.
Para más detalles, consulte la wiki de LogonTracer.
| Opción | Descripción |
|---|
-r, --run | Iniciar la aplicación web |
-o PORT | Puerto de la aplicación web (por defecto: 8080) |
--host HOST | Dirección de enlace (por defecto: 0.0.0.0) |
-e EVTX [...] | Importar archivo(s) EVTX |
-x XML [...] | Importar archivo(s) de registro de eventos XML |
-s SERVER | Dirección del servidor Neo4j (por defecto: localhost) |
-u USER | Nombre de usuario de Neo4j (por defecto: neo4j) |
-p PASSWORD | Contraseña de Neo4j |
--wsport PORT | Puerto Bolt de Neo4j (por defecto: 7687) |
-z UTC | Desplazamiento de zona horaria (ej. 9 para JST) |
-f DATE | Analizar registros desde esta fecha y hora (ej. 2024-01-01T00:00:00) |
-t DATE | Analizar registros hasta esta fecha y hora |
--add | Agregar datos sin borrar la base de datos |
--delete | Borrar la base de datos antes de importar |
--sigma | Ejecutar escaneo de reglas Sigma durante la importación |
--sigma-only | Ejecutar solo el escaneo Sigma (sin procesamiento Neo4j) |
--sigma-rules PATH | Ruta a la carpeta de reglas Sigma (por defecto: sigma) |
--es | Importar datos desde Elasticsearch |
--postes | Publicar resultados de análisis en Elasticsearch |
--es-server HOST:PORT | Servidor Elasticsearch |
--es-index INDEX | Índice de Elasticsearch (por defecto: winlogbeat-*) |
--es-prefix PREFIX | Prefijo de evento de Elasticsearch (por defecto: winlog) |
--case NAME | Nombre del caso para el modo multi-base de datos de Neo4j Enterprise |
-c FILE | Ruta al archivo de configuración (por defecto: config/config.yml) |
--create_user USER | Crear un nuevo usuario de Neo4j |
--create_password PASS | Contraseña para el nuevo usuario de Neo4j |
--role ROLE | Rol para el nuevo usuario (admin, architect, reader) |
--delete_user USER | Eliminar un usuario de Neo4j |
-l, --learn | Ejecutar análisis de aprendizaje automático (Modelo Oculto de Márkov) |